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
qssgrendergraphobject_p.h
Go to the documentation of this file.
1
// Copyright (C) 2008-2012 NVIDIA Corporation.
2
// Copyright (C) 2023 The Qt Company Ltd.
3
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
4
// Qt-Security score:significant reason:default
5
6
7
#
ifndef
QSSGRENDERGRAPHOBJECT_P_H
8
#
define
QSSGRENDERGRAPHOBJECT_P_H
9
10
//
11
// W A R N I N G
12
// -------------
13
//
14
// This file is not part of the Qt API. It exists purely as an
15
// implementation detail. This header file may change from version to
16
// version without notice, or even be removed.
17
//
18
// We mean it.
19
//
20
21
#
include
<
ssg
/
qssgrendergraphobject
.
h
>
22
23
#
include
<
ssg
/
qssgrenderbasetypes
.
h
>
24
25
#
include
<
QtQuick3DUtils
/
private
/
qssgassert_p
.
h
>
26
27
namespace
QSSGRenderGraphObjectUtils
{
28
29
enum
class
InternalFlags
:
quint32
30
{
31
AutoRegisterExtension
= 0x10000,
32
};
33
34
constexpr
QSSGResourceId
getResourceId
(
const
QSSGRenderGraphObject &o)
35
{
36
QSSG_ASSERT(QSSGRenderGraphObject::isResource(o.type),
return
QSSGResourceId::Invalid);
37
return
QSSGResourceId{ quintptr(&o) };
38
}
39
40
template
<
typename
T =
QSSGRenderGraphObject
>
41
T *
getResource
(QSSGResourceId resId)
42
{
43
return
static_cast
<T *>(
reinterpret_cast
<QSSGRenderGraphObject *>(resId));
44
}
45
46
constexpr
QSSGNodeId
getNodeId
(
const
QSSGRenderGraphObject &o)
47
{
48
QSSG_ASSERT(QSSGRenderGraphObject::isNodeType(o.type),
return
QSSGNodeId::Invalid);
49
return
QSSGNodeId{ quintptr(&o) };
50
}
51
52
template
<
typename
T =
QSSGRenderGraphObject
>
53
T *
getNode
(QSSGNodeId nodeId)
54
{
55
return
static_cast
<T *>(
reinterpret_cast
<QSSGRenderGraphObject *>(nodeId));
56
}
57
58
constexpr
QSSGCameraId
getCameraId
(
const
QSSGRenderGraphObject &o)
59
{
60
QSSG_ASSERT(QSSGRenderGraphObject::isCamera(o.type),
return
QSSGCameraId::Invalid);
61
return
QSSGCameraId{ quintptr(&o) };
62
}
63
64
template
<
typename
T =
QSSGRenderGraphObject
>
65
T *
getCamera
(QSSGCameraId cameraId)
66
{
67
return
static_cast
<T *>(
reinterpret_cast
<QSSGRenderGraphObject *>(cameraId));
68
}
69
70
constexpr
QSSGExtensionId
getExtensionId
(
const
QSSGRenderGraphObject &o)
71
{
72
QSSG_ASSERT(QSSGRenderGraphObject::isExtension(o.type),
return
QSSGExtensionId::Invalid);
73
return
QSSGExtensionId{ quintptr(&o) };
74
}
75
76
template
<
typename
T =
QSSGRenderGraphObject
>
77
T *
getExtension
(QSSGExtensionId extensionId)
78
{
79
return
static_cast
<T *>(
reinterpret_cast
<QSSGRenderGraphObject *>(extensionId));
80
}
81
82
template
<
typename
QSSGTypeId>
83
constexpr
bool
isNull
(QSSGTypeId id) {
return
(id == QSSGTypeId::Invalid); }
84
85
[[
nodiscard
]]
static
constexpr
QSSGRenderGraphObject
::
BaseType
getBaseType
(QSSGRenderGraphObject::Type type)
noexcept
86
{
87
constexpr
auto
BaseTypeMask = QSSGRenderGraphObject::TypeT(~0xFFF);
88
return
static_cast
<QSSGRenderGraphObject::BaseType>(QSSGRenderGraphObject::TypeT(type) & BaseTypeMask);
89
}
90
91
// The TextureProvider type is not a BaseType but it's a special type of Extension that is user
92
// facing and requires special handling in some places, so we keep this helper here for convenience.
93
[[
nodiscard
]]
static
constexpr
bool
isTextureProvider
(QSSGRenderGraphObject::Type type)
noexcept
94
{
95
return
(QSSGRenderGraphObject::TypeT(type) & QSSGRenderGraphObject::TypeT(QSSGRenderGraphObject::Type::TextureProvider));
96
}
97
98
// A scene root is a special node that acts as the root of a single viewport's part of the scene graph.
99
[[
nodiscard
]]
static
constexpr
bool
isSceneRoot
(QSSGRenderGraphObject::Type type)
noexcept
100
{
101
return
(type == QSSGRenderGraphObject::Type::SceneRoot);
102
}
103
104
[[
nodiscard
]]
static
constexpr
bool
isUserRenderPass
(QSSGRenderGraphObject::Type type)
noexcept
105
{
106
return
(type == QSSGRenderGraphObject::Type::RenderPass);
107
}
108
109
[[
nodiscard
]]
static
constexpr
bool
hasInternalFlags
(
const
QSSGRenderGraphObject &obj)
110
{
111
return
(obj.flags & QSSGRenderGraphObject::FlagT(QSSGRenderGraphObject::Flags::InternallyReserved));
112
}
113
114
[[
nodiscard
]]
static
constexpr
bool
hasInternalFlag
(
const
QSSGRenderGraphObject &obj,
InternalFlags
flag)
115
{
116
return
(obj.flags & QSSGRenderGraphObject::FlagT(flag));
117
118
}
119
120
}
// namespace QSSGRenderGraphObjectUtils
121
122
#
endif
// QSSGRENDERGRAPHOBJECT_P_H
QSSGRenderGraphObjectUtils
Definition
qssgrendergraphobject_p.h:27
QSSGRenderGraphObjectUtils::getCameraId
constexpr QSSGCameraId getCameraId(const QSSGRenderGraphObject &o)
Definition
qssgrendergraphobject_p.h:58
QSSGRenderGraphObjectUtils::getResourceId
constexpr QSSGResourceId getResourceId(const QSSGRenderGraphObject &o)
Definition
qssgrendergraphobject_p.h:34
QSSGRenderGraphObjectUtils::getExtension
T * getExtension(QSSGExtensionId extensionId)
Definition
qssgrendergraphobject_p.h:77
QSSGRenderGraphObjectUtils::getNode
T * getNode(QSSGNodeId nodeId)
Definition
qssgrendergraphobject_p.h:53
QSSGRenderGraphObjectUtils::isSceneRoot
static constexpr bool isSceneRoot(QSSGRenderGraphObject::Type type) noexcept
Definition
qssgrendergraphobject_p.h:99
QSSGRenderGraphObjectUtils::getResource
T * getResource(QSSGResourceId resId)
Definition
qssgrendergraphobject_p.h:41
QSSGRenderGraphObjectUtils::isUserRenderPass
static constexpr bool isUserRenderPass(QSSGRenderGraphObject::Type type) noexcept
Definition
qssgrendergraphobject_p.h:104
QSSGRenderGraphObjectUtils::getExtensionId
constexpr QSSGExtensionId getExtensionId(const QSSGRenderGraphObject &o)
Definition
qssgrendergraphobject_p.h:70
QSSGRenderGraphObjectUtils::hasInternalFlag
static constexpr bool hasInternalFlag(const QSSGRenderGraphObject &obj, InternalFlags flag)
Definition
qssgrendergraphobject_p.h:114
QSSGRenderGraphObjectUtils::isNull
constexpr bool isNull(QSSGTypeId id)
Definition
qssgrendergraphobject_p.h:83
QSSGRenderGraphObjectUtils::InternalFlags
InternalFlags
Definition
qssgrendergraphobject_p.h:30
QSSGRenderGraphObjectUtils::InternalFlags::AutoRegisterExtension
@ AutoRegisterExtension
Definition
qssgrendergraphobject_p.h:31
QSSGRenderGraphObjectUtils::hasInternalFlags
static constexpr bool hasInternalFlags(const QSSGRenderGraphObject &obj)
Definition
qssgrendergraphobject_p.h:109
QSSGRenderGraphObjectUtils::getCamera
T * getCamera(QSSGCameraId cameraId)
Definition
qssgrendergraphobject_p.h:65
QSSGRenderGraphObjectUtils::isTextureProvider
static constexpr bool isTextureProvider(QSSGRenderGraphObject::Type type) noexcept
Definition
qssgrendergraphobject_p.h:93
QSSGRenderGraphObjectUtils::getNodeId
constexpr QSSGNodeId getNodeId(const QSSGRenderGraphObject &o)
Definition
qssgrendergraphobject_p.h:46
QSSGRenderGraphObjectUtils::getBaseType
static constexpr QSSGRenderGraphObject::BaseType getBaseType(QSSGRenderGraphObject::Type type) noexcept
Definition
qssgrendergraphobject_p.h:85
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtQuick3DEditorHelpers::ShaderBaker
Definition
qssgrendershadercache_p.h:327
QtQuick3DEditorHelpers::ShaderBaker::setStatusCallback
Q_QUICK3DRUNTIMERENDER_EXPORT void setStatusCallback(StatusCallback cb)
Definition
qssgrendershadercache.cpp:883
QtQuick3DEditorHelpers::ShaderBaker::StatusCallback
void(*)(const QByteArray &descKey, Status status, const QString &err, QShader::Stage stage) StatusCallback
Definition
qssgrendershadercache_p.h:333
QtQuick3DEditorHelpers::ShaderCache
Definition
qssgrendershadercache_p.h:338
QtQuick3DEditorHelpers::ShaderCache::setAutomaticDiskCache
Q_QUICK3DRUNTIMERENDER_EXPORT void setAutomaticDiskCache(bool enable)
Definition
qssgrendershadercache.cpp:889
QtQuick3DEditorHelpers::ShaderCache::isAutomaticDiskCacheEnabled
Q_QUICK3DRUNTIMERENDER_EXPORT bool isAutomaticDiskCacheEnabled()
Definition
qssgrendershadercache.cpp:894
QtQuick3DEditorHelpers
Definition
qssgrendershadercache.cpp:882
Q_GLOBAL_STATIC
Q_GLOBAL_STATIC(QReadWriteLock, g_updateMutex)
persistentQsbcFileName
static QString persistentQsbcFileName()
Definition
qssgrendershadercache.cpp:333
isAutoDiskCacheEnabled
static bool isAutoDiskCacheEnabled()
Definition
qssgrendershadercache.cpp:296
qHash
size_t qHash(QSSGShaderFeatures features) noexcept
Definition
qssgrendershadercache.cpp:42
ensureWritableDir
static bool ensureWritableDir(const QString &name)
Definition
qssgrendershadercache.cpp:306
s_autoDiskCacheEnabled
static bool s_autoDiskCacheEnabled
Definition
qssgrendershadercache.cpp:294
persistentQsbcDir
static QString persistentQsbcDir()
Definition
qssgrendershadercache.cpp:312
initBakerForNonPersistentUse
static void initBakerForNonPersistentUse(QShaderBaker *, QRhi *)
Definition
qssgrendershadercache.cpp:285
DefineTable
static constexpr DefineEntry DefineTable[]
Definition
qssgrendershadercache.cpp:103
DefineEntry
Definition
qssgrendershadercache.cpp:98
DefineEntry::name
const char * name
Definition
qssgrendershadercache.cpp:99
qtquick3d
src
runtimerender
graphobjects
qssgrendergraphobject_p.h
Generated on
for Qt by
1.18.0