이 페이지에서

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부터

공개 유형

(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)

상세 설명

경고: QShader 및 QShaderDescription을 포함한 Qt GUI 모듈의 QRhi 클래스계열은 제한된 호환성만 보장합니다. 이 클래스들에 대해서는 소스 또는 바이너리 호환성이 보장되지 않으므로, 해당 API는 애플리케이션이 개발된 Qt 버전에서만 작동이 보장됩니다. 다만, 소스 비호환 변경 사항은 최소한으로 유지되도록 하며, 마이너 릴리스(6.7, 6.8 등)에서만 이루어질 예정입니다. 애플리케이션에서 이 클래스를 사용하려면 (CMake를 사용하는 경우) Qt::GuiPrivate 에 링크하고, 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에 있는 ` position `(타입: ` vec4`)와 위치 1에 있는 ` color `(타입: ` vec3`)입니다. 출력은 ` v_color` 하나뿐이지만, 일반적으로 애플리케이션에서는 이 출력에 큰 관심이 없습니다. 더 중요한 점은, 바인딩 0에 크기가 68바이트인 균일한 블록이 있으며, 이 블록에는 오프셋 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::PositionBuiltin0
QShaderDescription::PointSizeBuiltin1
QShaderDescription::ClipDistanceBuiltin3
QShaderDescription::CullDistanceBuiltin4
QShaderDescription::VertexIdBuiltin5
QShaderDescription::InstanceIdBuiltin6
QShaderDescription::PrimitiveIdBuiltin7
QShaderDescription::InvocationIdBuiltin8
QShaderDescription::LayerBuiltin9
QShaderDescription::ViewportIndexBuiltin10
QShaderDescription::TessLevelOuterBuiltin11
QShaderDescription::TessLevelInnerBuiltin12
QShaderDescription::TessCoordBuiltin13
QShaderDescription::PatchVerticesBuiltin14
QShaderDescription::FragCoordBuiltin15
QShaderDescription::PointCoordBuiltin16
QShaderDescription::FrontFacingBuiltin17
QShaderDescription::SampleIdBuiltin18
QShaderDescription::SamplePositionBuiltin19
QShaderDescription::SampleMaskBuiltin20
QShaderDescription::FragDepthBuiltin22
QShaderDescription::NumWorkGroupsBuiltin24
QShaderDescription::WorkgroupSizeBuiltin25
QShaderDescription::WorkgroupIdBuiltin26
QShaderDescription::LocalInvocationIdBuiltin27
QShaderDescription::GlobalInvocationIdBuiltin28
QShaderDescription::LocalInvocationIndexBuiltin29
QShaderDescription::VertexIndexBuiltin42
QShaderDescription::InstanceIndexBuiltin43
QShaderDescription::ViewIndexBuiltin4440

enum QShaderDescription::ImageFlag
flags QShaderDescription::ImageFlags

이미지 플래그.

상수값
QShaderDescription::ReadOnlyImage1 << 0
QShaderDescription::WriteOnlyImage1 << 1

ImageFlags 유형은 QFlags<ImageFlag>에 대한 typedef입니다. 이 유형은 ImageFlag 값들의 OR 조합을 저장합니다.

enum QShaderDescription::ImageFormat

이미지 형식.

상수값
QShaderDescription::ImageFormatUnknown0
QShaderDescription::ImageFormatRgba32f1
QShaderDescription::ImageFormatRgba16f2
QShaderDescription::ImageFormatR32f3
QShaderDescription::ImageFormatRgba84
QShaderDescription::ImageFormatRgba8Snorm5
QShaderDescription::ImageFormatRg32f6
QShaderDescription::ImageFormatRg16f7
QShaderDescription::ImageFormatR11fG11fB10f8
QShaderDescription::ImageFormatR16f9
QShaderDescription::ImageFormatRgba1610
QShaderDescription::ImageFormatRgb10A211
QShaderDescription::ImageFormatRg1612
QShaderDescription::ImageFormatRg813
QShaderDescription::ImageFormatR1614
QShaderDescription::ImageFormatR815
QShaderDescription::ImageFormatRgba16Snorm16
QShaderDescription::ImageFormatRg16Snorm17
QShaderDescription::ImageFormatRg8Snorm18
QShaderDescription::ImageFormatR16Snorm19
QShaderDescription::ImageFormatR8Snorm20
QShaderDescription::ImageFormatRgba32i21
QShaderDescription::ImageFormatRgba16i22
QShaderDescription::ImageFormatRgba8i23
QShaderDescription::ImageFormatR32i24
QShaderDescription::ImageFormatRg32i25
QShaderDescription::ImageFormatRg16i26
QShaderDescription::ImageFormatRg8i27
QShaderDescription::ImageFormatR16i28
QShaderDescription::ImageFormatR8i29
QShaderDescription::ImageFormatRgba32ui30
QShaderDescription::ImageFormatRgba16ui31
QShaderDescription::ImageFormatRgba8ui32
QShaderDescription::ImageFormatR32ui33
QShaderDescription::ImageFormatRgb10a2ui34
QShaderDescription::ImageFormatRg32ui35
QShaderDescription::ImageFormatRg16ui36
QShaderDescription::ImageFormatRg8ui37
QShaderDescription::ImageFormatR16ui38
QShaderDescription::ImageFormatR8ui39

