QShaderDescription Class
Beschreibt die Schnittstelle eines Shaders. Mehr...
| Header: | #include <qshaderdescription.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Seit: | Qt 6.6 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QShaderDescription ist Teil von „Rendering in 3D“.
Öffentliche Typen
(since 6.6) struct | BlockVariable |
(since 6.6) struct | BuiltinVariable |
(since 6.6) struct | InOutVariable |
(since 6.6) struct | PushConstantBlock |
(since 6.6) struct | StorageBlock |
(since 6.6) struct | UniformBlock |
| enum | BuiltinType { PositionBuiltin, PointSizeBuiltin, ClipDistanceBuiltin, CullDistanceBuiltin, VertexIdBuiltin, …, ViewIndexBuiltin } |
| enum | ImageFlag { ReadOnlyImage, WriteOnlyImage } |
| flags | ImageFlags |
| enum | ImageFormat { ImageFormatUnknown, ImageFormatRgba32f, ImageFormatRgba16f, ImageFormatR32f, ImageFormatRgba8, …, ImageFormatR8ui } |
| enum | QualifierFlag { QualifierReadOnly, QualifierWriteOnly, QualifierCoherent, QualifierVolatile, QualifierRestrict } |
| flags | QualifierFlags |
| enum | TessellationMode { UnknownTessellationMode, TrianglesTessellationMode, QuadTessellationMode, IsolineTessellationMode } |
| enum | TessellationPartitioning { UnknownTessellationPartitioning, EqualTessellationPartitioning, FractionalEvenTessellationPartitioning, FractionalOddTessellationPartitioning } |
| enum | TessellationWindingOrder { UnknownTessellationWindingOrder, CwTessellationWindingOrder, CcwTessellationWindingOrder } |
| enum | VariableType { Unknown, Float, Vec2, Vec3, Vec4, …, Half4 } |
Öffentliche Funktionen
| QShaderDescription() | |
| QShaderDescription(const QShaderDescription &other) | |
| ~QShaderDescription() | |
| QList<QShaderDescription::InOutVariable> | combinedImageSamplers() const |
| std::array<uint, 3> | computeShaderLocalSize() const |
| QList<QShaderDescription::BuiltinVariable> | inputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | inputVariables() const |
| bool | isValid() const |
| QList<QShaderDescription::BuiltinVariable> | outputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | outputVariables() const |
| QList<QShaderDescription::PushConstantBlock> | pushConstantBlocks() const |
| void | serialize(QDataStream *stream, int version) const |
| QList<QShaderDescription::StorageBlock> | storageBlocks() const |
| QList<QShaderDescription::InOutVariable> | storageImages() const |
| QShaderDescription::TessellationMode | tessellationMode() const |
| uint | tessellationOutputVertexCount() const |
| QShaderDescription::TessellationPartitioning | tessellationPartitioning() const |
| QShaderDescription::TessellationWindingOrder | tessellationWindingOrder() const |
| QByteArray | toJson() const |
| QList<QShaderDescription::UniformBlock> | uniformBlocks() const |
| QShaderDescription & | operator=(const QShaderDescription &other) |
Statische öffentliche Mitglieder
| QShaderDescription | deserialize(QDataStream *stream, int version) |
Verwandte Nicht-Mitglieder
| bool | operator==(const QShaderDescription &lhs, const QShaderDescription &rhs) |
Ausführliche Beschreibung
Warnung: Die Klassenfamilie „ QRhi “ im Qt GUI-Modul, einschließlich „ QShader “ und „QShaderDescription“, bietet nur eingeschränkte Kompatibilitätsgarantien. Für diese Klassen gibt es keine Garantien hinsichtlich der Quellcode- oder Binärkompatibilität, was bedeutet, dass die API nur mit der Qt-Version funktioniert, für die die Anwendung entwickelt wurde. Änderungen, die zu einer Inkompatibilität auf Quellcodeebene führen, sollen jedoch auf ein Minimum beschränkt werden und werden nur in Minor-Releases (6.7, 6.8 usw.) vorgenommen. Um diese Klassen in einer Anwendung zu verwenden, verknüpfen Sie mit „ Qt::GuiPrivate “ (bei Verwendung von CMake) und binden Sie die Header mit dem Präfix „ rhi “ ein, zum Beispiel „ #include <rhi/qshaderdescription.h> “.
Ein Shader verfügt in der Regel über eine Reihe von Ein- und Ausgängen. Ein Vertex-Shader hat beispielsweise eine Reihe von Eingabevariablen und kann einen oder mehrere Uniform-Puffer verwenden, um auf Daten (z. B. eine Model-View-Matrix) zuzugreifen, die von der Anwendung bereitgestellt werden. Der Shader für die Fragmentstufe erhält (in einem einfachen Aufbau) Daten aus der Vertexstufe und kann zudem auf Daten aus Uniform-Buffern, Bildern und Samplern zurückgreifen.
Was die Vertex-Eingaben und das Layout der Uniform-Buffer betrifft (wie lauten die Namen der Elemente? Wie groß sind sie, welchen Offset haben sie usw.), müssen Anwendungen und Frameworks diese Informationen möglicherweise zur Laufzeit dynamisch ermitteln. Dies ist typischerweise der Fall, wenn der Shader nicht integriert ist, sondern von einer externen Instanz, wie beispielsweise dem Benutzer, bereitgestellt wird.
Moderne und schlanke Grafik-APIs bieten möglicherweise keine Möglichkeit mehr, Shader-Reflexionsinformationen zur Laufzeit abzufragen. Daher werden solche Daten nun automatisch von „ QShaderBaker “ generiert und als „QShaderDescription“-Objekt für jeden einzelnen „ QShader “ bereitgestellt.
Beispiel
Betrachten Sie den folgenden Vertex-Shader:
#version 440
layout(location = 0) in vec4 position;
layout(location = 1) in vec3 color;
layout(location = 0) out vec3 v_color;
layout(std140, binding = 0) uniform buf {
mat4 mvp;
float opacity;
} ubuf;
void main()
{
v_color = color;
gl_Position = ubuf.mvp * position;
}Dieser Shader hat zwei Eingaben: „ position “ an Position 0 mit dem Typ „ vec4 “ und „ color “ an Position 1 mit dem Typ „ vec3 “. Er hat eine Ausgabe: „ v_color “, obwohl diese für Anwendungen in der Regel nicht von Interesse ist. Wichtiger ist jedoch, dass es einen einheitlichen Block an Bindung 0 mit einer Größe von 68 Byte und zwei Elementen gibt: eine 4x4-Matrix namens „ mvp “ am Offset 0 und einen Float-Wert „ opacity “ am Offset 64.
All dies wird durch ein `QShaderDescription`-Objekt beschrieben. `QShaderDescription` kann über ` QDataStream` in JSON und in ein binäres Format serialisiert sowie aus diesem binären Format deserialisiert werden. In der Praxis ist dies selten erforderlich, da „ QShader “ sich automatisch um die zugehörige „QShaderDescription“ kümmert. Würde die „QShaderDescription“ des oben genannten Shaders jedoch als JSON ausgegeben (wie es die Option „ -d “ des Tools „ qsb “ tut), sähe sie wie folgt aus:
{
"inputs": [
{
"location": 1,
"name": "color",
"type": "vec3"
},
{
"location": 0,
"name": "position",
"type": "vec4"
}
],
"outputs": [
{
"location": 0,
"name": "v_color",
"type": "vec3"
}
],
"uniformBlocks": [
{
"binding": 0,
"blockName": "buf",
"members": [
{
"matrixStride": 16,
"name": "mvp",
"offset": 0,
"size": 64,
"type": "mat4"
},
{
"name": "opacity",
"offset": 64,
"size": 4,
"type": "float"
}
],
"set": 0,
"size": 68,
"structName": "ubuf"
}
]
}Die C++-API ermöglicht den Zugriff auf eine Datenstruktur wie die oben gezeigte. Der Einfachheit halber enthalten die inneren Strukturen nur öffentliche Datenelemente, auch unter Berücksichtigung der Tatsache, dass sich ihr Layout in Zukunft wahrscheinlich nicht ändern wird.
Siehe auch QShaderBaker und QShader.
Dokumentation zu Mitgliedstypen
enum QShaderDescription::BuiltinType
Eingebauter Variablentyp.
| Konstante | Wert |
|---|---|
QShaderDescription::PositionBuiltin | 0 |
QShaderDescription::PointSizeBuiltin | 1 |
QShaderDescription::ClipDistanceBuiltin | 3 |
QShaderDescription::CullDistanceBuiltin | 4 |
QShaderDescription::VertexIdBuiltin | 5 |
QShaderDescription::InstanceIdBuiltin | 6 |
QShaderDescription::PrimitiveIdBuiltin | 7 |
QShaderDescription::InvocationIdBuiltin | 8 |
QShaderDescription::LayerBuiltin | 9 |
QShaderDescription::ViewportIndexBuiltin | 10 |
QShaderDescription::TessLevelOuterBuiltin | 11 |
QShaderDescription::TessLevelInnerBuiltin | 12 |
QShaderDescription::TessCoordBuiltin | 13 |
QShaderDescription::PatchVerticesBuiltin | 14 |
QShaderDescription::FragCoordBuiltin | 15 |
QShaderDescription::PointCoordBuiltin | 16 |
QShaderDescription::FrontFacingBuiltin | 17 |
QShaderDescription::SampleIdBuiltin | 18 |
QShaderDescription::SamplePositionBuiltin | 19 |
QShaderDescription::SampleMaskBuiltin | 20 |
QShaderDescription::FragDepthBuiltin | 22 |
QShaderDescription::NumWorkGroupsBuiltin | 24 |
QShaderDescription::WorkgroupSizeBuiltin | 25 |
QShaderDescription::WorkgroupIdBuiltin | 26 |
QShaderDescription::LocalInvocationIdBuiltin | 27 |
QShaderDescription::GlobalInvocationIdBuiltin | 28 |
QShaderDescription::LocalInvocationIndexBuiltin | 29 |
QShaderDescription::VertexIndexBuiltin | 42 |
QShaderDescription::InstanceIndexBuiltin | 43 |
QShaderDescription::ViewIndexBuiltin | 4440 |
enum QShaderDescription::ImageFlag
flags QShaderDescription::ImageFlags
Bildflaggen.
| Konstante | Wert |
|---|---|
QShaderDescription::ReadOnlyImage | 1 << 0 |
QShaderDescription::WriteOnlyImage | 1 << 1 |
Der Typ `ImageFlags` ist ein `typedef` für ` QFlags<ImageFlag>`. Er speichert eine ODER-Kombination von `ImageFlag`-Werten.
enum QShaderDescription::ImageFormat
Bildformat.
| Konstante | Wert |
|---|---|
QShaderDescription::ImageFormatUnknown | 0 |
QShaderDescription::ImageFormatRgba32f | 1 |
QShaderDescription::ImageFormatRgba16f | 2 |
QShaderDescription::ImageFormatR32f | 3 |
QShaderDescription::ImageFormatRgba8 | 4 |
QShaderDescription::ImageFormatRgba8Snorm | 5 |
QShaderDescription::ImageFormatRg32f | 6 |
QShaderDescription::ImageFormatRg16f | 7 |
QShaderDescription::ImageFormatR11fG11fB10f | 8 |
QShaderDescription::ImageFormatR16f | 9 |
QShaderDescription::ImageFormatRgba16 | 10 |
QShaderDescription::ImageFormatRgb10A2 | 11 |
QShaderDescription::ImageFormatRg16 | 12 |
QShaderDescription::ImageFormatRg8 | 13 |
QShaderDescription::ImageFormatR16 | 14 |
QShaderDescription::ImageFormatR8 | 15 |
QShaderDescription::ImageFormatRgba16Snorm | 16 |
QShaderDescription::ImageFormatRg16Snorm | 17 |
QShaderDescription::ImageFormatRg8Snorm | 18 |
QShaderDescription::ImageFormatR16Snorm | 19 |
QShaderDescription::ImageFormatR8Snorm | 20 |
QShaderDescription::ImageFormatRgba32i | 21 |
QShaderDescription::ImageFormatRgba16i | 22 |
QShaderDescription::ImageFormatRgba8i | 23 |
QShaderDescription::ImageFormatR32i | 24 |
QShaderDescription::ImageFormatRg32i | 25 |
QShaderDescription::ImageFormatRg16i | 26 |
QShaderDescription::ImageFormatRg8i | 27 |
QShaderDescription::ImageFormatR16i | 28 |
QShaderDescription::ImageFormatR8i | 29 |
QShaderDescription::ImageFormatRgba32ui | 30 |
QShaderDescription::ImageFormatRgba16ui | 31 |
QShaderDescription::ImageFormatRgba8ui | 32 |
QShaderDescription::ImageFormatR32ui | 33 |
QShaderDescription::ImageFormatRgb10a2ui | 34 |
QShaderDescription::ImageFormatRg32ui | 35 |
QShaderDescription::ImageFormatRg16ui | 36 |
QShaderDescription::ImageFormatRg8ui | 37 |
QShaderDescription::ImageFormatR16ui | 38 |
QShaderDescription::ImageFormatR8ui | 39 |
enum QShaderDescription::QualifierFlag
flags QShaderDescription::QualifierFlags
Qualifikationsflags.
| Konstante | Wert |
|---|---|
QShaderDescription::QualifierReadOnly | 1 << 0 |
QShaderDescription::QualifierWriteOnly | 1 << 1 |
QShaderDescription::QualifierCoherent | 1 << 2 |
QShaderDescription::QualifierVolatile | 1 << 3 |
QShaderDescription::QualifierRestrict | 1 << 4 |
Der Typ „QualifierFlags“ ist ein typedef für „QFlags<QualifierFlag>“. Er speichert eine ODER-Kombination von „QualifierFlag“-Werten.
enum QShaderDescription::TessellationMode
| Konstante | Wert |
|---|---|
QShaderDescription::UnknownTessellationMode | 0 |
QShaderDescription::TrianglesTessellationMode | 1 |
QShaderDescription::QuadTessellationMode | 2 |
QShaderDescription::IsolineTessellationMode | 3 |
enum QShaderDescription::TessellationPartitioning
| Konstante | Wert |
|---|---|
QShaderDescription::UnknownTessellationPartitioning | 0 |
QShaderDescription::EqualTessellationPartitioning | 1 |
QShaderDescription::FractionalEvenTessellationPartitioning | 2 |
QShaderDescription::FractionalOddTessellationPartitioning | 3 |
enum QShaderDescription::TessellationWindingOrder
| Konstante | Wert |
|---|---|
QShaderDescription::UnknownTessellationWindingOrder | 0 |
QShaderDescription::CwTessellationWindingOrder | 1 |
QShaderDescription::CcwTessellationWindingOrder | 2 |
enum QShaderDescription::VariableType
Bezeichnet den Typ einer Variablen oder eines Blockelements.
| Konstante | Wert | Beschreibung |
|---|---|---|
QShaderDescription::Unknown | 0 | |
QShaderDescription::Float | 1 | |
QShaderDescription::Vec2 | 2 | |
QShaderDescription::Vec3 | 3 | |
QShaderDescription::Vec4 | 4 | |
QShaderDescription::Mat2 | 5 | |
QShaderDescription::Mat2x3 | 6 | |
QShaderDescription::Mat2x4 | 7 | |
QShaderDescription::Mat3 | 8 | |
QShaderDescription::Mat3x2 | 9 | |
QShaderDescription::Mat3x4 | 10 | |
QShaderDescription::Mat4 | 11 | |
QShaderDescription::Mat4x2 | 12 | |
QShaderDescription::Mat4x3 | 13 | |
QShaderDescription::Int | 14 | |
QShaderDescription::Int2 | 15 | |
QShaderDescription::Int3 | 16 | |
QShaderDescription::Int4 | 17 | |
QShaderDescription::Uint | 18 | |
QShaderDescription::Uint2 | 19 | |
QShaderDescription::Uint3 | 20 | |
QShaderDescription::Uint4 | 21 | |
QShaderDescription::Bool | 22 | |
QShaderDescription::Bool2 | 23 | |
QShaderDescription::Bool3 | 24 | |
QShaderDescription::Bool4 | 25 | |
QShaderDescription::Double | 26 | |
QShaderDescription::Double2 | 27 | |
QShaderDescription::Double3 | 28 | |
QShaderDescription::Double4 | 29 | |
QShaderDescription::DMat2 | 30 | |
QShaderDescription::DMat2x3 | 31 | |
QShaderDescription::DMat2x4 | 32 | |
QShaderDescription::DMat3 | 33 | |
QShaderDescription::DMat3x2 | 34 | |
QShaderDescription::DMat3x4 | 35 | |
QShaderDescription::DMat4 | 36 | |
QShaderDescription::DMat4x2 | 37 | |
QShaderDescription::DMat4x3 | 38 | |
QShaderDescription::Sampler1D | 39 | |
QShaderDescription::Sampler2D | 40 | |
QShaderDescription::Sampler2DMS | 41 | |
QShaderDescription::Sampler3D | 42 | |
QShaderDescription::SamplerCube | 43 | |
QShaderDescription::Sampler1DArray | 44 | |
QShaderDescription::Sampler2DArray | 45 | |
QShaderDescription::Sampler2DMSArray | 46 | |
QShaderDescription::Sampler3DArray | 47 | |
QShaderDescription::SamplerCubeArray | 48 | |
QShaderDescription::SamplerRect | 49 | |
QShaderDescription::SamplerBuffer | 50 | |
QShaderDescription::SamplerExternalOES | 51 | |
QShaderDescription::Sampler | 52 | Für separate Probenehmer. |
QShaderDescription::Image1D | 53 | |
QShaderDescription::Image2D | 54 | |
QShaderDescription::Image2DMS | 55 | |
QShaderDescription::Image3D | 56 | |
QShaderDescription::ImageCube | 57 | |
QShaderDescription::Image1DArray | 58 | |
QShaderDescription::Image2DArray | 59 | |
QShaderDescription::Image2DMSArray | 60 | |
QShaderDescription::Image3DArray | 61 | |
QShaderDescription::ImageCubeArray | 62 | |
QShaderDescription::ImageRect | 63 | |
QShaderDescription::ImageBuffer | 64 | |
QShaderDescription::Struct | 65 | |
QShaderDescription::Half | 66 | |
QShaderDescription::Half2 | 67 | |
QShaderDescription::Half3 | 68 | |
QShaderDescription::Half4 | 69 |
Dokumentation zu Member-Funktionen
QShaderDescription::QShaderDescription()
Erstellt eine neue, leere `QShaderDescription`.
Hinweis: Dadas Objekt leerist , gibt die Methode „ isValid()“ für die neu erstellte Instanz den Wert „ false “ zurück.
QShaderDescription::QShaderDescription(const QShaderDescription &other)
Erstellt eine Kopie von „ other “.
[noexcept] QShaderDescription::~QShaderDescription()
Destruktor.
QList<QShaderDescription::InOutVariable> QShaderDescription::combinedImageSamplers() const
Gibt die Liste der kombinierten Bild-Sampler zurück
Bei GLSL-/Vulkan-Shadern als Quelle erzeugt ein Uniform vom Typ „ layout(binding = 1) uniform sampler2D tex; “ Folgendes: (hier als JSON-Text dargestellt)
"combinedImageSamplers": [
{
"binding": 1,
"name": "tex",
"set": 0,
"type": "sampler2D"
}
]Dies bedeutet nicht, dass auch andere Sprachversionen des Shaders einen kombinierten Bild-Sampler verwenden müssen, zumal dieses Konzept möglicherweise nicht überall existiert. Eine HLSL-Version würde beispielsweise wahrscheinlich lediglich ein `Texture2D`- und ein `SamplerState`-Objekt mit den Registern `t1` bzw. `s1` verwenden.
std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
Gibt die lokale Größe eines Compute-Shaders zurück.
Beispielsweise gibt die Funktion für einen Compute-Shader mit der folgenden Deklaration den Wert { 256, 16, 1} zurück.
layout(local_size_x = 256, local_size_y = 16, local_size_z = 1) in;[static] QShaderDescription QShaderDescription::deserialize(QDataStream *stream, int version)
Gibt ein neues „ QShaderDescription “ zurück, das von stream geladen wurde. „ version “ gibt die QSB-Version an.
Siehe auch serialize().
QList<QShaderDescription::BuiltinVariable> QShaderDescription::inputBuiltinVariables() const
Gibt die Liste der aktiven Builtins zurück, die als Eingabe verwendet werden. Beispielsweise werden bei einem Shader zur Tessellationsauswertung, der die Werte von `gl_TessCoord` und `gl_Position` ausliest, hier ` TessCoordBuiltin ` und ` PositionBuiltin ` aufgeführt.
QList<QShaderDescription::InOutVariable> QShaderDescription::inputVariables() const
Gibt die Liste der Eingabevariablen zurück. Dazu gehören Vertex-Eingaben (manchmal auch als „Attribute“ bezeichnet) für die Vertex-Stufe sowie Eingaben für andere Stufen (manchmal auch als „Varyings“ bezeichnet).
bool QShaderDescription::isValid() const
Gibt „true“ zurück, wenn die „ QShaderDescription “ mindestens einen Eintrag in einer der Variablen- oder Blocklisten enthält.
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
Gibt die Liste der aktiven integrierten Variablen zurück, die als Eingabe verwendet werden. Beispielsweise verfügt ein Vertex-Shader sehr häufig über „ PositionBuiltin “ als integrierte Ausgabevariable.
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
Gibt die Liste der Ausgabevariablen zurück.
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
Gibt die Liste der Push-Konstantenblöcke zurück.
Hinweis: Vermeiden Sie die Verwendung von Push-Konstantenblöcken für Shader, die in Kombination mit der Qt-Rendering-Hardware-Schnittstelle verwendet werden sollen, da diese derzeit keine Unterstützung dafür bietet.
void QShaderDescription::serialize(QDataStream *stream, int version) const
Serialisiert „ QShaderDescription “ in „ stream “. „ version “ gibt die QSB-Version an.
Siehe auch deserialize() und toJson().
QList<QShaderDescription::StorageBlock> QShaderDescription::storageBlocks() const
Gibt die Liste der Shader-Speicherblöcke zurück.
Beispiel: Bei GLSL-/Vulkan-Shadern als Quelle erzeugt die Deklaration
struct Stuff {
vec2 a;
vec2 b;
};
layout(std140, binding = 0) buffer StuffSsbo {
vec4 whatever;
Stuff stuff[];
} buf;Folgendes: (hier als textuelles JSON dargestellt)
"storageBlocks": [ {
"binding": 0,
"blockName": "StuffSsbo",
"instanceName": "buf",
"knownSize": 16,
"runtimeArrayStride": 16
"members": [
{
"name": "whatever",
"offset": 0,
"size": 16,
"type": "vec4"
},
{
"arrayDims": [
0
],
"name": "stuff",
"offset": 16,
"size": 0,
"structMembers": [
{
"name": "a",
"offset": 0,
"size": 8,
"type": "vec2"
},
{
"name": "b",
"offset": 8,
"size": 8,
"type": "vec2"
}
],
"type": "struct"
}
],
"set": 0
} ]Hinweis: Die Größe des letzten Elements im Speicherblock ist undefiniert. Dies zeigt sich als „ size “ 0 und einer Array-Dimension von „ [0] “. Die Speicherblock- knownSize schließt die Größe des letzten Elements aus, da diese erst zur Laufzeit bekannt ist. Der Abstand in Bytes zwischen den Array-Elementen für ein letztes Element mit undefinierter Array-Größe beträgt runtimeArrayStride. Dieser Wert wird gemäß den Regeln des festgelegten Standards für das Pufferspeicherlayout (std140, std430) bestimmt.
Hinweis: SSBOs sind bei einigen Grafik-APIs nicht verfügbar, beispielsweise bei OpenGL 2.x oder OpenGL ES vor Version 3.1.
QList<QShaderDescription::InOutVariable> QShaderDescription::storageImages() const
Gibt die Liste der Bildvariablen zurück.
Diese kommen wahrscheinlich in Compute-Shadern vor. Beispielsweise erzeugt layout (binding = 0, rgba8) uniform readonly image2D inputImage; Folgendes: (hier als JSON-Text dargestellt)
"storageImages": [
{
"binding": 0,
"imageFormat": "rgba8",
"name": "inputImage",
"set": 0,
"type": "image2D"
}
]Hinweis: Separate Bildobjekte sind mit einigen Grafik-APIs nicht kompatibel, beispielsweise mit OpenGL 2.x oder OpenGL ES vor Version 3.1.
QShaderDescription::TessellationMode QShaderDescription::tessellationMode() const
Gibt den Tessellationsausführungsmodus für einen Tessellationssteuerungs- oder Auswertungs-Shader zurück.
Ist dieser nicht festgelegt, lautet der Rückgabewert „ UnknownTessellationMode “.
Beispielsweise gibt die Funktion für einen Tessellationsauswertungs-Shader mit der folgenden Deklaration „ TrianglesTessellationMode “ zurück.
layout(triangles) in;uint QShaderDescription::tessellationOutputVertexCount() const
Gibt die Anzahl der Ausgangs-Eckpunkte zurück.
Beispielsweise gibt die Funktion bei einem Tessellations-Control-Shader mit der folgenden Deklaration den Wert 3 zurück.
layout(vertices = 3) out;QShaderDescription::TessellationPartitioning QShaderDescription::tessellationPartitioning() const
Gibt den Tessellations-Partitionierungsmodus für einen Tessellations-Steuer- oder Auswertungs-Shader zurück.
Ist dieser nicht festgelegt, lautet der Rückgabewert „ UnknownTessellationPartitioning “.
Beispielsweise gibt die Funktion für einen Tessellationsauswertungs-Shader mit der folgenden Deklaration „ FractionalOddTessellationPartitioning “ zurück.
layout(triangles, fractional_odd_spacing, ccw) in;QShaderDescription::TessellationWindingOrder QShaderDescription::tessellationWindingOrder() const
Gibt die Tessellations-Winding-Reihenfolge für einen Tessellations-Steuer- oder Auswertungs-Shader zurück.
Ist dieser Parameter nicht festgelegt, lautet der Rückgabewert „ UnknownTessellationWindingOrder “.
Beispielsweise gibt die Funktion für einen Tessellationsauswertungs-Shader mit der folgenden Deklaration „ CcwTessellationWindingOrder “ zurück.
layout(triangles, fractional_odd_spacing, ccw) in;QByteArray QShaderDescription::toJson() const
Gibt eine serialisierte JSON-Textversion der Daten zurück.
Hinweis: Für JSON-Textsteht keine Deserialisierungsmethode zur Verfügung.
Siehe auch ` serialize()`.
QList<QShaderDescription::UniformBlock> QShaderDescription::uniformBlocks() const
Gibt die Liste der einheitlichen Blöcke zurück.
QShaderDescription &QShaderDescription::operator=(const QShaderDescription &other)
Weist diesem Objekt „ other “ zu.
Zugehörige Nicht-Mitglieder
[noexcept] bool operator==(const QShaderDescription &lhs, const QShaderDescription &rhs)
Gibt „ true “ zurück, wenn die beiden Objekte vom Typ „ QShaderDescription “ lhs und rhs gleich sind.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.