Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qquick3dquadtextureprovider_p.h
Go to the documentation of this file.
1
// Copyright (C) 2026 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
#
ifndef
QQUICK3DQUADTEXTUREPROVIDER_P_H
4
#
define
QQUICK3DQUADTEXTUREPROVIDER_P_H
5
//
6
// W A R N I N G
7
// -------------
8
//
9
// This file is not part of the Qt API. It exists purely as an
10
// implementation detail. This header file may change from version to
11
// version without notice, or even be removed.
12
//
13
// We mean it.
14
//
15
16
#
include
<
QQuick3DTextureProviderExtension
>
17
#
include
<
QQuick3DTextureData
>
18
19
#
include
<
QtQuick3D
/
private
/
qquick3dshaderutils_p
.
h
>
20
21
QT_BEGIN_NAMESPACE
22
23
class
QSSGQuadTextureProvider;
24
25
class
QQuick3DQuadTextureProvider
:
public
QQuick3DTextureProviderExtension
,
public
QQuick3DPropertyChangedTracker
26
{
27
Q_OBJECT
28
Q_PROPERTY(QUrl fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged FINAL REVISION(6, 12))
29
Q_PROPERTY
(
QString
fragmentShaderCode
READ
fragmentShaderCode
WRITE
setFragmentShaderCode
NOTIFY
30
fragmentShaderCodeChanged
FINAL
REVISION
(6, 12))
31
Q_PROPERTY
(
int
width
READ
width
WRITE
setWidth
NOTIFY
widthChanged
FINAL
REVISION
(6, 12))
32
Q_PROPERTY
(
int
height
READ
height
WRITE
setHeight
NOTIFY
heightChanged
FINAL
REVISION
(6, 12))
33
Q_PROPERTY
(
QQuick3DTextureData
::
Format
format
READ
format
WRITE
setFormat
NOTIFY
formatChanged
FINAL
REVISION
(6, 12))
34
35
QML_NAMED_ELEMENT
(
QuadTextureProvider
)
36
QML_ADDED_IN_VERSION
(6, 12)
37
public
:
38
explicit
QQuick3DQuadTextureProvider
(
QQuick3DObject
*
parent
=
nullptr
);
39
~QQuick3DQuadTextureProvider() override;
40
41
Q_REVISION
(6,12)
QUrl
fragmentShader
()
const
;
42
Q_REVISION
(6,12)
void
setFragmentShader
(
const
QUrl
&
newFragmentShader
);
43
44
Q_REVISION
(6,12)
QString
fragmentShaderCode
()
const
;
45
Q_REVISION
(6,12)
void
setFragmentShaderCode
(
const
QString
&
newFragmentShaderCode
);
46
47
Q_REVISION
(6,12)
int
width
()
const
;
48
Q_REVISION
(6,12)
void
setWidth
(
int
newWidth
);
49
50
Q_REVISION
(6,12)
int
height
()
const
;
51
Q_REVISION
(6,12)
void
setHeight
(
int
newHeight
);
52
53
Q_REVISION
(6,12)
QQuick3DTextureData
::
Format
format
()
const
;
54
Q_REVISION
(6,12)
void
setFormat
(
QQuick3DTextureData
::
Format
newFormat
);
55
56
signals
:
57
void
fragmentShaderChanged
();
58
void
fragmentShaderCodeChanged();
59
void
widthChanged();
60
void
heightChanged();
61
void
formatChanged();
62
63
protected
:
64
QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node)
override
;
65
void
markTrackedPropertyDirty(QMetaProperty property, DirtyPropertyHint hint)
override
;
66
67
private
:
68
QUrl m_fragmentShader;
69
QString m_fragmentShaderCode;
70
int
m_width = 128;
71
int
m_height = 128;
72
QQuick3DTextureData::Format m_format =
QQuick3DTextureData
::
Format
::
RGBA16F
;
73
74
enum
Dirty : quint8 {
75
Dimensions = 1 << 0,
76
TrackedProperty = 1 << 1,
77
Format = 1 << 2,
78
FragmentShader = 1 << 3
79
};
80
81
using
DirtyT
=
std
::
underlying_type_t
<
Dirty
>;
82
void
markDirty(Dirty v);
83
DirtyT m_dirtyFlag { 0xff };
84
85
friend
QSSGQuadTextureProvider
;
86
};
87
88
QT_END_NAMESPACE
89
90
#
endif
// QQUICK3DQUADTEXTUREPROVIDER_P_H
QQuick3DQuadTextureProvider
Definition
qquick3dquadtextureprovider_p.h:26
QQuick3DQuadTextureProvider::Q_REVISION
Q_REVISION(6, 12) void setFragmentShader(const QUrl &newFragmentShader)
QSSGQuadTextureProvider
Definition
qquick3dquadtextureprovider.cpp:375
QSSGQuadTextureProvider::QSSGQuadTextureProvider
QSSGQuadTextureProvider(QQuick3DQuadTextureProvider *ext)
Definition
qquick3dquadtextureprovider.cpp:412
QSSGQuadTextureProvider::render
void render(QSSGFrameData &data) override
Record the render pass.
Definition
qquick3dquadtextureprovider.cpp:630
QSSGQuadTextureProvider::propertyUniforms
QList< QSSGBaseTypeProperty > propertyUniforms
Definition
qquick3dquadtextureprovider.cpp:387
QSSGQuadTextureProvider::width
int width
Definition
qquick3dquadtextureprovider.cpp:389
QSSGQuadTextureProvider::dirtyFlag
QQuick3DQuadTextureProvider::DirtyT dirtyFlag
Definition
qquick3dquadtextureprovider.cpp:384
QSSGQuadTextureProvider::prepareRender
void prepareRender(QSSGFrameData &data) override
Prepare data for rendering.
Definition
qquick3dquadtextureprovider.cpp:512
QSSGQuadTextureProvider::fragmentShaderSource
QByteArray fragmentShaderSource
Definition
qquick3dquadtextureprovider.cpp:386
QSSGQuadTextureProvider::resetForFrame
void resetForFrame() override
Called each time a new frame starts.
Definition
qquick3dquadtextureprovider.cpp:659
QSSGQuadTextureProvider::shaderPathKey
QByteArray shaderPathKey
Definition
qquick3dquadtextureprovider.cpp:392
QSSGQuadTextureProvider::prepareData
bool prepareData(QSSGFrameData &data) override
Called after scene data is collected, but before any render data or rendering in the current frame ha...
Definition
qquick3dquadtextureprovider.cpp:416
QSSGQuadTextureProvider::~QSSGQuadTextureProvider
~QSSGQuadTextureProvider() override
Definition
qquick3dquadtextureprovider.cpp:414
QSSGQuadTextureProvider::height
int height
Definition
qquick3dquadtextureprovider.cpp:390
QSSGQuadTextureProvider::format
QQuick3DTextureData::Format format
Definition
qquick3dquadtextureprovider.cpp:388
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
mainVertexSnippet
static const QByteArray mainVertexSnippet
Definition
qquick3dquadtextureprovider.cpp:234
mainFragmentSnippet
static const QByteArray mainFragmentSnippet
Definition
qquick3dquadtextureprovider.cpp:251
fallbackFragmentShaderStr
static const QByteArray fallbackFragmentShaderStr
Definition
qquick3dquadtextureprovider.cpp:258
g_indexData
static constexpr uint16_t g_indexData[]
Definition
qquick3dquadtextureprovider.cpp:232
g_vertexData
static QT_BEGIN_NAMESPACE constexpr float g_vertexData[]
\qmltype QuadTextureProvider \nativetype QQuick3DQuadTextureProvider \inqmlmodule QtQuick3D....
Definition
qquick3dquadtextureprovider.cpp:229
insertVertexMainArgs
static void insertVertexMainArgs(QByteArray &snippet)
Definition
qquick3dquadtextureprovider.cpp:265
mainVertexSnippetFlipped
static const QByteArray mainVertexSnippetFlipped
Definition
qquick3dquadtextureprovider.cpp:242
qtquick3d
src
helpers
qquick3dquadtextureprovider_p.h
Generated on
for Qt by
1.18.0