QShaderDescription Class
Describe la interfaz de un sombreador. Más...
| Cabecera: | #include <QShaderDescription> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Desde: | Qt 6.6 |
- Lista de todos los miembros, incluyendo los heredados
- QShaderDescription es parte de Renderizado en 3D.
Tipos Públicos
(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 } |
Funciones Públicas
| 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) |
Miembros Públicos Estáticos
| QShaderDescription | deserialize(QDataStream *stream, int version) |
No Miembros Relacionados
| bool | operator==(const QShaderDescription &lhs, const QShaderDescription &rhs) |
Descripción Detallada
Advertencia: La familia de clases QRhi en el módulo Qt Gui, incluyendo QShader y QShaderDescription, ofrecen garantías de compatibilidad limitadas. No existen garantías de compatibilidad binaria o de código fuente para estas clases, lo que significa que sólo se garantiza que la API funcione con la versión de Qt con la que se desarrolló la aplicación. Sin embargo, los cambios incompatibles con el código fuente se mantendrán al mínimo y sólo se realizarán en versiones menores (6.7, 6.8, etc.). Para utilizar estas clases en una aplicación, enlace a Qt::GuiPrivate (si utiliza CMake), e incluya las cabeceras con el prefijo rhi, por ejemplo #include <rhi/qshaderdescription.h>.
Un sombreador suele tener un conjunto de entradas y salidas. Un sombreador de vértices, por ejemplo, tiene una serie de variables de entrada y puede utilizar uno o más buffers uniformes para acceder a los datos (por ejemplo, una matriz modelview) proporcionados por la aplicación. El sombreador de la etapa de fragmentos recibe datos de la etapa de vértices (en una configuración sencilla) y también puede basarse en datos de memorias intermedias uniformes, imágenes y muestreadores.
En lo que respecta a las entradas de vértices y la disposición de las memorias intermedias uniformes (¿cuáles son los nombres de los miembros?, ¿cuál es su tamaño, desplazamiento, etc.?), es posible que las aplicaciones y los frameworks necesiten descubrir esto dinámicamente en tiempo de ejecución. Esto es típico cuando el sombreador no está incorporado, sino que lo proporciona una entidad externa, como el usuario.
Es posible que las API de gráficos modernas y simplificadas ya no ofrezcan una forma de consultar la información de reflexión del sombreador en tiempo de ejecución. Por lo tanto, estos datos son ahora generados automáticamente por QShaderBaker y se proporcionan como un objeto QShaderDescription para todos y cada uno de los QShader.
Ejemplo
Tomemos el siguiente sombreador de vértices:
#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;
}Este sombreador tiene dos entradas: position en la posición 0 con un tipo de vec4, y color en la posición 1 con un tipo de vec3. Tiene una salida: v_color, aunque esto no suele ser interesante para las aplicaciones. Lo que es más importante, hay un bloque uniforme en la posición 0 con un tamaño de 68 bytes y dos miembros, una matriz 4x4 llamada mvp en la posición 0, y un float opacity en la posición 64. Todo esto está descrito por un QShift.
Todo esto es descrito por un objeto QShaderDescription. QShaderDescription puede ser serializado a JSON y a un formato binario a través de QDataStream, y puede ser deserializado desde este formato binario. En la práctica esto es raramente necesario ya que QShader se encarga del QShaderDescription asociado automáticamente, pero si el QShaderDescription del shader anterior se escribiera como JSON (como se hace mediante la opción -d de la herramienta qsb ), tendría el siguiente aspecto:
{
"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"
}
]
}La API de C++ permite acceder a una estructura de datos como la anterior. Para simplificar, los structs internos sólo contienen miembros de datos públicos, considerando también que es poco probable que su disposición cambie en el futuro.
Véase también QShaderBaker y QShader.
Documentación de tipos de miembros
enum QShaderDescription::BuiltinType
Tipo de variable incorporada.
| Constante | Valor |
|---|---|
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
Banderas de imagen.
| Constante | Valor |
|---|---|
QShaderDescription::ReadOnlyImage | 1 << 0 |
QShaderDescription::WriteOnlyImage | 1 << 1 |
El tipo ImageFlags es un typedef para QFlags<ImageFlag>. Almacena una combinación OR de valores ImageFlag.
enum QShaderDescription::ImageFormat
Formato de imagen.
| Constante | Valor |
|---|---|
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
Banderas de los calificadores.
| Constante | Valor |
|---|---|
QShaderDescription::QualifierReadOnly | 1 << 0 |
QShaderDescription::QualifierWriteOnly | 1 << 1 |
QShaderDescription::QualifierCoherent | 1 << 2 |
QShaderDescription::QualifierVolatile | 1 << 3 |
QShaderDescription::QualifierRestrict | 1 << 4 |
El tipo QualifierFlags es un typedef para QFlags<QualifierFlag>. Almacena una combinación OR de valores QualifierFlag.
enum QShaderDescription::TessellationMode
| Constante | Valor |
|---|---|
QShaderDescription::UnknownTessellationMode | 0 |
QShaderDescription::TrianglesTessellationMode | 1 |
QShaderDescription::QuadTessellationMode | 2 |
QShaderDescription::IsolineTessellationMode | 3 |
enum QShaderDescription::TessellationPartitioning
| Constante | Valor |
|---|---|
QShaderDescription::UnknownTessellationPartitioning | 0 |
QShaderDescription::EqualTessellationPartitioning | 1 |
QShaderDescription::FractionalEvenTessellationPartitioning | 2 |
QShaderDescription::FractionalOddTessellationPartitioning | 3 |
enum QShaderDescription::TessellationWindingOrder
| Constante | Valor |
|---|---|
QShaderDescription::UnknownTessellationWindingOrder | 0 |
QShaderDescription::CwTessellationWindingOrder | 1 |
QShaderDescription::CcwTessellationWindingOrder | 2 |
enum QShaderDescription::VariableType
Representa el tipo de una variable o miembro de bloque.
| Constante | Valor | Descripción |
|---|---|---|
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 | Para muestreadores separados. |
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 |
Documentación de la función miembro
QShaderDescription::QShaderDescription()
Construye un nuevo QShaderDescription vacío.
Nota: Estar vacío implica que isValid() devuelve false para la instancia recién construida.
QShaderDescription::QShaderDescription(const QShaderDescription &other)
Construye una copia de other.
[noexcept] QShaderDescription::~QShaderDescription()
Destructor.
QList<QShaderDescription::InOutVariable> QShaderDescription::combinedImageSamplers() const
Devuelve la lista de muestreadores de imagen combinados
Con shaders GLSL/Vulkan como fuente un uniforme layout(binding = 1) uniform sampler2D tex; genera lo siguiente: (mostrado como JSON textual aquí)
"combinedImageSamplers": [
{
"binding": 1,
"name": "tex",
"set": 0,
"type": "sampler2D"
}
]Esto no significa que las versiones de otros lenguajes del shader deban utilizar también un muestreador de imágenes combinado, sobre todo teniendo en cuenta que el concepto puede no existir en todas partes. Por ejemplo, una versión HLSL probablemente sólo utilizará un objeto Texture2D y SamplerState con los registros t1 y s1, respectivamente.
std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
Devuelve el tamaño local de un sombreador de cálculo.
Por ejemplo, para un sombreador de cálculo con la siguiente declaración, la función devuelve { 256, 16, 1}.
layout(local_size_x = 256, local_size_y = 16, local_size_z = 1) in;
[static] QShaderDescription QShaderDescription::deserialize(QDataStream *stream, int version)
Devuelve un nuevo QShaderDescription cargado desde stream. version especifica la versión qsb.
Véase también serialize().
QList<QShaderDescription::BuiltinVariable> QShaderDescription::inputBuiltinVariables() const
Devuelve la lista de builtins activos utilizados como entrada. Por ejemplo, un shader de evaluación de teselación que lea el valor de gl_TessCoord y gl_Position tendrá TessCoordBuiltin y PositionBuiltin listados aquí.
QList<QShaderDescription::InOutVariable> QShaderDescription::inputVariables() const
Devuelve la lista de variables de entrada. Esto incluye entradas de vértice (a veces llamadas atributos) para la etapa de vértice, y entradas para otras etapas (a veces llamadas variantes).
bool QShaderDescription::isValid() const
Devuelve true si QShaderDescription contiene al menos una entrada en una de las listas de variables y bloques.
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
Devuelve la lista de variables incorporadas activas utilizadas como entrada. Por ejemplo, un sombreador de vértices tendrá muy a menudo PositionBuiltin como salida incorporada.
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
Devuelve la lista de variables de salida.
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
Devuelve la lista de bloques de constantes push.
Nota: Evite depender de bloques constantes de empuje para shaders que se van a utilizar en combinación con la Interfaz de Hardware de Renderizado de Qt, ya que actualmente no tiene soporte para ellos.
void QShaderDescription::serialize(QDataStream *stream, int version) const
Serializa este QShaderDescription a stream. version especifica la versión qsb.
Véase también deserialize() y toJson().
QList<QShaderDescription::StorageBlock> QShaderDescription::storageBlocks() const
Devuelve la lista de bloques de almacenamiento de shaders.
Por ejemplo, con shaders GLSL/Vulkan como fuente, la declaración
struct Stuff {
vec2 a;
vec2 b;
};
layout(std140, binding = 0) buffer StuffSsbo {
vec4 whatever;
Stuff stuff[];
} buf;genera lo siguiente: (mostrado como JSON textual aquí)
"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
} ]Nota: El tamaño del último miembro del bloque de almacenamiento es indefinido. Esto se muestra como size 0 y una dimensión de array de [0]. El bloque de almacenamiento knownSize excluye el tamaño del último miembro ya que sólo se conocerá en tiempo de ejecución. El intervalo en bytes entre los elementos del array para un último miembro con un tamaño de array indefinido es runtimeArrayStride. Este valor se determina según las reglas del estándar de disposición de memoria intermedia (std140, std430).
Nota: Los SSBO no están disponibles con algunas API gráficas, como OpenGL 2.x u OpenGL ES anteriores a 3.1.
QList<QShaderDescription::InOutVariable> QShaderDescription::storageImages() const
Devuelve la lista de variables de imagen.
Éstas aparecerán probablemente en los sombreadores de cálculo. Por ejemplo, layout (binding = 0, rgba8) uniform readonly image2D inputImage; genera lo siguiente: (mostrado como JSON textual aquí)
"storageImages": [
{
"binding": 0,
"imageFormat": "rgba8",
"name": "inputImage",
"set": 0,
"type": "image2D"
}
]Nota: Los objetos de imagen separados no son compatibles con algunas API gráficas, como OpenGL 2.x u OpenGL ES anteriores a 3.1.
QShaderDescription::TessellationMode QShaderDescription::tessellationMode() const
Devuelve el modo de ejecución de la teselación para un control de teselación o un sombreador de evaluación.
Si no se establece, el valor devuelto es UnknownTessellationMode.
Por ejemplo, para un sombreador de evaluación de teselación con la siguiente declaración, la función devuelve TrianglesTessellationMode.
layout(triangles) in;
uint QShaderDescription::tessellationOutputVertexCount() const
Devuelve el número de vértices de salida.
Por ejemplo, para un shader de control de teselación con la siguiente declaración, la función devuelve 3.
layout(vertices = 3) out;
QShaderDescription::TessellationPartitioning QShaderDescription::tessellationPartitioning() const
Devuelve el modo de partición de teselación para un control de teselación o un sombreador de evaluación.
Si no se establece, el valor devuelto es UnknownTessellationPartitioning.
Por ejemplo, para un sombreador de evaluación de teselación con la siguiente declaración, la función devuelve FractionalOddTessellationPartitioning.
layout(triangles, fractional_odd_spacing, ccw) in;
QShaderDescription::TessellationWindingOrder QShaderDescription::tessellationWindingOrder() const
Devuelve el orden de teselación para un control de teselación o un sombreador de evaluación.
Si no se establece, el valor devuelto es UnknownTessellationWindingOrder.
Por ejemplo, para un sombreador de evaluación de teselación con la siguiente declaración, la función devuelve CcwTessellationWindingOrder.
layout(triangles, fractional_odd_spacing, ccw) in;
QByteArray QShaderDescription::toJson() const
Devuelve una versión de texto JSON serializada de los datos.
Nota: No se proporciona ningún método de deserialización para el texto JSON.
Véase también serialize().
QList<QShaderDescription::UniformBlock> QShaderDescription::uniformBlocks() const
Devuelve la lista de bloques uniformes.
QShaderDescription &QShaderDescription::operator=(const QShaderDescription &other)
Asigna other a este objeto.
No miembros relacionados
[noexcept] bool operator==(const QShaderDescription &lhs, const QShaderDescription &rhs)
Devuelve true si los dos objetos QShaderDescription lhs y rhs son iguales.
© 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.