Повернутый текст с OpenVG - PullRequest
       41

Повернутый текст с OpenVG

0 голосов
/ 16 февраля 2011

Я заметил, что матрица преобразования OpenVG вообще игнорируется подпрограммой рендеринга текста, и я не могу вручную управлять позицией текста с помощью VG_GLYPH_ORIGIN parameter.

Я реализую граф сцены. Я обнаружил, что могу использовать vgGetMatrix, прочитать компоненты 6 и 7 текущей матрицы преобразования 3x3 и установить VG_GLYPH_ORIGIN на эти значения, прежде чем рисовать блок текста. Это позволяет расположить источник текста в правильном месте, но текст по-прежнему всегда отображается слева направо.

Однако само по себе это не позволяет мне выполнять какие-либо другие преобразования, например вращение. Я удивлен, потому что текст составлен из VGPath с, и они действительно преобразованы

Есть ли способ сделать текст повернутым с помощью OpenVG 1.1? Или я должен игнорировать функциональность текста из OpenVG 1.1 и рисовать буквы как отдельные пути или изображения вручную?

1 Ответ

1 голос
/ 12 марта 2011

Все функции рисования используют другую матрицу пользователя-> поверхность:

  • vgDrawPath использует VG_MATRIX_PATH_USER_TO_SURFACE
  • vgDrawImage использует VG_MATRIX_IMAGE_USER_TO_SURFACE
  • vgDrawGlyph / vgDrawGlyphs использование VG_MATRIX_GLYPH_USER_TO_SURFACE

По умолчанию все матричные функции (vgTranslate, vgRotate, vgLoadMatrix и т. Д.) Работают на 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 */
...