Pregunta

He notado que la rutina de representación de texto ignora la matriz de transformación OpenVG y no puedo controlar la posición del texto manualmente con VG_GLYPH_ORIGIN parameter.

Estoy implementando un gráfico de escena.Descubrí que puedo usar vgGetMatrix, lea los componentes 6 y 7 de la matriz de transformación 3x3 actual y establezca VG_GLYPH_ORIGIN a esos valores antes de dibujar un bloque de texto.Esto permite que el origen del texto se coloque en el lugar correcto, pero el texto siempre se muestra de izquierda a derecha.

Sin embargo, esto en sí no me permite realizar otras transformaciones, como la rotación.Me sorprende porque el texto está compuesto de VGPaths y de hecho se transforman

¿Hay alguna manera de rotar el texto con OpenVG 1.1?¿O debería ignorar la funcionalidad de texto de OpenVG 1.1 y dibujar las letras como rutas individuales o imágenes manualmente?

¿Fue útil?

Solución

Todas las funciones de dibujo utilizan una matriz de usuario->superficie diferente:

  • vgDrawPath usos VG_MATRIX_PATH_USER_TO_SURFACE
  • vgDrawImage usos VG_MATRIX_IMAGE_USER_TO_SURFACE
  • vgDrawGlyph/vgDrawGlyphs usar VG_MATRIX_GLYPH_USER_TO_SURFACE

De forma predeterminada, todas las funciones matriciales (vgTranslate, vgRotate, vgLoadMatrix, etc) operar en VG_MATRIX_PATH_USER_TO_SURFACE.Para cambiar la matriz activa, llame vgSeti con VG_MATRIX_MODE como primer argumento:

vgSeti(VG_MATRIX_MODE, VG_MATRIX_GLYPH_USER_TO_SURFACE);
/* now vgTranslate, vgRotate, etc will operate on VG_MATRIX_GLYPH_USER_TO_SURFACE */
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top