1 | // Copyright (C) 2022 The Qt Company Ltd. |
2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only |
3 | |
4 | #ifndef QQUICK3DDEBUGSETTINGS_H |
5 | #define QQUICK3DDEBUGSETTINGS_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/qquick3dobject_p.h> |
19 | |
20 | QT_BEGIN_NAMESPACE |
21 | |
22 | class Q_QUICK3D_EXPORT QQuick3DDebugSettings : public QObject |
23 | { |
24 | Q_OBJECT |
25 | Q_PROPERTY(QQuick3DMaterialOverrides materialOverride READ materialOverride WRITE setMaterialOverride NOTIFY materialOverrideChanged) |
26 | Q_PROPERTY(bool wireframeEnabled READ wireframeEnabled WRITE setWireframeEnabled NOTIFY wireframeEnabledChanged) |
27 | Q_PROPERTY(bool drawDirectionalLightShadowBoxes READ drawDirectionalLightShadowBoxes WRITE |
28 | setDrawDirectionalLightShadowBoxes NOTIFY drawDirectionalLightShadowBoxesChanged FINAL REVISION(6, 8)) |
29 | Q_PROPERTY(bool drawShadowCastingBounds READ drawShadowCastingBounds WRITE setDrawShadowCastingBounds NOTIFY drawShadowCastingBoundsChanged FINAL REVISION(6, 8)) |
30 | Q_PROPERTY(bool drawShadowReceivingBounds READ drawShadowReceivingBounds WRITE setDrawShadowReceivingBounds NOTIFY drawShadowReceivingBoundsChanged FINAL REVISION(6, 8)) |
31 | Q_PROPERTY(bool drawCascades READ drawCascades WRITE setDrawCascades NOTIFY drawCascadesChanged FINAL REVISION(6, 8)) |
32 | Q_PROPERTY(bool drawSceneCascadeIntersection READ drawSceneCascadeIntersection WRITE setDrawSceneCascadeIntersection NOTIFY drawSceneCascadeIntersectionChanged FINAL REVISION(6, 8)) |
33 | Q_PROPERTY(bool disableShadowCameraUpdate READ disableShadowCameraUpdate WRITE setDisableShadowCameraUpdate NOTIFY disableShadowCameraUpdateChanged FINAL REVISION(6, 8)) |
34 | |
35 | QML_NAMED_ELEMENT(DebugSettings) |
36 | public: |
37 | enum QQuick3DMaterialOverrides { |
38 | None, |
39 | BaseColor, |
40 | Roughness, |
41 | Metalness, |
42 | Diffuse, |
43 | Specular, |
44 | ShadowOcclusion, |
45 | Emission, |
46 | AmbientOcclusion, |
47 | Normals, |
48 | Tangents, |
49 | Binormals, |
50 | F0 |
51 | }; |
52 | Q_ENUM(QQuick3DMaterialOverrides) |
53 | |
54 | explicit QQuick3DDebugSettings(QObject *parent = nullptr); |
55 | |
56 | QQuick3DMaterialOverrides materialOverride() const; |
57 | void setMaterialOverride(QQuick3DMaterialOverrides newMaterialOverride); |
58 | |
59 | bool wireframeEnabled() const; |
60 | void setWireframeEnabled(bool newWireframeEnabled); |
61 | |
62 | Q_REVISION(6, 8) bool drawDirectionalLightShadowBoxes() const; |
63 | Q_REVISION(6, 8) void setDrawDirectionalLightShadowBoxes(bool newDrawDirectionalLightShadowBoxes); |
64 | |
65 | Q_REVISION(6, 8) bool drawShadowCastingBounds() const; |
66 | Q_REVISION(6, 8) void setDrawShadowCastingBounds(bool newDrawShadowCastingBounds); |
67 | |
68 | Q_REVISION(6, 8) bool drawShadowReceivingBounds() const; |
69 | Q_REVISION(6, 8) void setDrawShadowReceivingBounds(bool newDrawShadowReceivingBounds); |
70 | |
71 | Q_REVISION(6, 8) bool drawCascades() const; |
72 | Q_REVISION(6, 8) void setDrawCascades(bool newDrawCascades); |
73 | |
74 | Q_REVISION(6, 8) bool drawSceneCascadeIntersection() const; |
75 | Q_REVISION(6, 8) void setDrawSceneCascadeIntersection(bool newDrawSceneCascadeIntersection); |
76 | |
77 | Q_REVISION(6, 8) bool disableShadowCameraUpdate() const; |
78 | Q_REVISION(6, 8) void setDisableShadowCameraUpdate(bool newDisableShadowCameraUpdate); |
79 | |
80 | Q_SIGNALS: |
81 | void materialOverrideChanged(); |
82 | void wireframeEnabledChanged(); |
83 | Q_REVISION(6, 8) void drawDirectionalLightShadowBoxesChanged(); |
84 | Q_REVISION(6, 8) void drawShadowCastingBoundsChanged(); |
85 | Q_REVISION(6, 8) void drawShadowReceivingBoundsChanged(); |
86 | Q_REVISION(6, 8) void drawCascadesChanged(); |
87 | Q_REVISION(6, 8) void drawSceneCascadeIntersectionChanged(); |
88 | Q_REVISION(6, 8) void disableShadowCameraUpdateChanged(); |
89 | void changed(); |
90 | |
91 | private: |
92 | void update(); |
93 | QQuick3DMaterialOverrides m_materialOverride = None; |
94 | |
95 | bool m_wireframeEnabled = false; |
96 | bool m_drawDirectionalLightShadowBoxes = false; |
97 | bool m_drawShadowCastingBounds = false; |
98 | bool m_drawShadowReceivingBounds = false; |
99 | bool m_drawCascades = false; |
100 | bool m_drawSceneCascadeIntersection = false; |
101 | bool m_disableShadowCameraUpdate = false; |
102 | }; |
103 | |
104 | QT_END_NAMESPACE |
105 | |
106 | #endif // QQUICK3DDEBUGSETTINGS_H |
107 | |