vgAppendPathData和vgModifyPathCoords,如何更改路径段的可见性

时间:2016-01-07 16:50:03

标签: c++11 openvg

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

没有答案