Повернутый текст с OpenVG
Я заметил, что матрица преобразования OpenVG вообще игнорируется подпрограммой рендеринга текста, и я не могу контролировать положение текста с помощью нее вручную с помощью VG_GLYPH_ORIGIN parameter
,
Я реализую граф сцены. Я узнал, что я могу использовать vgGetMatrix
прочитайте компоненты 6 и 7 текущей матрицы преобразования 3х3 и установите VG_GLYPH_ORIGIN
к этим значениям, прежде чем рисовать блок текста. Это позволяет расположить источник текста в правильном месте, но текст по-прежнему всегда отображается слева направо.
Однако само по себе это не позволяет мне делать какие-либо другие преобразования, например вращение. Я удивлен, потому что текст состоит из VGPath
и они действительно преобразились
Есть ли способ сделать текст повернутым с OpenVG 1.1? Или я должен игнорировать функциональность текста из OpenVG 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
По умолчанию все функции матрицы (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 */