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
20QT_BEGIN_NAMESPACE
21
22class 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)
36public:
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
80Q_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
91private:
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
104QT_END_NAMESPACE
105
106#endif // QQUICK3DDEBUGSETTINGS_H
107

Provided by KDAB

Privacy Policy
Start learning QML with our Intro Training
Find out more

source code of qtquick3d/src/quick3d/qquick3ddebugsettings_p.h