vgAppendPathData и vgModifyPathCoords, как изменить видимость сегментов пути

У меня есть вопрос об изменении видимости сегментов пути через VG_LINE_TO_ABS и VG_MOVE_TO_ABS

Во-первых, мне сказали, что создание и уничтожение путей OpenVg обходится дорого, а создание пути намного быстрее, а затем его изменение.

Поэтому в моей функции Init у меня есть

vg3DPath = vgCreatePath (VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, seg_pts, seg_pts * 2, VG_PATH_CAPABILITY_ALL); vgAppendPathData (vg3DPath, seg_pts, (const VGubyte *) vg3DPathSegments, points);

И в моей функции Draw у меня есть,

vgModifyPathCoords (vg3DPath, 0, seg_pts, points);

Количество точек seg_pts не изменяется, только расположение точек, сохраненных в массиве точек (определяется как размер 2*seg_pts для координат X и Y каждой точки) .

Это отлично работает.

Моя проблема в том, что vgModifyPathCoords() не принимает массив описания сегмента, vg3DPathSegments (определяется как размер seg_pts+1, для VG_MOVE_TO_ABS, VG_LINE_TO_ABS ... VG_LINE_TO_ABS, VG_CLOSE_PATH)

Если я хочу изменить видимость некоторых сегментов. т.е. изменить некоторые из VG_LINE_TO_ABS на VG_MOVE_TO_ABS, я не могу передать это в vgModifyPathCoords(..)

Сначала я задумался о том, чтобы сделать vg3DPathSegments, частную переменную класса, и изменение значений в ней автоматически изменило бы эти свойства в пути, но оно передается как const, поэтому это не работает.

Как я могу изменить эти свойства пути? Есть ли лучший подход?

Язык C++11 Платформа Imx6, Yocto

Большое спасибо -D

0 ответов

Другие вопросы по тегам