KWin
Loading...
Searching...
No Matches
src
wayland
linuxdmabufv1clientbuffer.h
Go to the documentation of this file.
1
/*
2
SPDX-FileCopyrightText: 2018 Fredrik Höglund <fredrik@kde.org>
3
SPDX-FileCopyrightText: 2019 Roman Gilg <subdiff@gmail.com>
4
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
5
SPDX-FileCopyrightText: 2021 Xaver Hugl <xaver.hugl@gmail.com>
6
7
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
8
*/
9
#pragma once
10
11
#include "
core/graphicsbuffer.h
"
12
13
#include <QHash>
14
#include <QSet>
15
#include <sys/types.h>
16
#include <wayland-server.h>
17
18
namespace
KWin
19
{
20
21
class
Display
;
22
class
LinuxDmaBufV1ClientBufferIntegrationPrivate;
23
class
LinuxDmaBufV1FeedbackPrivate;
24
class
RenderBackend;
25
26
class
KWIN_EXPORT
LinuxDmaBufV1Feedback
:
public
QObject
27
{
28
Q_OBJECT
29
public
:
30
~LinuxDmaBufV1Feedback
()
override
;
31
32
enum class
TrancheFlag
: uint32_t {
33
Scanout = 1,
34
};
35
Q_DECLARE_FLAGS(TrancheFlags, TrancheFlag)
36
37
struct
Tranche
38
{
39
dev_t
device
;
40
TrancheFlags
flags
;
41
QHash<uint32_t, QList<uint64_t>>
formatTable
;
42
};
48
void
setTranches(
const
QList<Tranche> &tranches);
49
50
private
:
51
LinuxDmaBufV1Feedback
(
LinuxDmaBufV1ClientBufferIntegrationPrivate
*integration);
52
friend
class
LinuxDmaBufV1ClientBufferIntegrationPrivate
;
53
friend
class
LinuxDmaBufV1FeedbackPrivate
;
54
std::unique_ptr<LinuxDmaBufV1FeedbackPrivate> d;
55
};
56
60
class
KWIN_EXPORT
LinuxDmaBufV1ClientBufferIntegration
:
public
QObject
61
{
62
Q_OBJECT
63
64
public
:
65
explicit
LinuxDmaBufV1ClientBufferIntegration
(
Display
*display);
66
~LinuxDmaBufV1ClientBufferIntegration
()
override
;
67
68
RenderBackend
*renderBackend()
const
;
69
void
setRenderBackend(
RenderBackend
*renderBackend);
70
71
void
setSupportedFormatsWithModifiers(
const
QList<LinuxDmaBufV1Feedback::Tranche> &tranches);
72
73
private
:
74
friend
class
LinuxDmaBufV1ClientBufferIntegrationPrivate
;
75
std::unique_ptr<LinuxDmaBufV1ClientBufferIntegrationPrivate> d;
76
};
77
78
}
// namespace KWin
KWin::Display
Class holding the Wayland server display loop.
Definition
display.h:34
KWin::LinuxDmaBufV1ClientBufferIntegration
Definition
linuxdmabufv1clientbuffer.h:61
KWin::LinuxDmaBufV1ClientBufferIntegrationPrivate
Definition
linuxdmabufv1clientbuffer_p.h:32
KWin::LinuxDmaBufV1Feedback
Definition
linuxdmabufv1clientbuffer.h:27
KWin::LinuxDmaBufV1Feedback::TrancheFlag
TrancheFlag
Definition
linuxdmabufv1clientbuffer.h:32
KWin::LinuxDmaBufV1Feedback::~LinuxDmaBufV1Feedback
~LinuxDmaBufV1Feedback() override
KWin::LinuxDmaBufV1FeedbackPrivate
Definition
linuxdmabufv1clientbuffer_p.h:115
KWin::RenderBackend
Definition
renderbackend.h:69
graphicsbuffer.h
KWin
Definition
activation_test.cpp:20
KWin::LinuxDmaBufV1Feedback::Tranche
Definition
linuxdmabufv1clientbuffer.h:38
KWin::LinuxDmaBufV1Feedback::Tranche::formatTable
QHash< uint32_t, QList< uint64_t > > formatTable
Definition
linuxdmabufv1clientbuffer.h:41
KWin::LinuxDmaBufV1Feedback::Tranche::device
dev_t device
Definition
linuxdmabufv1clientbuffer.h:39
KWin::LinuxDmaBufV1Feedback::Tranche::flags
TrancheFlags flags
Definition
linuxdmabufv1clientbuffer.h:40
Display
struct _XDisplay Display
Definition
x11_standalone_egl_backend.h:18
Generated on Sat Feb 17 2024 01:42:10 for KWin by
1.10.0