4#ifndef QSHADERDESCRIPTION_H
5#define QSHADERDESCRIPTION_H
16#include <QtGui/qtguiglobal.h>
17#include <QtCore/qstring.h>
18#include <QtCore/qlist.h>
23struct QShaderDescriptionPrivate;
30 QShaderDescription(
const QShaderDescription &other);
31 QShaderDescription &operator=(
const QShaderDescription &other);
32 ~QShaderDescription();
37 void serialize(QDataStream *stream,
int version)
const;
38 QByteArray toJson()
const;
40 static QShaderDescription deserialize(QDataStream *stream,
int version);
127 ImageFormatUnknown = 0,
128 ImageFormatRgba32f = 1,
129 ImageFormatRgba16f = 2,
131 ImageFormatRgba8 = 4,
132 ImageFormatRgba8Snorm = 5,
133 ImageFormatRg32f = 6,
134 ImageFormatRg16f = 7,
135 ImageFormatR11fG11fB10f = 8,
137 ImageFormatRgba16 = 10,
138 ImageFormatRgb10A2 = 11,
139 ImageFormatRg16 = 12,
143 ImageFormatRgba16Snorm = 16,
144 ImageFormatRg16Snorm = 17,
145 ImageFormatRg8Snorm = 18,
146 ImageFormatR16Snorm = 19,
147 ImageFormatR8Snorm = 20,
148 ImageFormatRgba32i = 21,
149 ImageFormatRgba16i = 22,
150 ImageFormatRgba8i = 23,
151 ImageFormatR32i = 24,
152 ImageFormatRg32i = 25,
153 ImageFormatRg16i = 26,
154 ImageFormatRg8i = 27,
155 ImageFormatR16i = 28,
157 ImageFormatRgba32ui = 30,
158 ImageFormatRgba16ui = 31,
159 ImageFormatRgba8ui = 32,
160 ImageFormatR32ui = 33,
161 ImageFormatRgb10a2ui = 34,
162 ImageFormatRg32ui = 35,
163 ImageFormatRg16ui = 36,
164 ImageFormatRg8ui = 37,
165 ImageFormatR16ui = 38,
170 ReadOnlyImage = 1 << 0,
171 WriteOnlyImage = 1 << 1
173 Q_DECLARE_FLAGS(ImageFlags, ImageFlag)
176 QualifierReadOnly = 1 << 0,
177 QualifierWriteOnly = 1 << 1,
178 QualifierCoherent = 1 << 2,
179 QualifierVolatile = 1 << 3,
180 QualifierRestrict = 1 << 4,
182 Q_DECLARE_FLAGS(QualifierFlags, QualifierFlag)
186 struct BlockVariable {
188 VariableType type = Unknown;
191 QList<
int> arrayDims;
193 int matrixStride = 0;
194 bool matrixIsRowMajor =
false;
195 QList<BlockVariable> structMembers;
198 struct InOutVariable {
200 VariableType type = Unknown;
203 int descriptorSet = -1;
204 ImageFormat imageFormat = ImageFormatUnknown;
205 ImageFlags imageFlags;
206 QList<
int> arrayDims;
207 bool perPatch =
false;
208 QList<BlockVariable> structMembers;
211 struct UniformBlock {
212 QByteArray blockName;
213 QByteArray structName;
216 int descriptorSet = -1;
217 QList<BlockVariable> members;
220 struct PushConstantBlock {
223 QList<BlockVariable> members;
226 struct StorageBlock {
227 QByteArray blockName;
228 QByteArray instanceName;
231 int descriptorSet = -1;
232 QList<BlockVariable> members;
233 int runtimeArrayStride = 0;
234 QualifierFlags qualifierFlags;
237 QList<InOutVariable> inputVariables()
const;
238 QList<InOutVariable> outputVariables()
const;
239 QList<UniformBlock> uniformBlocks()
const;
240 QList<PushConstantBlock> pushConstantBlocks()
const;
241 QList<StorageBlock> storageBlocks()
const;
242 QList<InOutVariable> combinedImageSamplers()
const;
243 QList<InOutVariable> separateImages()
const;
244 QList<InOutVariable> separateSamplers()
const;
245 QList<InOutVariable> storageImages()
const;
250 PointSizeBuiltin = 1,
251 ClipDistanceBuiltin = 3,
252 CullDistanceBuiltin = 4,
254 InstanceIdBuiltin = 6,
255 PrimitiveIdBuiltin = 7,
256 InvocationIdBuiltin = 8,
258 ViewportIndexBuiltin = 10,
259 TessLevelOuterBuiltin = 11,
260 TessLevelInnerBuiltin = 12,
261 TessCoordBuiltin = 13,
262 PatchVerticesBuiltin = 14,
263 FragCoordBuiltin = 15,
264 PointCoordBuiltin = 16,
265 FrontFacingBuiltin = 17,
266 SampleIdBuiltin = 18,
267 SamplePositionBuiltin = 19,
268 SampleMaskBuiltin = 20,
269 FragDepthBuiltin = 22,
270 NumWorkGroupsBuiltin = 24,
271 WorkgroupSizeBuiltin = 25,
272 WorkgroupIdBuiltin = 26,
273 LocalInvocationIdBuiltin = 27,
274 GlobalInvocationIdBuiltin = 28,
275 LocalInvocationIndexBuiltin = 29,
276 VertexIndexBuiltin = 42,
277 InstanceIndexBuiltin = 43,
278 ViewIndexBuiltin = 4440,
281 struct BuiltinVariable {
283 VariableType varType;
284 QList<
int> arrayDims;
287 QList<BuiltinVariable> inputBuiltinVariables()
const;
288 QList<BuiltinVariable> outputBuiltinVariables()
const;
290 std::array<uint, 3> computeShaderLocalSize()
const;
292 uint tessellationOutputVertexCount()
const;
294 enum TessellationMode {
295 UnknownTessellationMode,
296 TrianglesTessellationMode,
297 QuadTessellationMode,
298 IsolineTessellationMode
301 TessellationMode tessellationMode()
const;
303 enum TessellationWindingOrder {
304 UnknownTessellationWindingOrder,
305 CwTessellationWindingOrder,
306 CcwTessellationWindingOrder
309 TessellationWindingOrder tessellationWindingOrder()
const;
311 enum TessellationPartitioning {
312 UnknownTessellationPartitioning,
313 EqualTessellationPartitioning,
314 FractionalEvenTessellationPartitioning,
315 FractionalOddTessellationPartitioning
318 TessellationPartitioning tessellationPartitioning()
const;
321 QShaderDescriptionPrivate *d;
322 friend struct QShaderDescriptionPrivate;
323#ifndef QT_NO_DEBUG_STREAM
324 friend Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
326 friend Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
329Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::ImageFlags)
330Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::QualifierFlags)
332#ifndef QT_NO_DEBUG_STREAM
333Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
334Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::InOutVariable &);
335Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BlockVariable &);
336Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::UniformBlock &);
337Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::PushConstantBlock &);
338Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::StorageBlock &);
339Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BuiltinVariable &);
342Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
343Q_GUI_EXPORT
bool operator==(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept;
344Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept;
345Q_GUI_EXPORT
bool operator==(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept;
346Q_GUI_EXPORT
bool operator==(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept;
347Q_GUI_EXPORT
bool operator==(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept;
348Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept;
350inline bool operator!=(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept
352 return !(lhs == rhs);
355inline bool operator!=(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept
357 return !(lhs == rhs);
360inline bool operator!=(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept
362 return !(lhs == rhs);
365inline bool operator!=(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept
367 return !(lhs == rhs);
370inline bool operator!=(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept
372 return !(lhs == rhs);
375inline bool operator!=(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept
377 return !(lhs == rhs);
380inline bool operator!=(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept
382 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