En esta página

Qt Quick Adaptación OpenVG

La adaptación OpenVG es un renderizador alternativo para Qt Quick 2 que renderiza el contenido del gráfico de escena utilizando comandos OpenVG para proporcionar gráficos 2D vectoriales y rasterizados acelerados por hardware. Al igual que la adaptación de software, algunas funciones y optimizaciones ya no están disponibles. La mayoría de las aplicaciones de Qt Quick 2 funcionarán sin modificaciones, aunque se ignorará cualquier intento de utilizar funciones no compatibles.

Requisito EGL

A diferencia del renderizador OpenGL por defecto, no hay soporte incorporado para adquirir un contexto OpenVG. Esto significa que el renderizador es responsable de solicitar y gestionar el contexto actual. Para ello, se utiliza EGL directamente en el renderizador OpenVG. En consecuencia, el renderizador OpenVG sólo puede utilizarse con plugins de plataforma que soporten la creación de QWindows con soporte para QSurfaceFormat::OpenVG. Desde esta ventana, el renderizador puede obtener una EGLSurface que luego puede ser utilizada con un EGLContext para renderizar contenido OpenVG.

Renderizador

El renderizador OpenVG utiliza la API OpenVG para enviar comandos y datos a una GPU vectorial que renderiza el gráfico de la escena de forma acelerada, descargando el renderizado gráfico de la CPU. Muchas operaciones, como el renderizado de rectángulos y glifos de fuentes, son ideales para OpenVG porque pueden representarse como trayectorias que se trazan y rellenan. El renderizado de elementos del gráfico de escena que normalmente implican texturas se maneja en el renderizador OpenVG utilizando VGImage. Además, cuando se renderiza a superficies fuera de la pantalla (como con Layers), el subárbol de la escena se renderiza a una VGImage que puede ser reutilizada en la escena.

Bucle de renderizado

El Renderizador OpenVG refleja el comportamiento del bucle de renderizado Básico y ejecuta todos los comandos OpenVG en un único hilo.

Para más información sobre los bucles de render, ver Qt Quick Scene Graph.

Efectos Shader

ShaderEffect Los componentes en QtQuick 2 no pueden ser renderizados por la adaptación OpenVG. Aunque es posible utilizar ShaderEffectSource y capas de elementos QML (que son superficies fuera de la pantalla), no es posible aplicarles efectos de sombreado a través del elemento ShaderEffect. Esto se debe a que OpenVG carece de una API para aplicar operaciones de sombreado por vértice y por fragmento. Sin embargo, es posible que puedas aprovechar las operaciones de filtro de imagen de la API de OpenVG para obtener efectos similares a los que proporciona ShaderEffects en los elementos personalizados. Para integrar el renderizado personalizado de OpenVG, utilice QSGRenderNode en combinación con QSGRendererInterface.

Efectos de partículas

No es posible renderizar efectos de partículas con la adaptación OpenVG. Siempre que sea posible, elimina completamente las partículas de la escena. De lo contrario, seguirán necesitando algo de procesamiento, aunque no sean visibles.

Renderizado de texto

El renderizado de texto con la adaptación a OpenVG se basa en el renderizado de las trayectorias de los glifos, y no utiliza la técnica de campos de distancia, a diferencia del backend OpenGL.

Transformaciones de perspectiva

La API de OpenVG no permite transformar trazados con transformaciones no afines, pero es posible con Qt Quick. Consecuentemente, cuando renderizas componentes usando trazados como Rectángulos y Texto mientras aplicas transformaciones de perspectiva, el backend de OpenVG renderiza primero a una VGImage antes de aplicar las transformaciones. Este comportamiento utiliza más memoria en tiempo de ejecución y lleva más tiempo; evítelo si es posible.

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