Qt Quick OpenVG 적응

OpenVG 적응은 다음을 위한 대체 렌더러입니다. Qt Quick 2의 대체 렌더러로, OpenVG 명령을 사용하여 씬 그래프의 내용을 렌더링하여 하드웨어 가속 2D 벡터 및 래스터 그래픽을 제공합니다. 소프트웨어 적응과 마찬가지로 일부 기능 및 최적화는 더 이상 사용할 수 없습니다. 대부분의 Qt Quick 2 애플리케이션은 수정 없이 실행되지만 지원되지 않는 기능을 사용하려는 시도는 무시됩니다.

EGL 요구 사항

기본 OpenGL 렌더러와 달리 OpenVG 컨텍스트 획득을 위한 기본 지원 기능이 없습니다. 즉, 렌더러가 현재 컨텍스트를 요청하고 관리할 책임이 있습니다. 이를 위해 OpenVG 렌더러에서 직접 EGL을 사용합니다. 따라서 OpenVG 렌더러는 QSurfaceFormat::OpenVG 을 지원하는 QWindows 생성을 지원하는 플랫폼 플러그인에서만 사용할 수 있습니다. 이 창에서 렌더러는 EGLSurface를 가져와서 EGLContext와 함께 OpenVG 콘텐츠를 렌더링하는 데 사용할 수 있습니다.

렌더러

OpenVG 렌더러는 OpenVG API를 사용하여 명령과 데이터를 벡터 GPU로 전송하여 씬 그래프를 가속화된 방식으로 렌더링하여 CPU에서 그래픽 렌더링을 오프로드합니다. 직사각형 및 글꼴 글리프 렌더링과 같은 많은 작업은 획을 긋고 채우는 경로로 표현할 수 있으므로 OpenVG에 이상적입니다. 일반적으로 텍스처를 포함하는 씬 그래프 항목 렌더링은 VGImage를 사용하여 OpenVG 렌더러에서 처리됩니다. 또한 레이어와 같이 화면 밖의 표면에 렌더링하는 경우 씬 서브트리는 씬에서 재사용할 수 있는 VGImage로 렌더링됩니다.

렌더 루프

OpenVG 렌더러는 기본 렌더링 루프의 동작을 미러링하며 모든 OpenVG 명령을 단일 스레드에서 실행합니다.

렌더 루프에 대한 자세한 내용은 Qt Quick 씬 그래프를 참조하십시오.

셰이더 효과

ShaderEffect 의 컴포넌트 QtQuick 2는 OpenVG 적응으로 렌더링할 수 없습니다. ShaderEffectSource 및 QML 항목 레이어(모두 화면 밖 표면)는 사용할 수 있지만 ShaderEffect 항목을 통해 셰이더 효과를 적용할 수는 없습니다. OpenVG에는 버텍스별 및 조각별 셰이더 연산을 적용하기 위한 API가 없기 때문입니다. 그러나 OpenVG API의 이미지 필터 작업을 활용하여 사용자 지정 항목에서 ShaderEffects가 제공하는 것과 유사한 효과를 얻을 수 있습니다. 커스텀 OpenVG 렌더링을 통합하려면 QSGRenderNodeQSGRendererInterface 을 함께 사용하세요.

파티클 이펙트

OpenVG 적응으로 파티클 효과를 렌더링할 수 없습니다. 가능하면 장면에서 파티클을 완전히 제거하세요. 그렇지 않으면 파티클이 보이지 않더라도 일부 처리가 필요합니다.

텍스트 렌더링

OpenVG 적응을 사용한 텍스트 렌더링은 글리프 경로 렌더링을 기반으로 하며, OpenGL 백엔드와 달리 거리 필드 기법을 사용하지 않습니다.

원근 변환

OpenVG API는 비원근 변환으로 경로를 변환하는 것을 허용하지 않지만 Qt Quick 에서는 가능합니다. 일반적으로 원근 변환을 적용하는 동안 직사각형 및 텍스트와 같은 경로를 사용하여 컴포넌트를 렌더링할 때 OpenVG 백엔드는 변환을 적용하기 전에 먼저 VGImage로 렌더링합니다. 이 동작은 런타임에 더 많은 메모리를 사용하고 시간이 더 오래 걸리므로 가능하면 피하세요.

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