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
280 struct BuiltinVariable {
282 VariableType varType;
283 QList<
int> arrayDims;
286 QList<BuiltinVariable> inputBuiltinVariables()
const;
287 QList<BuiltinVariable> outputBuiltinVariables()
const;
289 std::array<uint, 3> computeShaderLocalSize()
const;
291 uint tessellationOutputVertexCount()
const;
293 enum TessellationMode {
294 UnknownTessellationMode,
295 TrianglesTessellationMode,
296 QuadTessellationMode,
297 IsolineTessellationMode
300 TessellationMode tessellationMode()
const;
302 enum TessellationWindingOrder {
303 UnknownTessellationWindingOrder,
304 CwTessellationWindingOrder,
305 CcwTessellationWindingOrder
308 TessellationWindingOrder tessellationWindingOrder()
const;
310 enum TessellationPartitioning {
311 UnknownTessellationPartitioning,
312 EqualTessellationPartitioning,
313 FractionalEvenTessellationPartitioning,
314 FractionalOddTessellationPartitioning
317 TessellationPartitioning tessellationPartitioning()
const;
320 QShaderDescriptionPrivate *d;
321 friend struct QShaderDescriptionPrivate;
322#ifndef QT_NO_DEBUG_STREAM
323 friend Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
325 friend Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
328Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::ImageFlags)
329Q_DECLARE_OPERATORS_FOR_FLAGS(QShaderDescription::QualifierFlags)
331#ifndef QT_NO_DEBUG_STREAM
332Q_GUI_EXPORT QDebug operator<<(QDebug,
const QShaderDescription &);
333Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::InOutVariable &);
334Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BlockVariable &);
335Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::UniformBlock &);
336Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::PushConstantBlock &);
337Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::StorageBlock &);
338Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QShaderDescription::BuiltinVariable &);
341Q_GUI_EXPORT
bool operator==(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept;
342Q_GUI_EXPORT
bool operator==(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept;
343Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept;
344Q_GUI_EXPORT
bool operator==(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept;
345Q_GUI_EXPORT
bool operator==(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept;
346Q_GUI_EXPORT
bool operator==(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept;
347Q_GUI_EXPORT
bool operator==(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept;
349inline bool operator!=(
const QShaderDescription &lhs,
const QShaderDescription &rhs)
noexcept
351 return !(lhs == rhs);
354inline bool operator!=(
const QShaderDescription::InOutVariable &lhs,
const QShaderDescription::InOutVariable &rhs)
noexcept
356 return !(lhs == rhs);
359inline bool operator!=(
const QShaderDescription::BlockVariable &lhs,
const QShaderDescription::BlockVariable &rhs)
noexcept
361 return !(lhs == rhs);
364inline bool operator!=(
const QShaderDescription::UniformBlock &lhs,
const QShaderDescription::UniformBlock &rhs)
noexcept
366 return !(lhs == rhs);
369inline bool operator!=(
const QShaderDescription::PushConstantBlock &lhs,
const QShaderDescription::PushConstantBlock &rhs)
noexcept
371 return !(lhs == rhs);
374inline bool operator!=(
const QShaderDescription::StorageBlock &lhs,
const QShaderDescription::StorageBlock &rhs)
noexcept
376 return !(lhs == rhs);
379inline bool operator!=(
const QShaderDescription::BuiltinVariable &lhs,
const QShaderDescription::BuiltinVariable &rhs)
noexcept
381 return !(lhs == rhs);
int main(int argc, char *argv[])
[2]
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
\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