Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
sceneeffects_p.h
Go to the documentation of this file.
1
// Copyright (C) 2022 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
6
#
ifndef
SCENEEFFECTS_H
7
#
define
SCENEEFFECTS_H
8
9
//
10
// W A R N I N G
11
// -------------
12
//
13
// This file is not part of the Qt API. It exists purely as an
14
// implementation detail. This header file may change from version to
15
// version without notice, or even be removed.
16
//
17
// We mean it.
18
//
19
20
#
include
<
QtQuick3D
/
private
/
qquick3deffect_p
.
h
>
21
#
include
<
QtQuick3D
/
private
/
qquick3dsceneenvironment_p
.
h
>
22
23
QT_BEGIN_NAMESPACE
24
25
class
QQuick3DSceneEnvironment;
26
class
SceneEffectEnvironment
;
27
28
class
SceneEffectBase
:
public
QQuick3DEffect
29
{
30
Q_OBJECT
31
Q_PROPERTY(QQuick3DSceneEnvironment * environment READ environment WRITE setEnvironment NOTIFY environmentChanged)
32
QML_NAMED_ELEMENT
(
SceneEffectBase
)
33
QML_UNCREATABLE
(
"SceneEffectBase is Abstract"
)
34
public
:
35
explicit
SceneEffectBase
(
QQuick3DObject
*
parent
=
nullptr
);
36
37
QQuick3DSceneEnvironment *
environment
()
const
;
38
void
setEnvironment
(QQuick3DSceneEnvironment *newEnvironment);
39
40
signals
:
41
void
environmentChanged
();
42
43
protected
:
44
void
scheduleEnvUpdate
();
45
46
private
:
47
QQuick3DSceneEnvironment *m_environment =
nullptr
;
48
virtual
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment) = 0;
49
virtual
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment) = 0;
50
};
51
52
class
MainSceneEffect
:
public
SceneEffectBase
53
{
54
Q_OBJECT
55
QML_NAMED_ELEMENT(
MainSceneEffect
)
56
public
:
57
explicit
MainSceneEffect
(
QQuick3DObject
*
p
=
nullptr
);
58
59
private
:
60
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
61
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
62
};
63
64
class
DepthOfFieldEffect
:
public
SceneEffectBase
65
{
66
Q_OBJECT
67
Q_PROPERTY(
bool
enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
68
QML_NAMED_ELEMENT
(
DepthOfFieldEffect
)
69
public
:
70
explicit
DepthOfFieldEffect
(
QQuick3DObject
*
p
=
nullptr
);
71
72
bool
enabled
()
const
;
73
void
setEnabled
(
bool
newEnabled);
74
75
signals
:
76
void
enabledChanged
();
77
78
private
:
79
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
80
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
81
bool
m_enabled =
false
;
82
};
83
84
class
SsgiEnvEffect
:
public
SceneEffectBase
85
{
86
Q_OBJECT
87
Q_PROPERTY(
bool
enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
88
QML_NAMED_ELEMENT
(
SsgiEnvEffect
)
89
public
:
90
explicit
SsgiEnvEffect
(
QQuick3DObject
*
p
=
nullptr
);
91
92
bool
enabled
()
const
;
93
void
setEnabled
(
bool
newEnabled);
94
95
signals
:
96
void
enabledChanged
();
97
98
private
:
99
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
100
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
101
bool
m_enabled =
false
;
102
};
103
104
class
SsrEnvEffect
:
public
SceneEffectBase
105
{
106
Q_OBJECT
107
Q_PROPERTY(
bool
enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
108
QML_NAMED_ELEMENT
(
SsrEnvEffect
)
109
public
:
110
explicit
SsrEnvEffect
(
QQuick3DObject
*
p
=
nullptr
);
111
112
bool
enabled
()
const
;
113
void
setEnabled
(
bool
newEnabled);
114
115
signals
:
116
void
enabledChanged
();
117
118
private
:
119
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
120
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
121
bool
m_enabled =
false
;
122
};
123
124
class
SceneEffectEnvironment
:
public
QQuick3DSceneEnvironment
125
{
126
Q_OBJECT
127
QML_NAMED_ELEMENT(
SceneEffectEnvironment
)
128
129
public
:
130
explicit
SceneEffectEnvironment
(
QQuick3DObject
*
p
=
nullptr
);
131
void
setMainSceneEffect
(
MainSceneEffect
*tonemapper);
132
void
setDeptOfFieldEffect
(
DepthOfFieldEffect
*dof);
133
void
setSsgiEffect
(
SsgiEnvEffect
*ssgi);
134
void
setSsrEffect
(
SsrEnvEffect
*ssr);
135
136
protected
:
137
QSSGRenderGraphObject
*
updateSpatialNode
(QSSGRenderGraphObject *node)
override
;
138
139
private
:
140
QVector<QQuick3DEffect *> m_effects;
141
MainSceneEffect
*m_tonemapper =
nullptr
;
142
DepthOfFieldEffect
*m_dof =
nullptr
;
143
SsgiEnvEffect
*m_ssgi =
nullptr
;
144
SsrEnvEffect
*m_ssr =
nullptr
;
145
146
protected
:
147
const
QVector
<
QQuick3DEffect
*> &
effectList
()
const
override
;
148
bool
useBuiltinTonemapper
()
const
override
;
149
};
150
151
QT_END_NAMESPACE
152
153
#
endif
// SCENEEFFECTS_H
DepthOfFieldEffect
Definition
sceneeffects_p.h:65
DepthOfFieldEffect::enabled
bool enabled() const
Definition
sceneeffects.cpp:81
DepthOfFieldEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:69
DepthOfFieldEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:75
DepthOfFieldEffect::setEnabled
void setEnabled(bool newEnabled)
Definition
sceneeffects.cpp:86
MainSceneEffect
Definition
sceneeffects_p.h:53
MainSceneEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:57
MainSceneEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:51
QObjectData::parent
QObject * parent
Definition
qobject.h:74
QQuick3DObject
\qmltype Object3D \inqmlmodule QtQuick3D \nativetype QQuick3DObject \inherits QtObject
Definition
qquick3dobject.h:24
SceneEffectBase
Definition
sceneeffects_p.h:29
SceneEffectBase::setEnvironment
void setEnvironment(QQuick3DSceneEnvironment *newEnvironment)
Definition
sceneeffects.cpp:21
SceneEffectBase::unregisterWithEnv
virtual void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment)=0
SceneEffectBase::environment
QQuick3DSceneEnvironment * environment() const
Definition
sceneeffects.cpp:16
SceneEffectBase::registerWithEnv
virtual void registerWithEnv(SceneEffectEnvironment *newEnvironment)=0
SceneEffectBase::scheduleEnvUpdate
void scheduleEnvUpdate()
Definition
sceneeffects.cpp:39
SceneEffectEnvironment
Definition
sceneeffects_p.h:125
SceneEffectEnvironment::setSsgiEffect
void setSsgiEffect(SsgiEnvEffect *ssgi)
Definition
sceneeffects.cpp:184
SceneEffectEnvironment::setDeptOfFieldEffect
void setDeptOfFieldEffect(DepthOfFieldEffect *dof)
Definition
sceneeffects.cpp:174
SceneEffectEnvironment::effectList
const QVector< QQuick3DEffect * > & effectList() const override
Definition
sceneeffects.cpp:221
SceneEffectEnvironment::setMainSceneEffect
void setMainSceneEffect(MainSceneEffect *tonemapper)
Definition
sceneeffects.cpp:164
SceneEffectEnvironment::updateSpatialNode
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *node) override
Definition
sceneeffects.cpp:204
SceneEffectEnvironment::setSsrEffect
void setSsrEffect(SsrEnvEffect *ssr)
Definition
sceneeffects.cpp:194
SceneEffectEnvironment::useBuiltinTonemapper
bool useBuiltinTonemapper() const override
Definition
sceneeffects.cpp:226
SsgiEnvEffect
Definition
sceneeffects_p.h:85
SsgiEnvEffect::setEnabled
void setEnabled(bool newEnabled)
Definition
sceneeffects.cpp:117
SsgiEnvEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:106
SsgiEnvEffect::enabled
bool enabled() const
Definition
sceneeffects.cpp:112
SsgiEnvEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:100
SsrEnvEffect
Definition
sceneeffects_p.h:105
SsrEnvEffect::enabled
bool enabled() const
Definition
sceneeffects.cpp:144
SsrEnvEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:132
SsrEnvEffect::setEnabled
void setEnabled(bool newEnabled)
Definition
sceneeffects.cpp:149
SsrEnvEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:138
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtquick3d
src
helpers
impl
sceneeffects_p.h
Generated on
for Qt by
1.18.0