Pergunta

Eu tenho notado que o OpenVG matriz de transformação é ignorado pelo processamento de texto de rotina em tudo e eu não posso controlar a posição do texto com ele manualmente com VG_GLYPH_ORIGIN parameter.

Eu sou a implementação de um grafo de cena.Eu descobri que eu posso usar vgGetMatrix, leia componentes 6 e 7 do corrente 3x3 matriz de transformação e conjunto VG_GLYPH_ORIGIN a esses valores antes de desenhar um bloco de texto.Isto permite que o texto de origem para ser colocado no lugar correto, mas o texto ainda é exibida sempre da esquerda para a direita.

No entanto, isso por si só não me permitem fazer quaisquer outras transformações, como a rotação.Eu estou surpreso porque o texto é composto de VGPaths e eles são, de fato, transformado

Existe uma maneira de tornar o texto girado com OpenVG 1.1?Ou devo ignorar a funcionalidade de texto a partir de OpenVG 1.1 e desenhar as letras como caminhos individuais ou imagens manualmente?

Foi útil?

Solução

Todas as funções de desenho de utilizar um outro usuário->superfície de matriz:

  • vgDrawPath usa VG_MATRIX_PATH_USER_TO_SURFACE
  • vgDrawImage usa VG_MATRIX_IMAGE_USER_TO_SURFACE
  • vgDrawGlyph/vgDrawGlyphs utilização VG_MATRIX_GLYPH_USER_TO_SURFACE

Por padrão, todos da matriz de funções (vgTranslate, vgRotate, vgLoadMatrix, etc) operam VG_MATRIX_PATH_USER_TO_SURFACE.Para alterar a matriz ativa, chamada de vgSeti com VG_MATRIX_MODE como o primeiro 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top