Enhance javafx Canvas API
Kevin Rushforth
kevin.rushforth at oracle.com
Wed Feb 15 12:40:26 UTC 2023
This seems like a good enhancement to me. I might suggest the following
naming for the restore method:
void restore(int index)
Would it be useful to other app developers?
-- Kevin
On 2/12/2023 1:21 AM, Laurent Bourgès wrote:
> Hi,
>
> For jfree.FXGraphics2D, I implemented the proposed approach in the new
> GCHandler:
> https://github.com/jfree/fxgraphics2d/blob/1994b9cb3a9bff93bf95100d398756d7f9f626c2/src/main/java/org/jfree/fx/GCStateHandler.java
>
> It boosts fxG2D performance & correctness.
>
> Ideally, such methods getSavePoint(), restoreToCount() should be added
> to GraphicsContext API...
>
> Cheers,
> Laurent
>
> Le ven. 3 févr. 2023, 23:31, Laurent Bourgès
> <bourges.laurent at gmail.com> a écrit :
>
> Hi,
>
> While working with skia & jfree's skijaGraphics2D wrapper, I
> observed skia offers nice methods in SkCanvas missing in javafx
> Canvas/GraphicsContext to deal with save/restore state:
>
> - int getSaveCount ()
> Returns the number of saved states, each containing: SkMatrix
> and clip.
> - void restoreToCount (int saveCount)
> Restores state to SkMatrix and clip values when save(), returned
> saveCount.
>
> As javafx canvas also maintains s stack of saved states, such
> methods are trivial to implement to allow resetting completely the
> canvas state by restoreToCount(0).
>
> Moreover, clip(shape) + save/restore are really tricky to allows
> ensure clip is reset to previous state ...
>
> Would you agree to add such methods to have more predictive
> behaviour than counting all save() calls to ensure to call
> restore() the same number of times to reset the canvas to its
> initial state ?
>
> See SkijaGraphics2d implementation that saves / restore skCanvas
> clip using such index property:
> https://github.com/jfree/skijagraphics2d/blob/main/src/main/java/org/jfree/skija/SkijaGraphics2D.java
>
> Cheers,
> Laurent
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20230215/b171c836/attachment-0001.htm>
More information about the openjfx-dev
mailing list