5#ifndef QSHADERDESCRIPTION_H
6#define QSHADERDESCRIPTION_H
17#include <QtGui/qtguiglobal.h>
18#include <QtCore/qstring.h>
19#include <QtCore/qlist.h>
24struct QShaderDescriptionPrivate;
31 QShaderDescription(
const QShaderDescription &other);
32 QShaderDescription &operator=(
const QShaderDescription &other);
33 ~QShaderDescription();
38 void serialize(QDataStream *stream,
int version)
const;
39 QByteArray toJson()
const;
41 static QShaderDescription deserialize(QDataStream *stream,
int version);
128 ImageFormatUnknown = 0,
129 ImageFormatRgba32f = 1,
130 ImageFormatRgba16f = 2,
132 ImageFormatRgba8 = 4,
133 ImageFormatRgba8Snorm = 5,
134 ImageFormatRg32f = 6,
135 ImageFormatRg16f = 7,
136 ImageFormatR11fG11fB10f = 8,
138 ImageFormatRgba16 = 10,
139 ImageFormatRgb10A2 = 11,
140 ImageFormatRg16 = 12,
144 ImageFormatRgba16Snorm = 16,
145 ImageFormatRg16Snorm = 17,
146 ImageFormatRg8Snorm = 18,
147 ImageFormatR16Snorm = 19,
148 ImageFormatR8Snorm = 20,
149 ImageFormatRgba32i = 21,
150 ImageFormatRgba16i = 22,
151 ImageFormatRgba8i = 23,
152 ImageFormatR32i = 24,
153 ImageFormatRg32i = 25,
154 ImageFormatRg16i = 26,
155 ImageFormatRg8i = 27,
156 ImageFormatR16i = 28,
158 ImageFormatRgba32ui = 30,
159 ImageFormatRgba16ui = 31,
160 ImageFormatRgba8ui = 32,
161 ImageFormatR32ui = 33,
162 ImageFormatRgb10a2ui = 34,
163 ImageFormatRg32ui = 35,
164 ImageFormatRg16ui = 36,
165 ImageFormatRg8ui = 37,
166 ImageFormatR16ui = 38,
171 ReadOnlyImage = 1 << 0,
172 WriteOnlyImage = 1 << 1
174 Q_DECLARE_FLAGS(ImageFlags, ImageFlag)
177 QualifierReadOnly = 1 << 0,
178 QualifierWriteOnly = 1 << 1,
179 QualifierCoherent = 1 << 2,
180 QualifierVolatile = 1 << 3,
181 QualifierRestrict = 1 << 4,
183 Q_DECLARE_FLAGS(QualifierFlags, QualifierFlag)
187 struct BlockVariable {
189 VariableType type = Unknown;
192 QList<
int> arrayDims;
194 int matrixStride = 0;
195 bool matrixIsRowMajor =
false;
196 QList<BlockVariable> structMembers;
199 struct InOutVariable {
201 VariableType type = Unknown;
204 int descriptorSet = -1;
205 ImageFormat imageFormat = ImageFormatUnknown;
206 ImageFlags imageFlags;
207 QList<
int> arrayDims;
208 bool perPatch =
false;
209 QList<BlockVariable> structMembers;
212 struct UniformBlock {
213 QByteArray blockName;
214 QByteArray structName;
217 int descriptorSet = -1;
218 QList<BlockVariable> members;
221 struct PushConstantBlock {
224 QList<BlockVariable> members;
227 struct StorageBlock {
228 QByteArray blockName;
229 QByteArray instanceName;
232 int descriptorSet = -1;
233 QList<BlockVariable> members;
234 int runtimeArrayStride = 0;
235 QualifierFlags qualifierFlags;
238 QList<InOutVariable> inputVariables()
const;
239 QList<InOutVariable> outputVariables()
const;
240 QList<UniformBlock> uniformBlocks()
const;
241 QList<PushConstantBlock> pushConstantBlocks()
const;
242 QList<StorageBlock> storageBlocks()
const;
243 QList<InOutVariable> combinedImageSamplers()
const;
244 QList<InOutVariable> separateImages()
const;
245 QList<InOutVariable> separateSamplers()
const;
246 QList<InOutVariable> storageImages()
const;
251 PointSizeBuiltin = 1,
252 ClipDistanceBuiltin = 3,
253 CullDistanceBuiltin = 4,
255 InstanceIdBuiltin = 6,
256 PrimitiveIdBuiltin = 7,
257 InvocationIdBuiltin = 8,
259 ViewportIndexBuiltin = 10,
260 TessLevelOuterBuiltin = 11,
261 TessLevelInnerBuiltin = 12,
262 TessCoordBuiltin = 13,
263 PatchVerticesBuiltin = 14,
264 FragCoordBuiltin = 15,
265 PointCoordBuiltin = 16,
266 FrontFacingBuiltin = 17,
267 SampleIdBuiltin = 18,
268 SamplePositionBuiltin = 19,
269 SampleMaskBuiltin = 20,
270 FragDepthBuiltin = 22,
271 NumWorkGroupsBuiltin = 24,
272 WorkgroupSizeBuiltin = 25,
273 WorkgroupIdBuiltin = 26,
274 LocalInvocationIdBuiltin = 27,
275 GlobalInvocationIdBuiltin = 28,
276 LocalInvocationIndexBuiltin = 29,
277 VertexIndexBuiltin = 42,
278 InstanceIndexBuiltin = 43,
279 ViewIndexBuiltin = 4440,
282 struct BuiltinVariable {
284 VariableType varType;
285 QList<
int> arrayDims;
288 QList<BuiltinVariable> inputBuiltinVariables()
const;
289 QList<BuiltinVariable> outputBuiltinVariables()
const;
291 std::array<uint, 3> computeShaderLocalSize()
const;
293 uint tessellationOutputVertexCount()
const;
295 enum TessellationMode {
296 UnknownTessellationMode,
297 TrianglesTessellationMode,
298 QuadTessellationMode,
299 IsolineTessellationMode
302 TessellationMode tessellationMode()
const;
304 enum TessellationWindingOrder {
305 UnknownTessellationWindingOrder,
306 CwTessellationWindingOrder,
307 CcwTessellationWindingOrder
310 TessellationWindingOrder tessellationWindingOrder()
const;
312 enum TessellationPartitioning {
313 UnknownTessellationPartitioning,
314 EqualTessellationPartitioning,
315 FractionalEvenTessellationPartitioning,
316 FractionalOddTessellationPartitioning
319 TessellationPartitioning tessellationPartitioning()
const;
322 QShaderDescriptionPrivate *d;
323 friend struct QShaderDescriptionPrivate;
324#ifndef QT_NO_DEBUG_STREAM
325 friend Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
327 friend Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
330Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::ImageFlags)
331Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::QualifierFlags)
333#ifndef QT_NO_DEBUG_STREAM
334Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
335Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::InOutVariable &);
336Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BlockVariable &);
337Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::UniformBlock &);
338Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::PushConstantBlock &);
339Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::StorageBlock &);
340Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BuiltinVariable &);
343Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
344Q_GUI_EXPORT
bool operator==(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept;
345Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept;
346Q_GUI_EXPORT
bool operator==(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept;
347Q_GUI_EXPORT
bool operator==(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept;
348Q_GUI_EXPORT
bool operator==(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept;
349Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept;
351inline bool operator!=(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept
353 return !(lhs == rhs);
356inline bool operator!=(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept
358 return !(lhs == rhs);
361inline bool operator!=(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept
363 return !(lhs == rhs);
366inline bool operator!=(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept
368 return !(lhs == rhs);
371inline bool operator!=(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept
373 return !(lhs == rhs);
376inline bool operator!=(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept
378 return !(lhs == rhs);
381inline bool operator!=(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept
383 return !(lhs == rhs);
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
Combined button and popup list for selecting options.
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
bool operator<(const QElapsedTimer &lhs, const QElapsedTimer &rhs) noexcept
Q_DECLARE_TYPEINFO(QRhiSwapChainHdrInfo, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QShaderKey, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QShaderCode, Q_RELOCATABLE_TYPE)
Q_GUI_EXPORT bool operator==(const QShaderKey &lhs, const QShaderKey &rhs) noexcept
bool operator!=(const QShaderCode &lhs, const QShaderCode &rhs) noexcept
Q_GUI_EXPORT bool operator==(const QShaderCode &lhs, const QShaderCode &rhs) noexcept
bool operator!=(const QShaderKey &lhs, const QShaderKey &rhs) noexcept
Q_GUI_EXPORT bool operator<(const QShaderKey &lhs, const QShaderKey &rhs) noexcept
int main(int argc, char *argv[])
[ctor_close]
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\variable QRhiReadbackResult::completed
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
LuminanceBehavior
\value SceneReferred Indicates that the color value of 1.0 is interpreted as 80 nits.
float maxPotentialColorComponentValue
LimitsType
\value LuminanceInNits Indicates that the \l limits union has its luminanceInNits struct set
LuminanceBehavior luminanceBehavior
float maxColorComponentValue
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h