변경 사항 Qt OpenGL
Qt 6는 프레임워크를 보다 효율적이고 사용하기 쉽게 만들기 위한 의식적인 노력의 결과입니다.
각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하려고 노력합니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위해 몇 가지 변경이 불가피했습니다.
이 항목에서는 이러한 변경 사항을 요약하여 Qt OpenGL에서 이러한 변경 사항을 요약하고 이를 처리하기 위한 지침을 제공합니다.
사용되지 않는 클래스 제거
모듈은 Qt OpenGL 모듈은 Qt 5의 수명을 다해 더 이상 사용되지 않았으며, 그 안에 포함된 클래스들은 Qt 6에서 제거되었습니다.
이는 특히 QGL
접두사가 붙은 클래스에 해당됩니다.
마이그레이션된 QOpenGL 클래스
Qt 5에서는 Qt GUI에 OpenGL 지원 클래스의 대체 세트가 추가되었습니다. 이는 Qt에서 그래픽의 기반이 되는 크로스 플랫폼 그래픽 API인 OpenGL을 지원하기 위한 것이었습니다.
Qt 6에서는 이러한 클래스들이 Qt OpenGL 모듈로 마이그레이션되었습니다. 여전히 사용할 수 있으며 OpenGL에 직접 의존하는 애플리케이션에서 완벽하게 지원됩니다. 그러나 Qt가 Direct3D, Metal 및 Vulkan과 같은 다른 그래픽 API를 지원하도록 확장되었으므로 더 이상 기본으로 간주되지 않습니다.
기존 애플리케이션 코드는 대부분 계속 작동하지만 이제 프로젝트 파일에 Qt OpenGL 를 프로젝트 파일에 포함해야 하며, 이전에 Qt GUI를 통해 간접적으로 포함되었던 헤더도 포함해야 합니다.
참고: 주목할 만한 예외는 QOpenGLContext 이며, 이 헤더는 여전히 Qt GUI에 존재합니다.
QOpenGLWidgets 클래스
또 다른 예외는 QOpenGLWidget 클래스입니다. 이것은 새로운 모듈인 Qt OpenGL Widgets
라는 새 모듈로 옮겨졌으며, 거기서부터 포함되어야 합니다.
RHI용 OpenGL 백엔드 선택하기
프로젝트 파일을 조정하고 헤더를 포함하는 것 외에도 Qt Quick 로 작업할 때 이 기능을 사용하려면 애플리케이션에서 렌더링 백엔드를 OpenGL로 수동으로 설정해야 합니다. 기본적으로 Qt는 대상 플랫폼에서 가장 적합한 그래픽 API를 사용합니다. 자세한 내용은 RHI 렌더링 설명서를 참조하십시오.
ANGLE 제거
Windows의 경우, 타사 OpenGL ES에서 Direct 3D로의 변환기인 ANGLE이 더 이상 Qt 6에 포함되지 않습니다. 즉, Qt::AA_UseOpenGLES
및 QT_OPENGL=angle
환경 변수는 더 이상 영향을 미치지 않습니다. 동적 OpenGL 빌드에서는 OpenGL-proper가 초기화에 실패할 경우 ANGLE로 자동 폴백되지 않습니다. QWindow 또는 QWidget 기반 애플리케이션의 경우, 예를 들어 QOpenGLWidget 을 통해 OpenGL을 직접 사용하는 경우 런타임에 OpenGL-proper가 유일한 옵션입니다. 그러나 사전 빌드된 Qt 패키지와 함께 제공되는 Mesa llvmpipe와 같은 순수 소프트웨어 OpenGL 구현의 사용은 여전히 가능합니다.
Qt Quick 및 Qt Quick 3D 애플리케이션의 경우, Qt 6는 OpenGL 외에도 Direct 3D 11, Vulkan 및 Metal을 지원합니다. Windows에서 Qt 6는 기본적으로 Direct 3D를 지원하므로 다른 그래픽 API에 대한 지원이 추가되어 ANGLE 제거로 인한 영향이 줄어듭니다.
© 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.