QShaderDescription Class
シェーダーのインターフェースについて説明します。詳細...
| ヘッダー: | #include <qshaderdescription.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 以下のように: | Qt 6.6 |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QShaderDescriptionは、3Dレンダリングの一部です。
パブリック型
(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 } |
パブリック関数
| 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) |
静的パブリックメンバー
| QShaderDescription | deserialize(QDataStream *stream, int version) |
関連する非メンバー
| bool | operator==(const QShaderDescription &lhs, const QShaderDescription &rhs) |
詳細な説明
警告: Qt GUIモジュールに含まれるQRhi クラス群 (QShader およびQShaderDescriptionを含む)は 、互換性の保証が限定的です。これらのクラスについては、ソースコードおよびバイナリの互換性が保証されていません。つまり、APIが動作することが保証されるのは、アプリケーションが開発された対象のQtバージョンでのみです。 ただし、ソース互換性を損なう変更は最小限に抑えるよう努めており、マイナーリリース(6.7、6.8など)でのみ行われます。アプリケーションでこれらのクラスを使用するには、(CMakeを使用している場合は)Qt::GuiPrivate にリンクし、rhi というプレフィックスが付いたヘッダー(例:#include <rhi/qshaderdescription.h> )をインクルードしてください。
シェーダーには通常、一連の入力と出力があります。例えば、頂点シェーダーにはいくつかの入力変数があり、アプリケーションから提供されるデータ(モデルビュー行列など)にアクセスするために、1つ以上のユニフォームバッファを使用する場合があります。 フラグメントステージ用のシェーダーは、(単純な構成では)頂点ステージからデータを受け取り、ユニフォームバッファ、画像、サンプラーからのデータにも依存する場合があります。
頂点入力やユニフォームバッファのレイアウト(メンバの名前、サイズ、オフセットなど)に関しては、アプリケーションやフレームワークが実行時に動的にこれを特定する必要がある場合があります。これは、シェーダーが組み込みのものではなく、ユーザーなどの外部エンティティによって提供される場合に典型的です。
最新かつ軽量なグラフィックスAPIでは、実行時にシェーダーのリフレクション情報を照会する手段が提供されなくなっている場合があります。そのため、このようなデータは現在、QShaderBaker によって自動的に生成され、各QShader に対してQShaderDescriptionオブジェクトとして提供されます。
例
次の頂点シェーダーを例に挙げます:
#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;
}このシェーダーには2つの入力があります。位置0にある型がvec4 のposition と、位置1にある型がvec3 のcolor です。出力は1つ、v_color ですが、これは通常、アプリケーションにとっては重要ではありません。 さらに重要な点として、バインディング 0 には、サイズ 68 バイトのユニフォームブロックがあり、2 つのメンバー、オフセット 0 にあるmvp という名前の 4x4 行列と、オフセット 64 にある float 型のopacity が含まれています。
これらすべては、QShaderDescription オブジェクトによって記述されます。QShaderDescription は、QDataStream を通じて JSON およびバイナリ形式にシリアライズでき、またこのバイナリ形式からデシリアライズすることも可能です。 実際には、QShader が関連するQShaderDescriptionを自動的に処理するため、これが必要になることはほとんどありませんが、上記のシェーダーのQShaderDescriptionをJSONとして書き出した場合(qsb ツールの-d オプションで実行されるように)、次のような形式になります:
{
"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"
}
]
}C++ API では、上記のようなデータ構造にアクセスできます。簡潔さを期すため、内部の構造体にはパブリックなデータメンバーのみを含めており、また、それらのレイアウトが将来変更される可能性は低いことも考慮しています。
QShaderBaker およびQShaderも参照してください 。
メンバ型のドキュメント
enum QShaderDescription::BuiltinType
組み込み変数型。
| 定数 | 値 |
|---|---|
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
画像のフラグ。
| 定数 | 値 |
|---|---|
QShaderDescription::ReadOnlyImage | 1 << 0 |
QShaderDescription::WriteOnlyImage | 1 << 1 |
ImageFlags 型は、QFlags<ImageFlag> の typedef です。これは、ImageFlag 値の論理和(OR)の組み合わせを格納します。
enum QShaderDescription::ImageFormat
画像形式。
| 定数 | 値 |
|---|---|
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
修飾子フラグ。
| 定数 | 値 |
|---|---|
QShaderDescription::QualifierReadOnly | 1 << 0 |
QShaderDescription::QualifierWriteOnly | 1 << 1 |
QShaderDescription::QualifierCoherent | 1 << 2 |
QShaderDescription::QualifierVolatile | 1 << 3 |
QShaderDescription::QualifierRestrict | 1 << 4 |
QualifierFlags 型は、QFlags<QualifierFlag> の typedef です。これは、QualifierFlag 値の論理和(OR)の組み合わせを格納します。
enum QShaderDescription::TessellationMode
| 定数 | 定数 |
|---|---|
QShaderDescription::UnknownTessellationMode | 0 |
QShaderDescription::TrianglesTessellationMode | 1 |
QShaderDescription::QuadTessellationMode | 2 |
QShaderDescription::IsolineTessellationMode | 3 |
enum QShaderDescription::TessellationPartitioning
| 定数 | 定数 |
|---|---|
QShaderDescription::UnknownTessellationPartitioning | 0 |
QShaderDescription::EqualTessellationPartitioning | 1 |
QShaderDescription::FractionalEvenTessellationPartitioning | 2 |
QShaderDescription::FractionalOddTessellationPartitioning | 3 |
enum QShaderDescription::TessellationWindingOrder
| 定数 | 定数 |
|---|---|
QShaderDescription::UnknownTessellationWindingOrder | 0 |
QShaderDescription::CwTessellationWindingOrder | 1 |
QShaderDescription::CcwTessellationWindingOrder | 2 |
enum QShaderDescription::VariableType
変数またはブロックメンバーの型を表します。
| 定数 | 値 | 説明 |
|---|---|---|
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 | 個別のサンプラー用。 |
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 |
メンバ関数のドキュメント
QShaderDescription::QShaderDescription()
新しい空の QShaderDescription を生成します。
注:空であるということは 、isValid() が新しく構築されたインスタンスに対して `false ` を返すことを意味します。
QShaderDescription::QShaderDescription(const QShaderDescription &other)
other のコピーを作成します。
[noexcept] QShaderDescription::~QShaderDescription()
デストラクタ。
QList<QShaderDescription::InOutVariable> QShaderDescription::combinedImageSamplers() const
結合された画像サンプラーのリストを返します
GLSL/Vulkanシェーダーをソースとして、layout(binding = 1) uniform sampler2D tex; ユニフォームが生成する内容は以下の通りです(ここではテキスト形式のJSONとして表示)。
"combinedImageSamplers": [
{
"binding": 1,
"name": "tex",
"set": 0,
"type": "sampler2D"
}
]これは、シェーダーの他の言語バージョンでも必ず結合された画像サンプラーを使用しなければならないという意味ではありません。特に、この概念がすべての環境で存在しているとは限らないことを考慮するとそうです。例えば、HLSLバージョンでは、おそらくTexture2DオブジェクトとSamplerStateオブジェクトを、それぞれレジスタt1およびs1として使用するだけになるでしょう。
std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
コンピュートシェーダーのローカルサイズを返します。
たとえば、次のように宣言されたコンピュートシェーダーの場合、この関数は { 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)
stream から読み込まれた新しい `QShaderDescription ` を返します。version は qsb のバージョンを指定します。
serialize()も参照してください 。
QList<QShaderDescription::BuiltinVariable> QShaderDescription::inputBuiltinVariables() const
入力として使用されるアクティブな組み込み関数のリストを返します。たとえば、gl_TessCoord および gl_Position の値を読み取るテッセレーション評価シェーダーの場合、ここにはTessCoordBuiltin およびPositionBuiltin がリストされます。
QList<QShaderDescription::InOutVariable> QShaderDescription::inputVariables() const
入力変数のリストを返します。これには、頂点ステージ用の頂点入力(属性と呼ばれることもあります)や、その他のステージ用の入力(バリアリングと呼ばれることもあります)が含まれます。
bool QShaderDescription::isValid() const
QShaderDescription に、変数リストまたはブロックリストのいずれかに少なくとも1つのエントリが含まれている場合、trueを返します。
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
入力として使用されるアクティブな組み込み変数のリストを返します。たとえば、頂点シェーダーでは、出力用の組み込み変数としてPositionBuiltin が使用されることが非常に多いです。
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
出力変数のリストを返します。
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
プッシュ定数ブロックのリストを返します。
注: Qt Rendering Hardware Interfaceと組み合わせて使用するシェーダーについては、現在このインターフェースではプッシュ定数ブロックがサポートされていないため、それらに依存しないようにしてください 。
void QShaderDescription::serialize(QDataStream *stream, int version) const
このQShaderDescription をstream にシリアライズします。version はqsbのバージョンを指定します。
deserialize() およびtoJson()も参照してください 。
QList<QShaderDescription::StorageBlock> QShaderDescription::storageBlocks() const
シェーダー・ストレージ・ブロックのリストを返します。
たとえば、GLSL/Vulkan シェーダーをソースとする場合、次の宣言
struct Stuff {
vec2 a;
vec2 b;
};
layout(std140, binding = 0) buffer StuffSsbo {
vec4 whatever;
Stuff stuff[];
} buf;は次のように生成されます(ここではテキスト形式のJSONとして表示しています)
"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
} ]注: ストレージブロックの最後のメンバーのサイズは 未定義です。これは、size が0、配列の次元が[0] として表示されます。ストレージブロックのknownSize には、最後のメンバーのサイズは含まれません。これは、そのサイズが実行時にのみ判明するためです。 配列サイズが未定義の最後のメンバについて、配列項目間のバイト単位のストライドはruntimeArrayStride です。この値は、指定されたバッファメモリレイアウト規格(std140、std430)の規則に従って決定されます。
注:SSBOは 、OpenGL 2.xや3.1より前のOpenGL ESなど、一部のグラフィックスAPIでは利用できません。
QList<QShaderDescription::InOutVariable> QShaderDescription::storageImages() const
画像変数のリストを返します。
これらはコンピュートシェーダー内で発生する可能性が高いです。例えば、layout (binding = 0, rgba8) uniform readonly image2D inputImage; を実行すると、次のような出力が得られます(ここではテキスト形式の JSON として表示しています)。
"storageImages": [
{
"binding": 0,
"imageFormat": "rgba8",
"name": "inputImage",
"set": 0,
"type": "image2D"
}
]注:個別の 画像オブジェクトは、OpenGL 2.x や OpenGL ES 3.1 より前のバージョンなど、一部のグラフィックス API では互換性がありません。
QShaderDescription::TessellationMode QShaderDescription::tessellationMode() const
テッセレーション制御シェーダーまたは評価シェーダーのテッセレーション実行モードを返します。
設定されていない場合、戻り値はUnknownTessellationMode となります。
たとえば、次のように宣言されたテッセレーション評価シェーダーの場合、この関数はTrianglesTessellationMode を返します。
layout(triangles) in;uint QShaderDescription::tessellationOutputVertexCount() const
出力頂点の数を返します。
たとえば、次のように宣言されたテッセレーション制御シェーダーの場合、この関数は 3 を返します。
layout(vertices = 3) out;QShaderDescription::TessellationPartitioning QShaderDescription::tessellationPartitioning() const
テッセレーション制御シェーダーまたは評価シェーダーのテッセレーション分割モードを返します。
設定されていない場合、戻り値は `UnknownTessellationPartitioning` となります。
たとえば、次のように宣言されたテッセレーション評価シェーダーの場合、この関数はFractionalOddTessellationPartitioning を返します。
layout(triangles, fractional_odd_spacing, ccw) in;QShaderDescription::TessellationWindingOrder QShaderDescription::tessellationWindingOrder() const
テッセレーション制御シェーダーまたは評価シェーダーのテッセレーションの巻き順を返します。
設定されていない場合、戻り値はUnknownTessellationWindingOrder となります。
たとえば、次のように宣言されたテッセレーション評価シェーダーの場合、この関数はCcwTessellationWindingOrder を返します。
layout(triangles, fractional_odd_spacing, ccw) in;QByteArray QShaderDescription::toJson() const
データのシリアライズされたJSONテキスト版を返します。
注: JSONテキスト用のデシリアライズメソッドは提供されていません。
関連項目: serialize().
QList<QShaderDescription::UniformBlock> QShaderDescription::uniformBlocks() const
均一ブロックのリストを返します。
QShaderDescription &QShaderDescription::operator=(const QShaderDescription &other)
このオブジェクトにother を割り当てます。
関連する非メンバー
[noexcept] bool operator==(const QShaderDescription &lhs, const QShaderDescription &rhs)
2つのQShaderDescription オブジェクトlhs とrhs が等しい場合、true を返します。
© 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.