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
qquick3dmaterial_p.h
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4
#ifndef QSSGMATERIAL_H
5
#define QSSGMATERIAL_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/qquick3dobject.h>
19
#include <QtQuick3D/private/qquick3dtexture_p.h>
20
21
#include <QtCore/QVector>
22
23
QT_BEGIN_NAMESPACE
24
25
class
QQuick3DSceneManager
;
26
class
Q_QUICK3D_EXPORT
QQuick3DMaterial
:
public
QQuick3DObject
27
{
28
Q_OBJECT
29
Q_PROPERTY
(
QQuick3DTexture
*lightProbe READ lightProbe WRITE setLightProbe NOTIFY lightProbeChanged)
30
Q_PROPERTY
(
CullMode
cullMode READ cullMode WRITE setCullMode NOTIFY cullModeChanged)
31
Q_PROPERTY
(
DepthDrawMode
depthDrawMode READ depthDrawMode WRITE setDepthDrawMode NOTIFY depthDrawModeChanged)
32
33
QML_NAMED_ELEMENT
(Material)
34
QML_UNCREATABLE
("Material is Abstract")
35
36
public:
37
enum
CullMode
{
38
BackFaceCulling = 1,
39
FrontFaceCulling = 2,
40
NoCulling = 3
41
};
42
Q_ENUM
(CullMode)
43
44
enum
TextureChannelMapping
{
45
R
= 0,
46
G
,
47
B
,
48
A
,
49
};
50
Q_ENUM
(TextureChannelMapping)
51
52
enum
DepthDrawMode
{
53
OpaqueOnlyDepthDraw = 0,
54
AlwaysDepthDraw
,
55
NeverDepthDraw
,
56
OpaquePrePassDepthDraw
,
57
};
58
Q_ENUM
(DepthDrawMode)
59
60
enum
VertexColorMask
{
61
NoMask = 0,
62
RoughnessMask = 1,
63
NormalStrengthMask = 2,
64
SpecularAmountMask = 4,
65
ClearcoatAmountMask = 8,
66
ClearcoatRoughnessAmountMask = 16,
67
ClearcoatNormalStrengthMask = 32,
68
HeightAmountMask = 64,
69
MetalnessMask = 128,
70
OcclusionAmountMask = 256,
71
ThicknessFactorMask = 512,
72
TransmissionFactorMask = 1024
73
};
74
Q_ENUM
(VertexColorMask)
75
Q_DECLARE_FLAGS
(VertexColorMaskFlags, VertexColorMask)
76
77
~QQuick3DMaterial
()
override
;
78
79
QQuick3DTexture
*lightProbe()
const
;
80
81
CullMode cullMode()
const
;
82
83
DepthDrawMode depthDrawMode()
const
;
84
85
public
Q_SLOTS
:
86
void
setLightProbe(
QQuick3DTexture
*lightProbe);
87
void
setCullMode(
QQuick3DMaterial::CullMode
cullMode);
88
void
setDepthDrawMode(
QQuick3DMaterial::DepthDrawMode
depthDrawMode);
89
90
Q_SIGNALS
:
91
void
lightProbeChanged
(
QQuick3DTexture
*lightProbe);
92
void
cullModeChanged
(
QQuick3DMaterial::CullMode
cullMode);
93
void
depthDrawModeChanged
(
QQuick3DMaterial::DepthDrawMode
depthDrawMode);
94
95
protected
:
96
explicit
QQuick3DMaterial
(
QQuick3DObjectPrivate
&dd,
QQuick3DObject
*parent =
nullptr
);
97
QSSGRenderGraphObject
*updateSpatialNode(
QSSGRenderGraphObject
*node)
override
;
98
void
itemChange(ItemChange,
const
ItemChangeData &)
override
;
99
100
private
:
101
void
updateSceneManager(
QQuick3DSceneManager
*sceneManager);
102
QQuick3DTexture
*m_iblProbe =
nullptr
;
103
104
CullMode
m_cullMode = CullMode::BackFaceCulling;
105
DepthDrawMode
m_depthDrawMode = DepthDrawMode::OpaqueOnlyDepthDraw;
106
};
107
108
QT_END_NAMESPACE
109
110
#endif
// QSSGMATERIAL_H
QQuick3DMaterial
Definition
qquick3dmaterial_p.h:27
QQuick3DMaterial::cullModeChanged
void cullModeChanged(QQuick3DMaterial::CullMode cullMode)
QQuick3DMaterial::VertexColorMask
VertexColorMask
Definition
qquick3dmaterial_p.h:60
QQuick3DMaterial::CullMode
CullMode
Definition
qquick3dmaterial_p.h:37
QQuick3DMaterial::depthDrawModeChanged
void depthDrawModeChanged(QQuick3DMaterial::DepthDrawMode depthDrawMode)
QQuick3DMaterial::TextureChannelMapping
TextureChannelMapping
Definition
qquick3dmaterial_p.h:44
QQuick3DMaterial::G
@ G
Definition
qquick3dmaterial_p.h:46
QQuick3DMaterial::B
@ B
Definition
qquick3dmaterial_p.h:47
QQuick3DMaterial::A
@ A
Definition
qquick3dmaterial_p.h:48
QQuick3DMaterial::lightProbeChanged
void lightProbeChanged(QQuick3DTexture *lightProbe)
QQuick3DMaterial::DepthDrawMode
DepthDrawMode
Definition
qquick3dmaterial_p.h:52
QQuick3DMaterial::AlwaysDepthDraw
@ AlwaysDepthDraw
Definition
qquick3dmaterial_p.h:54
QQuick3DMaterial::NeverDepthDraw
@ NeverDepthDraw
Definition
qquick3dmaterial_p.h:55
QQuick3DMaterial::OpaquePrePassDepthDraw
@ OpaquePrePassDepthDraw
Definition
qquick3dmaterial_p.h:56
QQuick3DObjectPrivate
Definition
qquick3dobject_p.h:40
QQuick3DObject
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
Definition
qquick3dobject.h:22
QQuick3DSceneManager
Definition
qquick3dscenemanager_p.h:77
QQuick3DTexture
Definition
qquick3dtexture_p.h:33
QSSGRenderGraphObject
Definition
qssgrendergraphobject.h:37
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1590
Q_DECLARE_FLAGS
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition
qflags.h:174
QML_UNCREATABLE
#define QML_UNCREATABLE(REASON)
Definition
qqmlintegration.h:63
QML_NAMED_ELEMENT
#define QML_NAMED_ELEMENT(NAME)
Definition
qqmlintegration.h:60
R
#define R
Definition
qssgrenderloadedtexture.cpp:348
Q_ENUM
#define Q_ENUM(x)
Definition
qtmetamacros.h:68
Q_PROPERTY
#define Q_PROPERTY(...)
Definition
qtmetamacros.h:56
Q_OBJECT
#define Q_OBJECT
Definition
qtmetamacros.h:119
Q_SLOTS
#define Q_SLOTS
Definition
qtmetamacros.h:44
Q_SIGNALS
#define Q_SIGNALS
Definition
qtmetamacros.h:45
qtquick3d
src
quick3d
qquick3dmaterial_p.h
Generated by
1.10.0