我有一个关于通过 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, 点);
点的数量,seg_pts不会改变,只有点的位置,存储在 points 数组中(定义为每个点的 X 和 Y 坐标的大小为2*seg_pts)。
这工作正常。
我的问题是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