KWin
Loading...
Searching...
No Matches
src
effect
offscreeneffect.h
Go to the documentation of this file.
1
/*
2
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4
SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#pragma once
8
9
#include "
effect/effect.h
"
10
#include "
scene/itemgeometry.h
"
11
12
namespace
KWin
13
{
14
15
class
GLShader;
16
class
OffscreenEffectPrivate;
17
class
CrossFadeEffectPrivate;
18
class
ShaderEffectPrivate;
19
33
class
KWIN_EXPORT
OffscreenEffect
:
public
Effect
34
{
35
Q_OBJECT
36
37
public
:
38
explicit
OffscreenEffect
(QObject *parent =
nullptr
);
39
~OffscreenEffect
()
override
;
40
41
static
bool
supported();
42
43
protected
:
44
void
drawWindow(
const
RenderTarget
&renderTarget,
const
RenderViewport
&viewport,
EffectWindow
*window,
int
mask,
const
QRegion ®ion,
WindowPaintData
&data)
override
;
45
50
void
redirect(
EffectWindow
*window);
55
void
unredirect(
EffectWindow
*window);
56
60
virtual
void
apply(
EffectWindow
*window,
int
mask,
WindowPaintData
&data,
WindowQuadList
&quads);
61
66
void
setShader(
EffectWindow
*window,
GLShader
*shader);
67
73
void
setVertexSnappingMode(
RenderGeometry::VertexSnappingMode
mode);
74
75
private
Q_SLOTS:
76
void
handleWindowDamaged(
EffectWindow
*window);
77
void
handleWindowDeleted(
EffectWindow
*window);
78
79
private
:
80
void
setupConnections();
81
void
destroyConnections();
82
83
std::unique_ptr<OffscreenEffectPrivate> d;
84
};
85
97
class
KWIN_EXPORT
CrossFadeEffect
:
public
Effect
98
{
99
Q_OBJECT
100
public
:
101
explicit
CrossFadeEffect
(QObject *parent =
nullptr
);
102
~CrossFadeEffect
()
override
;
103
104
void
drawWindow(
const
RenderTarget
&renderTarget,
const
RenderViewport
&viewport,
EffectWindow
*window,
int
mask,
const
QRegion ®ion,
WindowPaintData
&data)
override
;
105
110
void
redirect(
EffectWindow
*window);
115
void
unredirect(
EffectWindow
*window);
116
122
void
setShader(
EffectWindow
*window,
GLShader
*shader);
123
124
static
bool
supported
();
125
126
private
:
127
void
handleWindowDeleted(
EffectWindow
*window);
128
std::unique_ptr<CrossFadeEffectPrivate> d;
129
};
130
131
}
// namespace KWin
KWin::CrossFadeEffect
Definition
offscreeneffect.h:98
KWin::CrossFadeEffect::supported
static bool supported()
KWin::CrossFadeEffect::~CrossFadeEffect
~CrossFadeEffect() override
KWin::Effect
Base class for all KWin effects.
Definition
effect.h:535
KWin::EffectWindow
Representation of a window used by/for Effect classes.
Definition
effectwindow.cpp:24
KWin::GLShader
Definition
glshader.h:26
KWin::OffscreenEffect
Definition
offscreeneffect.h:34
KWin::OffscreenEffect::~OffscreenEffect
~OffscreenEffect() override
KWin::RenderGeometry::VertexSnappingMode
VertexSnappingMode
Definition
itemgeometry.h:109
KWin::RenderTarget
Definition
rendertarget.h:21
KWin::RenderViewport
Definition
renderviewport.h:21
KWin::WindowPaintData
Definition
effect.h:300
KWin::WindowQuadList
Definition
itemgeometry.h:81
effect.h
itemgeometry.h
KWin
Definition
activation_test.cpp:20
Generated on Sat Feb 17 2024 01:42:09 for KWin by
1.10.0