Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
sceneeffects.cpp
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#include "sceneeffects_p.h"
5
7
13
15{
16 return m_environment;
17}
18
20{
21 if (m_environment == newEnvironment)
22 return;
23
24 if (auto env = qobject_cast<SceneEffectEnvironment *>(m_environment))
26
27 m_environment = newEnvironment;
28
29 QQuick3DObjectPrivate::attachWatcher(this, &SceneEffectBase::setEnvironment, newEnvironment, m_environment);
30
31 if (auto env = qobject_cast<SceneEffectEnvironment *>(m_environment))
32 registerWithEnv(env);
33
35}
36
38{
39 if (m_environment)
40 m_environment->update();
41}
42
44{
45 Q_UNUSED(env);
46 qWarning() << "We shouldn't be here!!!";
47}
49{
50 Q_UNUSED(oldEnvironment);
51 qWarning() << "We shouldn't be here!!!";
52}
53
59
61{
62 if (newEnvironment)
63 newEnvironment->setMainSceneEffect(this);
64}
65
67{
68 if (oldEnvironment)
69 oldEnvironment->setMainSceneEffect(nullptr);
70}
71
77
79{
80 if (newEnvironment)
81 newEnvironment->setDeptOfFieldEffect(this);
82}
83
85{
86 if (oldEnvironment)
87 oldEnvironment->setDeptOfFieldEffect(nullptr);
88}
89
91{
92 return m_enabled;
93}
94
95void DepthOfFieldEffect::setEnabled(bool newEnabled)
96{
97 if (m_enabled == newEnabled)
98 return;
99 m_enabled = newEnabled;
102}
103
108
110{
111 if (m_tonemapper == tonemapper)
112 return;
113
115
116 m_tonemapper = tonemapper;
117}
118
120{
121 if (m_dof == dof)
122 return;
123
125
126 m_dof = dof;
127}
128
130{
132 if (m_dof && m_dof->enabled())
133 m_effects.push_back(m_dof);
134 if (m_tonemapper)
135 m_effects.push_back(m_tonemapper);
137
138 return node;
139}
140
141const QVector<QQuick3DEffect *> &SceneEffectEnvironment::effectList() const
142{
143 return m_effects;
144}
145
147{
148 return false;
149}
150
DepthOfFieldEffect(QQuick3DObject *p=nullptr)
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
void setEnabled(bool newEnabled)
MainSceneEffect(QQuick3DObject *p=nullptr)
void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override
void registerWithEnv(SceneEffectEnvironment *newEnvironment) override
static void attachWatcher(Context *context, Setter setter, Object3D *newO, Object3D *oldO)
Attach a object-destroyed-watcher to an object that's not owned.
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *node) override
virtual const QVector< QQuick3DEffect * > & effectList() const
virtual void registerWithEnv(SceneEffectEnvironment *newEnvironment)=0
void environmentChanged()
virtual void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment)=0
void setEnvironment(QQuick3DSceneEnvironment *newEnvironment)
QQuick3DSceneEnvironment * environment
SceneEffectBase(QQuick3DObject *parent=nullptr)
void setDeptOfFieldEffect(DepthOfFieldEffect *dof)
const QVector< QQuick3DEffect * > & effectList() const override
void setMainSceneEffect(MainSceneEffect *tonemapper)
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *node) override
SceneEffectEnvironment(QQuick3DObject *p=nullptr)
bool useBuiltinTonemapper() const override
Combined button and popup list for selecting options.
#define qWarning
Definition qlogging.h:166
GLfloat GLfloat p
[1]
#define emit
#define Q_UNUSED(x)