bourgesl / marlin-renderer

Marlin is the FAST Java2D antialiasing rasterizer derived from OpenJDK Pisces (shape)
Other
180 stars 17 forks source link
java java2d openjdk rasterizer rendering-2d-graphics shape

Marlin-renderer

Marlin is an open source (GPL2 + CP) Java2D RenderingEngine optimized for performance (improved memory usage (~ no GC) and footprint, better multi-threading) and better visual quality based on OpenJDK's Pisces implementation. It handles shape rendering like Graphics2D draw(Shape) / fill(Shape) with stroke & dash attributes only but it does it very well !

Release history

Latest release: https://github.com/bourgesl/marlin-renderer/releases/latest

JDK Default renderer Latest Marlin release
Open JDK 6 - 7 [EOL] Pisces Marlin-renderer 0.9.4.3
Oracle JDK 6 - 7 [EOL] Ductus Marlin-renderer 0.9.4.3
Open JDK 8 [EOL] Pisces Marlin-renderer 0.9.4.7 for JDK8
Oracle JDK 8 [EOL] Ductus Marlin-renderer 0.9.4.7 for JDK8
Azul Zulu 8 Marlin 0.7.4 / 0.9.1.1 Marlin-renderer 0.9.4.7 for JDK8
Jetbrains JDK 8 [EOL] Marlin 0.7.4 / 0.9.3 Marlin-renderer 0.9.4.7 for JDK8
Open JDK 9 [EOL] Marlin 0.7.4 Marlin-renderer 0.9.4.2 for JDK9+
Open JDK 10 [EOL] Marlin 0.8.2 Marlin-renderer 0.9.4.2 for JDK9+
Open JDK 11 Marlin 0.9.1 Marlin-renderer 0.9.4.8 for JDK11+
Open JDK 11.0.2 Marlin 0.9.1.1 Marlin-renderer 0.9.4.8 for JDK11+
Open JDK 14 Marlin 0.9.1.3 Marlin-renderer 0.9.4.8 for JDK11+
Open JDK 17 Marlin 0.9.1.4 Marlin-renderer 0.9.4.8 for JDK11+
Open JDK 21 Marlin 0.9.4.6 Marlin-renderer 0.9.4.8 for JDK11+
Open JDK 22 Marlin 0.9.4.7 Marlin-renderer 0.9.4.8 for JDK11+

For JavaFX, see the Marlin-FX project

News

Build status

Continuous Integration base on Github Actions (build + unit & integration tests):

License

As marlin is a fork from OpenJDK 8 Pisces source code, its license is the OpenJDK's license = GPL2 + ClassPath exception: " GNU General Public License, version 2, with the Classpath Exception

The GNU General Public License (GPL)

Version 2, June 1991 " See License.md

Performance

See the Benchmarks

Documentation

Documentation on how to use and tune the Marlin renderer is available in the wiki

Help is needed to improve the wiki & documentation !

Getting in touch

Users and developers interested in the Marlin-renderer are kindly invited to join the marlin-renderer Google Group.

Contributing

Contributions are welcomed, get in touch with us on the marlin-renderer Google Group and share your improvements via pull requests. Since we contribute this renderer into OpenJDK, we accept contributions from people that have signed the Oracle Contribution Agreeement (very easy to do)

Support our work

Please help if you appreciate the Marlin project:

To support my efforts on improving either Java2D or JavaFX rendering thanks to the Marlin & MarlinFX projects, you can use either patreon (https://www.patreon.com/user?u=9339017) or github sponsor (https://github.com/sponsors/bourgesl).

Related projects

Acknowledgments:

The Marlin renderer project benefited from the following tools: