QRhiRenderBuffer Class

렌더버퍼 리소스. 더 보기...

헤더: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
이후: Qt 6.6
상속합니다: QRhiResource

공용 형

struct NativeRenderBuffer
enum Flag { UsedWithSwapChainOnly }
flags Flags
enum Type { DepthStencil, Color }

공용 함수

virtual bool create() = 0
virtual bool createFrom(QRhiRenderBuffer::NativeRenderBuffer src)
QRhiRenderBuffer::Flags flags() const
QSize pixelSize() const
int sampleCount() const
void setFlags(QRhiRenderBuffer::Flags f)
void setPixelSize(const QSize &sz)
void setSampleCount(int s)
void setType(QRhiRenderBuffer::Type t)
QRhiRenderBuffer::Type type() const

재구현된 공용 함수

virtual QRhiResource::Type resourceType() const override

상세 설명

렌더버퍼는 샘플링하거나 읽을 수 없지만 경우에 따라 텍스처에 비해 몇 가지 이점이 있습니다:

DepthStencil 렌더버퍼는 느리게 할당될 수 있으며 일부 API에서 일시적인 메모리로 뒷받침될 수 있습니다. 일부 플랫폼에서는 뎁스/스텐실 버퍼가 물리적 백업을 전혀 사용하지 않을 수도 있습니다.

Color 렌더버퍼는 QRhi::MultisampleTexture 이 지원되지 않는 경우에도 QRhi::MultisampleRenderBuffer 이 지원될 수 있으므로 유용합니다.

렌더버퍼가 백엔드에서 구현되는 방식은 애플리케이션에 노출되지 않습니다. 어떤 경우에는 일반 텍스처로 지원될 수도 있고, 다른 경우에는 다른 종류의 기본 리소스가 사용될 수도 있습니다.

QRhiSwapChain 의 컬러 버퍼와 함께 뎁스 스텐실 버퍼로만 사용되는 렌더버퍼에는 UsedWithSwapChainOnly 플래그가 설정되어 있어야 합니다. 이는 백엔드 및 기본 API에 따라 이러한 버퍼가 더 효율적이며 QRhi 는 컬러 버퍼와 일치하는 자동 크기 조정 동작을 제공하므로 이러한 렌더버퍼에는 setPixelSize() 및 create() 호출이 필요하지 않다는 두 가지 용도로 사용됩니다.

참고: 이 API는 호환성이 제한적으로 보장되는 RHI API이며, 자세한 내용은 QRhi 을 참조하세요.

멤버 유형 문서

열거형 QRhiRenderBuffer::플래그
플래그 QRhiRenderBuffer::플래그

flags() 및 setFlags()에 대한 플래그 값입니다.

Constant설명
QRhiRenderBuffer::UsedWithSwapChainOnly1 << 0DepthStencil 렌더버퍼의 경우 렌더버퍼가 QRhiSwapChain 과 함께만 사용되며 다른 방식으로는 사용되지 않음을 나타냅니다. 따라서 이 플래그가 설정될 때마다 setPixelSize() 또는 create()를 호출할 필요가 없습니다. 이 플래그 값은 별도의 윈도우잉 시스템 인터페이스 API(EGL, GLX 등)가 사용되는 OpenGL과 같은 백엔드별 동작을 트리거할 수도 있는데, 이 플래그는 QSurfaceFormat 에서 요청한 대로 이미 윈도우잉 시스템이 제공하는 깊이/스텐실 버퍼가 있기 때문에 실제 렌더버퍼 리소스를 생성하지 않기 때문에 특히 중요합니다.

Flags 유형은 QFlags<Flag>에 대한 typedef입니다. 플래그 값의 OR 조합을 저장합니다.

enum QRhiRenderBuffer::Type

렌더버퍼의 유형을 지정합니다.

Constant설명
QRhiRenderBuffer::DepthStencil0결합된 깊이/스텐실
QRhiRenderBuffer::Color1

멤버 함수 문서

[pure virtual] bool QRhiRenderBuffer::create()

