GDIP SetClip still do not work properly

Continuing the discussion from Nanovg SetClip operations do not work correctly:

I am back with a new test case that does not work properly. (PS: I still do not have time to validate the previous “fixes”, busy with other parts of the projects.)

Using gdip wrapper API here.

  1. Create Path with geometry.
  2. Clear Surface with Green.
  3. Use Path as Clip.
  4. FillRect (large rect that covers entire gauge) with white brush on whole surface to test clip.
  5. Clip does not work as shown.

For sanity check to check if my paths are valid:

  1. Create Path with geometry.
  2. Clear Surface with Green.
  3. FillPath with white brush.

You can clearly see the path geometry is valid and shows up properly. I suspect the stencil surface used in nanovg is not behaving properly. Please check as clips are essential for complex avionics gauges.


Compass.cpp (8.8 KB)
Attached is the sample code. Toggle between the two test cases by chaging the if statement true/false condition. @FlyingRaccoon

Thanks.

Hello @JoshC

We were able to reproduce the issue and this is now in our bug tracking system.
Thank you for the sample.

Regards,
Sylvain

@ FlyingRaccoon Is there an update to this? Its already may now.

Hello @JoshC

No progress on this.
Clipping of non convex shapes is not supported at the moment.
It’s in our backlog but it hasn’t been prioritized yet.

Regards,
Sylvain