我有一个关于通过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