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