Skip to content

History and context

Andrea Aime edited this page Jan 25, 2014 · 3 revisions

Java antialiased rasterizers: the current status

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

Clone this wiki locally