enum QShaderDescription::QualifierFlag
flags QShaderDescription::QualifierFlags

자격 조건 플래그.

상수값
QShaderDescription::QualifierReadOnly1 << 0
QShaderDescription::QualifierWriteOnly1 << 1
QShaderDescription::QualifierCoherent1 << 2
QShaderDescription::QualifierVolatile1 << 3
QShaderDescription::QualifierRestrict1 << 4

QualifierFlags 유형은 QFlags<QualifierFlag>에 대한 typedef입니다. 이 유형은 QualifierFlag 값들의 OR 조합을 저장합니다.

enum QShaderDescription::TessellationMode

상수상수
QShaderDescription::UnknownTessellationMode0
QShaderDescription::TrianglesTessellationMode1
QShaderDescription::QuadTessellationMode2
QShaderDescription::IsolineTessellationMode3

enum QShaderDescription::TessellationPartitioning

상수상수
QShaderDescription::UnknownTessellationPartitioning0
QShaderDescription::EqualTessellationPartitioning1
QShaderDescription::FractionalEvenTessellationPartitioning2
QShaderDescription::FractionalOddTessellationPartitioning3

enum QShaderDescription::TessellationWindingOrder

상수상수
QShaderDescription::UnknownTessellationWindingOrder0
QShaderDescription::CwTessellationWindingOrder1
QShaderDescription::CcwTessellationWindingOrder2

enum QShaderDescription::VariableType

변수 또는 블록 멤버의 유형을 나타냅니다.

상수값설명
QShaderDescription::Unknown0 
QShaderDescription::Float1 
QShaderDescription::Vec22 
QShaderDescription::Vec33 
QShaderDescription::Vec44 
QShaderDescription::Mat25 
QShaderDescription::Mat2x36 
QShaderDescription::Mat2x47 
QShaderDescription::Mat38 
QShaderDescription::Mat3x29 
QShaderDescription::Mat3x410 
QShaderDescription::Mat411 
QShaderDescription::Mat4x212 
QShaderDescription::Mat4x313 
QShaderDescription::Int14 
QShaderDescription::Int215 
QShaderDescription::Int316 
QShaderDescription::Int417 
QShaderDescription::Uint18 
QShaderDescription::Uint219 
QShaderDescription::Uint320 
QShaderDescription::Uint421 
QShaderDescription::Bool22 
QShaderDescription::Bool223 
QShaderDescription::Bool324 
QShaderDescription::Bool425 
QShaderDescription::Double26 
QShaderDescription::Double227 
QShaderDescription::Double328 
QShaderDescription::Double429 
QShaderDescription::DMat230 
QShaderDescription::DMat2x331 
QShaderDescription::DMat2x432 
QShaderDescription::DMat333 
QShaderDescription::DMat3x234 
QShaderDescription::DMat3x435 
QShaderDescription::DMat436 
QShaderDescription::DMat4x237 
QShaderDescription::DMat4x338 
QShaderDescription::Sampler1D39 
QShaderDescription::Sampler2D40 
QShaderDescription::Sampler2DMS41 
QShaderDescription::Sampler3D42 
QShaderDescription::SamplerCube43 
QShaderDescription::Sampler1DArray44 
QShaderDescription::Sampler2DArray45 
QShaderDescription::Sampler2DMSArray46 
QShaderDescription::Sampler3DArray47 
QShaderDescription::SamplerCubeArray48 
QShaderDescription::SamplerRect49 
QShaderDescription::SamplerBuffer50 
QShaderDescription::SamplerExternalOES51 
QShaderDescription::Sampler52별도의 샘플러용입니다.
QShaderDescription::Image1D53 
QShaderDescription::Image2D54 
QShaderDescription::Image2DMS55 
QShaderDescription::Image3D56 
QShaderDescription::ImageCube57 
QShaderDescription::Image1DArray58 
QShaderDescription::Image2DArray59 
QShaderDescription::Image2DMSArray60 
QShaderDescription::Image3DArray61 
QShaderDescription::ImageCubeArray62 
QShaderDescription::ImageRect63 
QShaderDescription::ImageBuffer64 
QShaderDescription::Struct65 
QShaderDescription::Half66 
QShaderDescription::Half267 
QShaderDescription::Half368 
QShaderDescription::Half469 

멤버 함수 문서

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 `는 마지막 멤버의 크기를 제외하는데, 이는 런타임에야 비로소 알 수 있기 때문입니다. 배열 크기가 정의되지 않은 마지막 멤버의 경우, 배열 항목 간 바이트 단위의 스트라이드(stride)는 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나 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 를 반환합니다.

© 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.