Review request for JDK-8169270: Leverage new Java2D Marlin rasterizer for JavaFX
Laurent Bourgès
bourges.laurent at gmail.com
Thu Nov 10 15:53:01 UTC 2016
Jim & Kevin,
Sorry to announce this code review in late, I thought JBS would have sent
such email from the comment.
Please review the marlin-FX webrev:
http://cr.openjdk.java.net/~lbourges/marlinFX/marlinFX-8169270.0/
JBS: https://bugs.openjdk.java.net/browse/JDK-8169270
Reviewers: flar, kcr
This webrev consist in Prism classes (ShapeUtil, SWContext) using the new
Marlin renderer ported to JavaFX.
The PrismSettings class has been modified to have the new
prism.marlinrasterizer flag (disabled by default).
Marlin-FX is slightly different than Marlin OpenJDK9 to:
- use javafx classes instead of java2d classes
- fix Dasher / Stroker as done in OpenPisces
- support both AA and nonAA Renderer (see MarlinRenderer interface)
- fix Renderer cubic decimation thresholds to match OpenPisces nonAA
quality
- the new MarlinAlphaConsumer supports optimized alpha copies (only
valuable ranges) and the block flag optimized fills for the
MarlinRasterizer only (not SWContext)
Note: The SWContext.DirectRTPiscesMarlinAlphaConsumer relies on
PiscesRenderer.emitAndClearAlphaRow() that is not optimal with the Marlin
approach as it expects a complete row [x0, x1] although Marlin gives the
span [xmin, xmax] where coverage != 0. The prism-native-sw (c code) could
be improved to accept an extra offset to skip useless pixels [x0, xmin] and
improve the blending performance.
Will upgrade later OpenJDK9's Marlin renderer or if you prefer, I can do it
first.
PS: As you proposed in the previous thread, I will refactor reentrant
classes to com.sun.util.reentrant and remove useless properties in
MarlinProperties.
Regards,
Laurent
More information about the openjfx-dev
mailing list