Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bourgesl/marlin-renderer
Marlin is the FAST Java2D antialiasing rasterizer derived from OpenJDK Pisces (shape)
https://github.com/bourgesl/marlin-renderer
java java2d openjdk rasterizer rendering-2d-graphics shape
Last synced: 4 days ago
JSON representation
Marlin is the FAST Java2D antialiasing rasterizer derived from OpenJDK Pisces (shape)
- Host: GitHub
- URL: https://github.com/bourgesl/marlin-renderer
- Owner: bourgesl
- License: other
- Created: 2014-01-24T10:56:18.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-01-16T21:49:27.000Z (10 months ago)
- Last Synced: 2024-09-30T14:04:52.475Z (about 2 months ago)
- Topics: java, java2d, openjdk, rasterizer, rendering-2d-graphics, shape
- Language: Java
- Homepage:
- Size: 4.86 MB
- Stars: 180
- Watchers: 23
- Forks: 17
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: License.md
Awesome Lists containing this project
README
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](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_3) |
| Oracle JDK 6 - 7 [EOL] | Ductus | [Marlin-renderer 0.9.4.3](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_3) |
| Open JDK 8 [EOL] | Pisces | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |
| Oracle JDK 8 [EOL] | Ductus | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |
| Azul Zulu 8 | Marlin 0.7.4 / 0.9.1.1 | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |
| Jetbrains JDK 8 [EOL] | Marlin 0.7.4 / 0.9.3 | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |
| Open JDK 9 [EOL] | Marlin 0.7.4 | [Marlin-renderer 0.9.4.2 for JDK9+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_2_jdk9) |
| Open JDK 10 [EOL] | Marlin 0.8.2 | [Marlin-renderer 0.9.4.2 for JDK9+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_2_jdk9) |
| Open JDK 11 | Marlin 0.9.1 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |
| Open JDK 11.0.2 | Marlin 0.9.1.1 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |
| Open JDK 14 | Marlin 0.9.1.3 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |
| Open JDK 17 | Marlin 0.9.1.4 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |
| Open JDK 21 | Marlin 0.9.4.6 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |
| Open JDK 22 | Marlin 0.9.4.7 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |For JavaFX, see the [Marlin-FX](https://github.com/bourgesl/marlin-fx) project
News
====
* oct 2023: Marlin 0.9.4.7 integrated in OpenJDK 22
* nov 2022: Marlin 0.9.4.6 integrated in OpenJDK 21
* jan 2021: Marlin 0.9.1.4 integrated in OpenJDK 17
* sep 2019: Marlin 0.9.1.3 integrated in OpenJDK 14
* aug 2019: Marlin 0.9.1.2 integrated in OpenJDK 14
* jul 2019: MarlinFX 0.9.3.1 integrated in OpenJFX 14, backported in OpenJFX 13
* oct 2018: MarlinFX 0.9.3 integrated in OpenJFX 12
* oct 2018: Marlin 0.9.1.1 backported to OpenJDK 11 updates (11.0.2)
* sep 2018: Marlin 0.9.1.1 integrated in OpenJDK 12
* jun 2018: MarlinFX 0.9.2 integrated in OpenJFX 11
* apr 2018: Marlin 0.9.1 integrated in OpenJDK 11
* dec 2017: Marlin & MarlinFX 0.8.2 integrated in OpenJDK & OpenJFX 10
* nov 2017: Marlin rocks on [Geoserver benchmarks](https://gmf-test.sig.cloud.camptocamp.net/ms_perfs/): see geoserver (including Marlin 0.8.2) vs geoserver-jai results: it boosts geoserver to achieve MapServer performance !!
* My personal point of view after javaone: it is your turn to contribute to OpenJDK & OpenJFX: see [openjdk thread](http://mail.openjdk.java.net/pipermail/openjfx-dev/2017-October/020900.html)
* 4 oct 2017: JavaOne talk slides: [Marlin, a JDK9 Success Story: Vector Graphics on Steroids for Java 2D and JavaFX](https://github.com/bourgesl/bourgesl.github.io/raw/master/javaone2017/slides/javaone-marlin-talk.pdf)
* may 2017: Marlin & MarlinFX 0.7.5 integrated in OpenJFX10 (enabled by default)
* feb 2017: Blog post comparing Oracle ductus vs OpenJDK Marlin renderers (latency) [Performance Rendered Visual](https://www.azul.com/performance-rendered-visual/)
* nov 2016: MarlinFX 0.7.5 integrated in OpenJFX9
* jul 2016: Marlin integrated in [Jetbrains OpenJDK8 build](https://github.com/JetBrains/jdk8u) and running in IntelliJ IDEA 2016.3
* feb 2016: FOSDEM talk slides [Marlin renderer, a successful fork and join the OpenJDK 9 project](https://bourgesl.github.io/fosdem-2016/slides/fosdem-2016-Marlin.pdf)
* dec 2015: Marlin 0.7.4 integrated in OpenJDK9Build status
============
Continuous Integration base on Github Actions (build + unit & integration tests):
* Branch jdk (jdk11+): [![CI](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml/badge.svg?branch=jdk)](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml)
* Branch use_Unsafe (jdk8) (left as is - not maintained since 2024.01):
[![CI](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml/badge.svg?branch=use_Unsafe)](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml)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 ExceptionThe GNU General Public License (GPL)
Version 2, June 1991
"
See License.mdPerformance
===========See the [Benchmarks](https://github.com/bourgesl/marlin-renderer/wiki/Benchmarks)
Documentation
=============
Documentation on how to use and tune the Marlin renderer is available in the [wiki]( https://github.com/bourgesl/marlin-renderer/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](https://groups.google.com/forum/#!forum/marlin-renderer) Google Group.
Contributing
============Contributions are welcomed, get in touch with us on the [marlin-renderer](https://groups.google.com/forum/#!forum/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](http://www.oracle.com/technetwork/community/oca-486395.html) (very easy to do)Support our work
================Please help if you appreciate the Marlin project:
* share your benchmark & test results (quality ?)
* improve test cases, quality & unit tests, submit bug reports
* documentation should be improved & updatedTo 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
================- [Mapbench](https://github.com/bourgesl/mapbench) provides testing & benchmarking tools based on real world map painted by the [GeoServer](http://geoserver.org/)
- [Marlin-FX](https://github.com/bourgesl/marlin-fx) provides the Marlin renderer port into JavaFX Prism (shape rasterizer)Acknowledgments:
================
The Marlin renderer project benefited from the following tools:
* EJ-technologies Java Profiler* supports open source projects with its full-featured Java Profiler.
YourKit, LLC is the creator of YourKit Java Profiler
and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.