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_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
22
25
27{
31 QML_UNCREATABLE("SceneEffectBase is Abstract")
32public:
34
36 void setEnvironment(QQuick3DSceneEnvironment *newEnvironment);
37
40
41protected:
42 void scheduleEnvUpdate();
43
45 QQuick3DSceneEnvironment *m_environment = nullptr;
46 virtual void registerWithEnv(SceneEffectEnvironment *newEnvironment) = 0;
47 virtual void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) = 0;
48};
49
51{
54public:
55 explicit MainSceneEffect(QQuick3DObject *p = nullptr);
56
57private:
58 void registerWithEnv(SceneEffectEnvironment *newEnvironment) override;
59 void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override;
60};
61
63{
65 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
67public:
68 explicit DepthOfFieldEffect(QQuick3DObject *p = nullptr);
69
70 bool enabled() const;
71 void setEnabled(bool newEnabled);
72
75
76private:
77 void registerWithEnv(SceneEffectEnvironment *newEnvironment) override;
78 void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment) override;
79 bool m_enabled = false;
80};
81
83{
86
87public:
88 explicit SceneEffectEnvironment(QQuick3DObject *p = nullptr);
89 void setMainSceneEffect(MainSceneEffect *tonemapper);
90 void setDeptOfFieldEffect(DepthOfFieldEffect *dof);
91
92protected:
93 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
94
95private:
96 QVector<QQuick3DEffect *> m_effects;
97 MainSceneEffect *m_tonemapper = nullptr;
98 DepthOfFieldEffect *m_dof = nullptr;
99
100protected:
101 const QVector<QQuick3DEffect *> &effectList() const override;
102 bool useBuiltinTonemapper() const override;
103};
104
106
107#endif // SCENEEFFECTS_H
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
QQuick3DObject * parent
\qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a...
virtual void registerWithEnv(SceneEffectEnvironment *newEnvironment)=0
void environmentChanged()
virtual void unregisterWithEnv(SceneEffectEnvironment *oldEnvironment)=0
void setEnvironment(QQuick3DSceneEnvironment *newEnvironment)
QQuick3DSceneEnvironment * environment
Combined button and popup list for selecting options.
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLfloat GLfloat p
[1]
#define QML_UNCREATABLE(REASON)
#define QML_NAMED_ELEMENT(NAME)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define signals
#define enabled
#define explicit