해당 네이티브 그래픽 리소스를 생성합니다. 해당하는 destroy()가 없는 이전 create()로 인해 이미 리소스가 있는 경우 destroy()가 암시적으로 먼저 호출됩니다.

성공하면 true, 그래픽 작업이 실패하면 false 을 반환합니다. 반환 값에 관계없이 destroy()를 호출하는 것은 항상 안전합니다.

[virtual] bool QRhiRenderBuffer::createFrom(QRhiRenderBuffer::NativeRenderBuffer src)

create()와 유사하지만 새로운 네이티브 렌더버퍼 객체가 생성되지 않는다는 점이 다릅니다. 대신 src 에 지정된 네이티브 렌더버퍼 객체가 사용됩니다.

이를 통해 외부 그래픽 엔진에서 기존 렌더버퍼 객체(그래픽 API에 따라 동일한 디바이스 또는 공유 컨텍스트에 속해야 함)를 가져올 수 있습니다.

참고: 이 기능은 현재 OpenGL에만 적용됩니다. 이 함수는 EGLImageKHR과 같은 특수한 외부 객체에 바인딩된 렌더버퍼 객체를 가져올 수 있도록 하기 위한 용도로만 존재합니다. 애플리케이션이 glEGLImageTargetRenderbufferStorageOES 호출을 수행하면 렌더버퍼 객체를 이 함수에 전달하여 QRhiRenderBuffer 래핑을 생성하고, 이를 다시 QRhiTextureRenderTarget 에 색상 첨부 파일로 전달하여 EGLImage로 렌더링할 수 있도록 할 수 있습니다.

참고: pixelSize(), sampleCount(), flags()는 여전히 올바르게 설정되어야 합니다. QRhi::newRenderBuffer ()에 잘못된 크기 및 기타 값을 전달한 다음 네이티브 렌더버퍼 객체만으로 이러한 값을 추론할 수 있을 것으로 예상하고 그 뒤에 createFrom()을 호출하는 것은 잘못된 것이며 문제가 발생할 수 있습니다.

참고: QRhiRenderBuffer 는 네이티브 객체의 소유권을 가지지 않으며 destroy()는 해당 객체를 해제하지 않습니다.

참고: 이 함수는 QRhi::RenderBufferImport 기능이 supported 으로 보고될 때만 구현됩니다. 그렇지 않으면 함수는 아무 작업도 수행하지 않으며 반환 값은 false 입니다.

성공하면 true 을 반환하고, 지원되지 않으면 false 을 반환합니다.

QRhiRenderBuffer::Flags QRhiRenderBuffer::flags() const

플래그를 반환합니다.

setFlags()도 참조하세요 .

QSize QRhiRenderBuffer::pixelSize() const

픽셀 크기를 반환합니다.

setPixelSize()도 참조하세요 .

[override virtual] QRhiResource::Type QRhiRenderBuffer::resourceType() const

재구현합니다: QRhiResource::resourceType() const.

리소스 타입을 리턴합니다.

int QRhiRenderBuffer::sampleCount() const

샘플 수를 반환합니다. 1은 다중 샘플 앤티앨리어싱이 없음을 의미합니다.

setSampleCount()도 참조하세요 .

void QRhiRenderBuffer::setFlags(QRhiRenderBuffer::Flags f)

플래그를 f 로 설정합니다.

flags()도 참조하세요 .

void QRhiRenderBuffer::setPixelSize(const QSize &sz)

크기(픽셀 단위)를 sz 로 설정합니다.

pixelSize()도 참조하세요 .

void QRhiRenderBuffer::setSampleCount(int s)

샘플 수를 s 로 설정합니다.

sampleCount()도 참조하세요 .

void QRhiRenderBuffer::setType(QRhiRenderBuffer::Type t)

유형을 t 으로 설정합니다.

type()도 참조하세요 .

QRhiRenderBuffer::Type QRhiRenderBuffer::type() const

렌더버퍼 유형을 반환합니다.

setType()도 참조하십시오 .

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