0

OpenVG 変換マトリックスがテキスト レンダリング ルーチンによってまったく無視され、VG_GLYPH_ORIGIN を使用して手動でテキスト位置を制御できないことに気付きましparameterた。

シーングラフを実装しています。を使用してvgGetMatrix、現在の 3x3 変換行列のコンポーネント 6 と 7 を読み取りVG_GLYPH_ORIGIN、テキスト ブロックを描画する前にそれらの値を設定できることがわかりました。これにより、テキストの原点を正しい場所に配置できますが、テキストは常に左から右に表示されます。

ただし、これ自体では、回転などの他の変換を行うことはできません。VGPathテキストはs から構成されており、実際に変換されているため、私は驚いています

OpenVG 1.1 でテキストを回転させる方法はありますか? または、OpenVG 1.1 のテキスト機能を無視して、文字を個別のパスまたは画像として手動で描画する必要がありますか?

4

1 に答える 1

1

すべての描画関数は異なる user->surface マトリックスを使用します:

  • vgDrawPath用途VG_MATRIX_PATH_USER_TO_SURFACE
  • vgDrawImage用途VG_MATRIX_IMAGE_USER_TO_SURFACE
  • vgDrawGlyph/vgDrawGlyphs使用VG_MATRIX_GLYPH_USER_TO_SURFACE

デフォルトでは、すべての行列関数 ( vgTranslatevgRotatevgLoadMatrixなど) は で動作しVG_MATRIX_PATH_USER_TO_SURFACEます。アクティブ マトリックスを変更するには、最初の引数として次のようvgSetiに呼び出します。VG_MATRIX_MODE

vgSeti(VG_MATRIX_MODE, VG_MATRIX_GLYPH_USER_TO_SURFACE);
/* now vgTranslate, vgRotate, etc will operate on VG_MATRIX_GLYPH_USER_TO_SURFACE */
于 2011-03-12T17:36:03.583 に答える