1

I have a question regarding changing visibility of path segments via VG_LINE_TO_ABS and VG_MOVE_TO_ABS

First, I've been told it's resource expensive to create and destroy OpenVg paths, and it's much fast to create a path, then modify it

Therefore, in my Init function I have

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);

And in my Draw function I have,

vgModifyPathCoords(vg3DPath, 0, seg_pts, points);

The number of points, seg_pts does not change, only the location of points, stored in the points array (defined as 2*seg_pts in size for X and Y coordinates of each point) .

This works fine.

My issue is that vgModifyPathCoords() does not take the segment description array, vg3DPathSegments (defined as seg_pts+1 in size, for VG_MOVE_TO_ABS, VG_LINE_TO_ABS ... VG_LINE_TO_ABS, VG_CLOSE_PATH)

If I want to change visibility of some segments. i. e. change some of the VG_LINE_TO_ABS to VG_MOVE_TO_ABS, I cannot pass this into vgModifyPathCoords(..)

My initial thinking was to make vg3DPathSegments, a class private variable, and changing values in it would automatically change those properties in the path, but it's passed as a const, so this does not work.

How can I change these properties of the path? Is there any better approach?

The language is C++11 The platform is Imx6, Yocto

Thank you very much -D

Anders
  • 8,541
  • 1
  • 27
  • 34
Mich
  • 3,188
  • 4
  • 37
  • 85

0 Answers0