Frage

Mir ist aufgefallen, dass die OpenVG-Transformationsmatrix von der Textrendering-Routine überhaupt ignoriert wird und ich die Textposition damit nicht manuell mit VG_GLYPH_ORIGIN steuern kann parameter.

Ich implementieren einen Szenengraphen.Ich habe herausgefunden, dass ich es verwenden kann vgGetMatrix, lesen Sie die Komponenten 6 und 7 der aktuellen 3x3-Transformationsmatrix und legen Sie sie fest VG_GLYPH_ORIGIN auf diese Werte, bevor Sie einen Textblock zeichnen.Dadurch kann der Textursprung an der richtigen Stelle platziert werden, der Text wird aber trotzdem immer von links nach rechts angezeigt.

Dies allein ermöglicht mir jedoch keine anderen Transformationen, wie etwa die Rotation.Ich bin überrascht, weil der Text aus zusammengesetzt ist VGPaths und sie sind tatsächlich verwandelt

Gibt es eine Möglichkeit, den Text mit OpenVG 1.1 zu drehen?Oder sollte ich die Textfunktionalität von OpenVG 1.1 ignorieren und die Buchstaben manuell als einzelne Pfade oder Bilder zeichnen?

War es hilfreich?

Lösung

Alle Zeichenfunktionen verwenden eine andere Benutzer->Oberflächenmatrix:

  • vgDrawPath Verwendet VG_MATRIX_PATH_USER_TO_SURFACE
  • vgDrawImage Verwendet VG_MATRIX_IMAGE_USER_TO_SURFACE
  • vgDrawGlyph/vgDrawGlyphs verwenden VG_MATRIX_GLYPH_USER_TO_SURFACE

Standardmäßig sind alle Matrixfunktionen (vgTranslate, vgRotate, vgLoadMatrix, usw.) operieren VG_MATRIX_PATH_USER_TO_SURFACE.Um die aktive Matrix zu ändern, rufen Sie an vgSeti mit VG_MATRIX_MODE als erstes Argument:

vgSeti(VG_MATRIX_MODE, VG_MATRIX_GLYPH_USER_TO_SURFACE);
/* now vgTranslate, vgRotate, etc will operate on VG_MATRIX_GLYPH_USER_TO_SURFACE */
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top