QRhiGles2InitParams Struct
OpenGL 전용 초기화 매개변수. 더 보기...
| 헤더: | #include <rhi/qrhi.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS GuiPrivate) target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
| qmake: | QT += gui-private |
| 다음부터: | Qt 6.6 |
| 상속: | QRhiInitParams |
공개 함수
공개 변수
| QSurface * | fallbackSurface |
| QSurfaceFormat | format |
| QOpenGLContext * | shareContext |
| QWindow * | window |
정적 공용 멤버
| QOffscreenSurface * | newFallbackSurface(const QSurfaceFormat &format = QSurfaceFormat::defaultFormat()) |
상세 설명
참고: 이 API는 호환성이 제한적으로 보장되는 RHI API입니다. 자세한 내용은 QRhi 를 참조하십시오.
OpenGL 기반의 QRhi 는 QOpenGLContext 와 함께 사용할 수 있도록 미리 생성된 QSurface 가 필요합니다. 실제로는 대부분 QOffscreenSurface 를 사용합니다. 또한, 선택 사항이지만 첫 번째 QRhiSwapChain 가 목표로 할 QWindow 도 함께 전달하는 것이 좋습니다.
QOffscreenSurface *fallbackSurface = QRhiGles2InitParams::newFallbackSurface();
QRhiGles2InitParams params;
params.fallbackSurface = fallbackSurface;
params.window = window;
rhi = QRhi::create(QRhi::OpenGLES2, ¶ms);기본적으로 QRhi 는 자체적으로 QOpenGLContext 를 생성합니다. 이 방식은 각 렌더링 스레드마다 전용 QRhi 가 있는 스레드 기반 시나리오를 포함하여 대부분의 경우에서 잘 작동합니다. 각 QRhi 마다 QOpenGLContext 가 하나씩 존재하므로, OpenGL 컨텍스트 요구 사항(컨텍스트는 하나의 스레드에서만 현재 컨텍스트로 설정될 수 있음)이 충족됩니다. 암시적으로 생성된 컨텍스트는 QRhi 와 함께 자동으로 소멸됩니다.
컨텍스트의 QSurfaceFormat 는 format 에서 지정됩니다. 생성자는 이 값을 QSurfaceFormat::defaultFormat()로 설정하므로, 생성자가 실행되기 전에 적절한 설정으로 QSurfaceFormat::setDefaultFormat()를 호출하는 애플리케이션은 format 의 값을 변경할 필요가 없습니다.
참고: 렌더러가 깊이 또는 스텐실 테스트에 의존하는 경우, 전역 기본값인 QSurfaceFormat 에서, 또는 관련 QSurfaceFormat 인스턴스 모두에서 개별적으로 깊이 및 스텐실 버퍼 크기를 24와 8로 설정해야합니다 . 즉, format 에서, newFallbackSurface()에 전달되는 format 인자에서, 그리고 QRhi 와 함께 사용되는 모든 QWindow 에서 해당 값을 설정해야 합니다.
QSurface 는 fallbackSurface 에서 반드시 지정되어야 합니다. 스레드 환경에서 오류를 방지하기 위해, QRhi 에서는 이 객체가 절대 자동으로 생성되지 않습니다. QWindow 와 마찬가지로, QSurface 의 하위 클래스 인스턴스는 대개 GUI/메인 스레드에서만 생성될 수 있기 때문입니다.
편의상, 애플리케이션은 newFallbackSurface()를 사용할 수 있습니다. 이 함수는 이후 QRhi 에 의해 생성될 QOpenGLContext 와 호환되는 QOffscreenSurface 를 생성하여 반환합니다. 반환된 QOffscreenSurface 의 소유권은 호출자에게 이전되며, QRhi 는 이를 파괴하지 않는다는 점에 유의하십시오.
참고: OpenGL 백엔드를사용할 경우 , ` QRhiSwapChain `는 표면 유형이 ` QSurface::OpenGLSurface`로 설정된 ` QWindow ` 인스턴스만을 대상으로 할 수 있습니다.
참고: ` window `는 선택 사항입니다. 다중 어댑터 및 다중 화면 시스템에서 발생하는 문제를 방지하기 위해 가능한 한 항상 지정하는 것이 좋습니다. ` window `가 설정되지 않은 경우, 가장 처음 호출되는 ` QOpenGLContext::makeCurrent()`는 ` fallbackSurface `를 통해 수행되는데, 이는 일부 플랫폼(예: Windows)에서 보이지 않는 창일 수 있으며, 경우에 따라 예기치 않은 문제를 유발할 수 있습니다.
기존 QOpenGLContext 와 리소스를 공유하고자 하는 경우, shareContext 를 기존 QOpenGLContext 로 설정할 수 있습니다. 또는, 활성화된 상태에서는 Qt::AA_ShareOpenGLContexts 도 허용됩니다.
기존 OpenGL 컨텍스트와 연동하기
다른 그래픽 엔진과 상호 운용할 때, 동일한 OpenGL 컨텍스트를 사용하는 QRhi 인스턴스를 가져와야 할 수 있습니다. 이는 QRhiGles2NativeHandles 에 대한 포인터를 QRhi::create()에 전달함으로써 달성할 수 있습니다. 이때 QRhiGles2NativeHandles::context 는 null이 아닌 값으로 설정되어야 합니다.
다른 방법으로는, 다른 엔진의 컨텍스트와 shares resources 를 수행한 QOpenGLContext 를 생성한 후, QRhiGles2NativeHandles()를 통해 해당 컨텍스트를 전달하는 것입니다.
QRhi 는 QRhiGles2NativeHandles 를 통해 전달된 QOpenGLContext 의 소유권을 인수하지 않습니다.
멤버 함수 설명서
QRhiGles2InitParams::QRhiGles2InitParams()
새로운 QRhiGles2InitParams 객체를 생성합니다.
format QSurfaceFormat::defaultFormat()로 설정됩니다.
[static] QOffscreenSurface *QRhiGles2InitParams::newFallbackSurface(const QSurfaceFormat &format = QSurfaceFormat::defaultFormat())
QRhiGles2InitParams 를 통해 전달함으로써 QRhi 와 함께 사용할 수 있는 새로운 QOffscreenSurface 를 반환합니다.
format 가 지정되지 않은 경우, 그 기본값은 QSurfaceFormat::setDefaultFormat()을 통해 설정할 수 있는 전역 기본 형식입니다.
format 호환되지 않는 컨텍스트 및 서피스로 인해 나중에 문제가 발생하지 않도록 적절하게 조정됩니다.
참고: 이 함수는 GUI/메인 스레드에서만 호출하거나, 플랫폼 통합이 오프스크린 서페이스를 지원하는 경우에만 호출해야 합니다.
참고: 관련 QRhi 가 소멸된 후에는 GUI/메인 스레드에서 반환된 QOffscreenSurface 를 소멸시키는것은 애플리케이션의책임입니다 . QRhi 는 QOffscreenSurface 를 소멸시키지 않습니다.
멤버 변수 문서
QSurface *QRhiGles2InitParams::fallbackSurface
format 와 호환되는 ` QSurface `입니다. 일반적으로 ` QOffscreenSurface`입니다. 이를 제공해야 합니다. 스레딩 관련 사항에 유의하십시오. ` QOffscreenSurface`은 ` QWindow`과 마찬가지로, ` QRhi `가 다른 스레드에서 생성되어 작동하더라도 반드시 메인(GUI) 스레드에서만 생성 및 소멸되어야 합니다.
QSurfaceFormat QRhiGles2InitParams::format
QSurfaceFormat 는 기본적으로 QSurfaceFormat::defaultFormat()로 초기화됩니다.
QOpenGLContext *QRhiGles2InitParams::shareContext
선택 사항으로, 리소스를 공유할 리소스 관리자( QOpenGLContext )를 지정할 수 있습니다. ` QRhi `는 자체 컨텍스트를 생성하며, 이 멤버를 유효한 ` QOpenGLContext `로 설정하면 해당 리소스 관리자를 사용하여 ` setShareContext()`가 호출됩니다.
QWindow *QRhiGles2InitParams::window
선택 사항이지만, QRhi 를 사용하여 QWindow 을 대상으로 할 때는 이 설정을 적용하는 것이 좋습니다.
© 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.