이 페이지에서

QSGMaterialShader::RenderState Class

class QSGMaterialShader::RenderState

QSGMaterialShader::updateUniformData() 및 기타 update 유형의 함수가 호출되는 동안의 현재 렌더링 상태를 캡슐화합니다. 더 보기...

공개 유형

enum DirtyState { DirtyMatrix, DirtyOpacity, DirtyCachedMaterialData, DirtyAll }
flags DirtyStates

공개 함수

QMatrix4x4 combinedMatrix() const
float determinant() const
float devicePixelRatio() const
QRect deviceRect() const
QSGMaterialShader::RenderState::DirtyStates dirtyStates() const
bool isMatrixDirty() const
bool isOpacityDirty() const
QMatrix4x4 modelViewMatrix() const
float opacity() const
QMatrix4x4 projectionMatrix() const
QRhiResourceUpdateBatch *resourceUpdateBatch()
QRhi *rhi()
QByteArray *uniformData()
QRect viewportRect() const

상세 설명

렌더링 상태에는 셰이더가 장면 그래프의 현재 상태를 준수하기 위해 준수해야 하는 여러 액세스자가 포함되어 있습니다.

멤버 유형 문서

enum RenderState::DirtyState
flags RenderState::DirtyStates

상수값설명
QSGMaterialShader::RenderState::DirtyMatrix0x0001행렬이 변경되어 업데이트되어야 함을 나타내는 데 사용됩니다.
QSGMaterialShader::RenderState::DirtyOpacity0x0002불투명도가 변경되어 업데이트해야 함을 나타내는 데 사용됩니다.
QSGMaterialShader::RenderState::DirtyCachedMaterialData0x0004캐시된 머티리얼 상태가 변경되어 업데이트해야 함을 나타내는 데 사용됩니다.
QSGMaterialShader::RenderState::DirtyAll0xFFFF모든 항목을 업데이트해야 함을 나타내는 데 사용됩니다.

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

멤버 함수 문서

QMatrix4x4 RenderState::combinedMatrix() const

모델-뷰 행렬과 프로젝트 행렬을 결합한 행렬을 반환합니다.

float RenderState::determinant() const

렌더링에 사용될 모델뷰 행렬을 반환합니다.

float RenderState::devicePixelRatio() const

렌더링에 사용될 물리적 픽셀과 장치 독립적 픽셀 간의 비율을 반환합니다.

QRect RenderState::deviceRect() const

렌더링 중인 표면의 디바이스 직사각형 좌표계를 반환합니다.

QSGMaterialShader::RenderState::DirtyStates RenderState::dirtyStates() const

이 머티리얼로 렌더링된 지오메트리가 현재 렌더링 상태에 부합하도록 업데이트해야 할, 변경된 렌더링 상태를 반환합니다.

bool RenderState::isMatrixDirty() const

dirtyStates()에 더티 행렬 상태가 포함되어 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

bool RenderState::isOpacityDirty() const

dirtyStates()에 변경된 불투명도 상태가 포함되어 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

QMatrix4x4 RenderState::modelViewMatrix() const

모델 뷰 행렬을 반환합니다.

머티리얼에 RequiresFullMatrix 플래그가 설정된 경우, 이 값은 시나그래프에서 계산된 완전한 변환 행렬임이 보장됩니다.

그러나 이 플래그가 설정되지 않은 경우, 렌더러는 이 행렬을 변경할 수 있습니다. 예를 들어, CPU에서 버텍스를 미리 변환한 후 이 행렬을 단위 행렬로 설정할 수 있습니다.

위와 같은 상황에서도 머티리얼의 RequiresDeterminant 플래그를 설정하고 determinant() 액세서를 호출하면 실제 행렬의 행렬식을 가져올 수 있습니다.

float RenderState::opacity() const

렌더링에 사용될 누적된 불투명도를 반환합니다.

QMatrix4x4 RenderState::projectionMatrix() const

투영 행렬을 반환합니다.

QRhiResourceUpdateBatch *RenderState::resourceUpdateBatch()

업로드 및 복사 작업을 대기열에 추가할 수 있는 리소스 업데이트 배치 객체를 반환합니다. 이는 일반적으로 QSGMaterialShader::updateSampledImage() 함수에서 텍스처 이미지 콘텐츠 업데이트를 대기열에 추가하는 데 사용됩니다.

QRhi *RenderState::rhi()

현재의 QRhi 를 반환합니다.

QByteArray *RenderState::uniformData()

셰이더 내의 유니폼(상수) 버퍼 데이터에 대한 포인터를 반환합니다. 유니폼 데이터는 반드시 ` QSGMaterialShader::updateUniformData()`를 통해서만 업데이트되어야 합니다. ` QSGMaterialShader::updateSampledImage()`와 같은 다른 재구현 가능한 함수에서는 반환값이 `null`입니다.

참고: 셰이더에서 std140 ()을 사용하여 유니폼 블록을 선언하고, OpenGL 사양 7.6.2.2절에 설명된 표준 유니폼 블록 레이아웃을 주의 깊게 검토할 것을 강력히권장합니다 . 정렬 요구 사항을 고려하여 데이터가 이 QByteArray 내의 올바른 위치에 배치되도록 보장하는 것은 QSGMaterialShader 구현의 책임입니다. 다른 셰이딩 언어로 변환된 셰이더 코드는, 대상 언어가 기본적으로 다른 패킹 규칙을 사용하더라도 블록 멤버에 대해 동일한 오프셋을 사용해야 합니다.

참고: C++ 구조체(struct)와 같은 POD(Plain Old Data) 유형에서 복사하여 여러 멤버를 한 번에 업데이트하는 것은, C++ 구조체와 GLSL 유니폼 블록의 레이아웃이 일치하는 것으로 확인되지 않은 한피해야 합니다 .

QRect RenderState::viewportRect() const

렌더링 대상인 표면의 뷰포트 사각형을 반환합니다.

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