-
-
Notifications
You must be signed in to change notification settings - Fork 17
History and context
Java uses pluggable rasterizers for antialiased rendering. Each rasterizer implements the sun.java2d.pipe.RenderingEngine, gets registered in SPI (Service Provider Interface), and once available in the boot classpath, can be enabled via system variables.
The two basic platform independent renderers are Ductus and Pisces. The Ductus rasteriser is a small set of Java classes backed by a native library used to perform path stroking and filling. It is available by default in Oracle JDK, it's closed source, and has serious issues scaling up in a multi-threaded enviroment, as it can rasterizer only one java.awt.Shape at a time.
The Pisces rasterizer is instead a pure java, open source rasterizer used by the OpenJDK. It has no scalability issues, but performance is rather poor.
There are other rasterizers, such as the XRender one, which relies on native and platform specific support (Cairo). For reference, here is a an old single threaded performance comparison between Ductus, XRender and Pisces