Qt
6.x
The Qt SDK
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
4
#ifndef SCENEEFFECTS_H
5
#define SCENEEFFECTS_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#include <QtQuick3D/private/qquick3deffect_p.h>
19
#include <QtQuick3D/private/qquick3dsceneenvironment_p.h>
20
21
QT_BEGIN_NAMESPACE
22
23
class
QQuick3DSceneEnvironment
;
24
class
SceneEffectEnvironment
;
25
26
class
SceneEffectBase
:
public
QQuick3DEffect
27
{
28
Q_OBJECT
29
Q_PROPERTY
(
QQuick3DSceneEnvironment
*
environment
READ
environment
WRITE
setEnvironment
NOTIFY
environmentChanged
)
30
QML_NAMED_ELEMENT
(
SceneEffectBase
)
31
QML_UNCREATABLE
(
"SceneEffectBase is Abstract"
)
32
public
:
33
explicit
SceneEffectBase
(
QQuick3DObject
*
parent
=
nullptr
);
34
35
QQuick3DSceneEnvironment
*
environment
()
const
;
36
void
setEnvironment
(
QQuick3DSceneEnvironment
*newEnvironment);
37
38
signals
:
39
void
environmentChanged
();
40
41
protected
:
42
void
scheduleEnvUpdate
();
43
44
private
:
45
QQuick3DSceneEnvironment
*m_environment =
nullptr
;
46
virtual
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment) = 0;
47
virtual
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment) = 0;
48
};
49
50
class
MainSceneEffect
:
public
SceneEffectBase
51
{
52
Q_OBJECT
53
QML_NAMED_ELEMENT
(
MainSceneEffect
)
54
public
:
55
explicit
MainSceneEffect
(
QQuick3DObject
*
p
=
nullptr
);
56
57
private
:
58
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
59
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
60
};
61
62
class
DepthOfFieldEffect
:
public
SceneEffectBase
63
{
64
Q_OBJECT
65
Q_PROPERTY
(
bool
enabled
READ
enabled
WRITE
setEnabled
NOTIFY
enabledChanged
)
66
QML_NAMED_ELEMENT
(
DepthOfFieldEffect
)
67
public
:
68
explicit
DepthOfFieldEffect
(
QQuick3DObject
*
p
=
nullptr
);
69
70
bool
enabled
()
const
;
71
void
setEnabled
(
bool
newEnabled);
72
73
signals
:
74
void
enabledChanged
();
75
76
private
:
77
void
registerWithEnv
(
SceneEffectEnvironment
*newEnvironment)
override
;
78
void
unregisterWithEnv
(
SceneEffectEnvironment
*oldEnvironment)
override
;
79
bool
m_enabled =
false
;
80
};
81
82
class
SceneEffectEnvironment
:
public
QQuick3DSceneEnvironment
83
{
84
Q_OBJECT
85
QML_NAMED_ELEMENT
(
SceneEffectEnvironment
)
86
87
public
:
88
explicit
SceneEffectEnvironment
(
QQuick3DObject
*
p
=
nullptr
);
89
void
setMainSceneEffect
(
MainSceneEffect
*tonemapper);
90
void
setDeptOfFieldEffect
(
DepthOfFieldEffect
*dof);
91
92
protected
:
93
QSSGRenderGraphObject
*
updateSpatialNode
(
QSSGRenderGraphObject
*node)
override
;
94
95
private
:
96
QVector<QQuick3DEffect *>
m_effects;
97
MainSceneEffect
*m_tonemapper =
nullptr
;
98
DepthOfFieldEffect
*m_dof =
nullptr
;
99
100
protected
:
101
const
QVector<QQuick3DEffect *>
&
effectList
()
const override
;
102
bool
useBuiltinTonemapper
()
const override
;
103
};
104
105
QT_END_NAMESPACE
106
107
#endif
// SCENEEFFECTS_H
DepthOfFieldEffect
Definition
sceneeffects_p.h:63
DepthOfFieldEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:78
DepthOfFieldEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:84
DepthOfFieldEffect::enabled
bool enabled
Definition
sceneeffects_p.h:65
DepthOfFieldEffect::enabledChanged
void enabledChanged()
DepthOfFieldEffect::setEnabled
void setEnabled(bool newEnabled)
Definition
sceneeffects.cpp:95
MainSceneEffect
Definition
sceneeffects_p.h:51
MainSceneEffect::unregisterWithEnv
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
Definition
sceneeffects.cpp:66
MainSceneEffect::registerWithEnv
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
Definition
sceneeffects.cpp:60
QList
Definition
qlist.h:74
QQuick3DEffect
Definition
qquick3deffect_p.h:33
QQuick3DObject
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
Definition
qquick3dobject.h:22
QQuick3DObject::parent
QQuick3DObject * parent
\qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a...
Definition
qquick3dobject.h:28
QQuick3DSceneEnvironment
Definition
qquick3dsceneenvironment_p.h:37
SceneEffectBase
Definition
sceneeffects_p.h:27
SceneEffectBase::registerWithEnv
virtual void registerWithEnv(SceneEffectEnvironment *newEnvironment)=0
Definition
sceneeffects.cpp:43
SceneEffectBase::environmentChanged
void environmentChanged()
SceneEffectBase::unregisterWithEnv
virtual void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment)=0
Definition
sceneeffects.cpp:48
SceneEffectBase::setEnvironment
void setEnvironment(QQuick3DSceneEnvironment *newEnvironment)
Definition
sceneeffects.cpp:19
SceneEffectBase::scheduleEnvUpdate
void scheduleEnvUpdate()
Definition
sceneeffects.cpp:37
SceneEffectBase::environment
QQuick3DSceneEnvironment * environment
Definition
sceneeffects_p.h:29
SceneEffectEnvironment
Definition
sceneeffects_p.h:83
SceneEffectEnvironment::setDeptOfFieldEffect
void setDeptOfFieldEffect(DepthOfFieldEffect *dof)
Definition
sceneeffects.cpp:119
SceneEffectEnvironment::effectList
const QVector< QQuick3DEffect * > & effectList() const override
Definition
sceneeffects.cpp:141
SceneEffectEnvironment::setMainSceneEffect
void setMainSceneEffect(MainSceneEffect *tonemapper)
Definition
sceneeffects.cpp:109
SceneEffectEnvironment::updateSpatialNode
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *node) override
Definition
sceneeffects.cpp:129
SceneEffectEnvironment::useBuiltinTonemapper
bool useBuiltinTonemapper() const override
Definition
sceneeffects.cpp:146
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1545
enabled
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition
qopengles2ext.h:150
p
GLfloat GLfloat p
[1]
Definition
qopenglext.h:12698
QML_UNCREATABLE
#define QML_UNCREATABLE(REASON)
Definition
qqmlintegration.h:55
QML_NAMED_ELEMENT
#define QML_NAMED_ELEMENT(NAME)
Definition
qqmlintegration.h:52
Q_PROPERTY
#define Q_PROPERTY(...)
Definition
qtmetamacros.h:56
Q_OBJECT
#define Q_OBJECT
Definition
qtmetamacros.h:117
signals
#define signals
Definition
qtmetamacros.h:41
QSSGRenderGraphObject
Definition
qssgrendergraphobject_p.h:29
qtquick3d
src
helpers
impl
sceneeffects_p.h
Generated by
1.9.7