KWin
Loading...
Searching...
No Matches
src
wayland
transaction.h
Go to the documentation of this file.
1
/*
2
SPDX-FileCopyrightText: 2023 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5
*/
6
7
#pragma once
8
9
#include "
core/graphicsbuffer.h
"
10
11
#include <QPointer>
12
13
#include <functional>
14
#include <memory>
15
#include <vector>
16
17
namespace
KWin
18
{
19
20
class
SurfaceInterface;
21
struct
SurfaceState;
22
class
Transaction;
23
27
struct
TransactionEntry
28
{
34
QPointer<SurfaceInterface>
surface
;
35
39
Transaction
*
previousTransaction
=
nullptr
;
40
44
Transaction
*
nextTransaction
=
nullptr
;
45
49
GraphicsBufferRef
buffer
;
50
54
std::unique_ptr<SurfaceState>
state
;
55
};
56
60
class
KWIN_EXPORT
Transaction
61
{
62
public
:
63
Transaction
();
64
68
void
lock();
69
73
void
unlock();
74
79
bool
isReady()
const
;
80
85
Transaction
*next(
SurfaceInterface
*surface)
const
;
86
91
void
add(
SurfaceInterface
*surface);
92
96
void
amend(
SurfaceInterface
*surface, std::function<
void
(
SurfaceState
*state)> mutator);
97
102
void
merge(
Transaction
*other);
103
111
void
commit();
112
113
private
:
114
void
apply();
115
bool
tryApply();
116
117
std::vector<TransactionEntry> m_entries;
118
int
m_locks = 0;
119
};
120
121
}
// namespace KWin
KWin::GraphicsBufferRef
Definition
graphicsbuffer.h:105
KWin::SurfaceInterface
Resource representing a wl_surface.
Definition
surface.h:80
KWin::Transaction
Definition
transaction.h:61
graphicsbuffer.h
KWin
Definition
activation_test.cpp:20
KWin::SurfaceState
Definition
surface_p.h:33
KWin::TransactionEntry
Definition
transaction.h:28
KWin::TransactionEntry::surface
QPointer< SurfaceInterface > surface
Definition
transaction.h:34
KWin::TransactionEntry::state
std::unique_ptr< SurfaceState > state
Definition
transaction.h:54
KWin::TransactionEntry::buffer
GraphicsBufferRef buffer
Definition
transaction.h:49
KWin::TransactionEntry::previousTransaction
Transaction * previousTransaction
Definition
transaction.h:39
KWin::TransactionEntry::nextTransaction
Transaction * nextTransaction
Definition
transaction.h:44
Generated on Sat Feb 17 2024 01:42:10 for KWin by
1.10.0