QShaderDescription Class
셰이더의 인터페이스에 대해 설명합니다. 더 보기...
Header: | #include <QShaderDescription> |
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, …, InstanceIndexBuiltin } |
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) |
상세 설명
경고: QShader 및 QShaderDescription을 포함한 Qt GUI 모듈의 QRhi 클래스군은 제한된 호환성 보장을 제공합니다. 이러한 클래스에 대한 소스 또는 바이너리 호환성 보장은 없으므로 API는 애플리케이션이 개발된 Qt 버전에서만 작동하도록 보장됩니다. 그러나 소스와 호환되지 않는 변경은 최소한으로 유지하는 것을 목표로 하며 마이너 릴리스(6.7, 6.8 등)에서만 이루어질 것입니다. 애플리케이션에서 이러한 클래스를 사용하려면 Qt::GuiPrivate
(CMake를 사용하는 경우)에 링크하고 헤더에 rhi
접두사(예: #include <rhi/qshaderdescription.h>
)를 포함하세요.
셰이더에는 일반적으로 일련의 입력과 출력이 있습니다. 예를 들어 버텍스 셰이더에는 여러 입력 변수가 있으며 하나 이상의 균일 버퍼를 사용하여 애플리케이션에서 제공하는 데이터(예: 모델뷰 매트릭스)에 액세스할 수 있습니다. 조각 단계의 셰이더는 버텍스 단계에서 데이터를 수신하며(간단한 설정에서) 균일 버퍼, 이미지 및 샘플러의 데이터에 의존할 수도 있습니다.
버텍스 입력과 유니폼 버퍼의 레이아웃(멤버의 이름, 크기, 오프셋 등)과 관련하여 애플리케이션과 프레임워크는 런타임에 이를 동적으로 파악해야 할 수 있습니다. 이는 셰이더가 내장되어 있지 않고 사용자와 같은 외부 주체가 제공하는 경우 일반적으로 발생합니다.
최신의 린 그래픽 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; }
이 셰이더에는 두 개의 입력이 있습니다: 위치 0에 vec4
유형이 있는 position
과 위치 1에 color
유형이 있는 vec3
. 하나의 출력이 있습니다: v_color
라는 하나의 출력이 있지만, 일반적으로 애플리케이션에서는 흥미롭지 않습니다. 더 중요한 것은 바인딩 0에 크기가 68바이트이고 멤버가 2개인 균일한 블록이 있고, 오프셋 0에 mvp
이라는 4x4 행렬이 있으며, 오프셋 64에 opacity
이라는 부동 소수점이 있다는 것입니다.
이 모든 것은 QShaderDescription 오브젝트에 의해 설명됩니다. QShaderDescription은 JSON 및 QDataStream 을 통해 바이너리 형식으로 직렬화할 수 있으며, 이 바이너리 형식에서 역직렬화할 수 있습니다. 실제로는 QShader 에서 관련 QShaderDescription을 자동으로 처리하기 때문에 거의 필요하지 않지만, 위 셰이더의 QShaderDescription을 ( qsb
도구의 -d
옵션처럼) JSON으로 작성한다면 다음과 같이 보일 것입니다:
{ "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 |
enum QShaderDescription::ImageFlag
플래그 QShaderDescription::ImageFlags
이미지 플래그.
Constant | 값 |
---|---|
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
플래그 QShaderDescription::QualifierFlags
한정자 플래그입니다.
Constant | 값 |
---|---|
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 버전은 레지스터가 각각 t1과 s1인 Texture2D 및 SamplerState 객체만 사용할 가능성이 높습니다.
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 에 변수 및 블록 목록 중 하나에 하나 이상의 항목이 포함되어 있으면 true를 반환합니다.
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
입력으로 사용되는 활성 내장 변수 목록을 반환합니다. 예를 들어 버텍스 셰이더에는 PositionBuiltin 가 출력으로 내장되어 있는 경우가 많습니다.
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
출력 변수 목록을 반환합니다.
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
푸시 상수 블록의 목록을 반환합니다.
참고: Qt 렌더링 하드웨어 인터페이스와 함께 사용할 셰이더에 푸시 상수 블록을 사용하는 것은 현재 지원되지 않으므로 피하십시오.
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) 규칙에 따라 결정됩니다.
참고: OpenGL 2.x 또는 OpenGL ES 3.1 이전 버전과 같은 일부 그래픽 API에서는 SSBO를 사용할 수 없습니다.
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 또는 3.1 이전의 OpenGL ES와 같은 일부 그래픽 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)
두 개의 QShaderDescription 객체 lhs 와 rhs 가 같으면 true
를 반환합니다.
© 2025 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.