Skip to content

Releases: jwharm/cairo-java-bindings

1.18.4.3

28 Mar 15:59
cf73d46

Choose a tag to compare

This is a minor release of cairo-java-bindings. There are no functionality changes compared to version 1.18.4.2.

Existing users do not need to upgrade from 1.18.4.2 to 1.18.4.3. The reason for this release is compatibility with the upcoming Java-GI 0.15.0 release, specifically the change of a module name and the minimal JDK version (25).

Changes:

  • The minimal JDK version has been increased from JDK 22 to JDK 25.
  • The version and module name of the Java-GI dependency has been updated.
  • All other dependencies and the Gradle Wrapper were updated.

Availability and dependencies:

  • The new release is available on Maven Central.
  • OpenJDK 25 or later is required.
  • The bindings are based on cairo 1.18. This library needs to be installed.

Full Changelog: 1.18.4.2...1.18.4.3

1.18.4.2

17 May 12:19

Choose a tag to compare

This is a minor release of cairo-java-bindings. There are no incompatible changes compared to version 1.18.4 and 1.18.4.1.

Changes:

  • The Gradient and Pattern classes have been changed to not be abstract. This fixes an issue in Java-GI, where incorrect code was generated for these types.
  • The MemoryCleaner class has been improved, to fix memory leaks. If you encounter memory-management issues with this release that did not occur on version 1.18.4.1, please log an issue.
  • Dependencies were updated.

Availability and dependencies:

  • The new release is available on Maven Central.
  • OpenJDK 22 or later is required.
  • The bindings are based on cairo 1.18. This library needs to be installed.

Full Changelog: 1.18.4.1...1.18.4.2

1.18.4.1

17 Oct 18:57

Choose a tag to compare

This release fixes a bug when creating an SVG, PDF or PS surface (#3). Thanks to @MikeUdin for reporting this.

Full Changelog: 1.18.4...1.18.4.1

1.18.4

27 Jul 12:01

Choose a tag to compare

This release contains small fixes and improvements:

  • Flag parameters (that allow bitwise combinations) are now Set<> parameters. This impacts PDFOutlineFlags and FTSynthesize.
  • Fixed the function descriptors of cairo_text_extents and cairo_glyph_extents
  • Small Javadoc fixes
  • Dependency upgrades

Full Changelog: 1.18.3...1.18.4

1.18.3

13 May 19:59

Choose a tag to compare

Release 1.18.3 has been ported to the latest version of the OpenJDK Foreign Function & Memory API (JEP 454). Use this version on OpenJDK 22 and newer. The --enable-preview parameter is no longer necessary.

No functional changes were made in this release.

1.18.2

05 Mar 20:56

Choose a tag to compare

Version 1.18.2 brings the following changes:

  • Fixed #2: Automatically resize the MemorySegment returned by ImageSurface::getData to the height * stride of the surface. (Previously, the MemorySegment has zero size and had to be resized by the user).
  • Added warnings to the documentation of the various getUserData methods that the returned MemorySegment has zero size and must be explicitly resized to the correct value.
  • A few other small Javadoc fixes/improvements
  • Updated dependency versions

1.18.1

05 Nov 22:19

Choose a tag to compare

Version 1.18.1 brings the following changes:

  • Added user fonts
  • Upgraded to JDK 21 (and the JEP-442 API)

1.18.0

14 Oct 20:16
376ba99

Choose a tag to compare

This release upgrades the bindings to cairo 1.18.0.
Some notable changes are:

  • Added bindings for new API as listed here with two exceptions:
    • DWrite fonts, because platform-specific fonts and devices are not included
    • the API additions to User Fonts, because User Fonts are also not included in the bindings
  • Added bindings for SurfaceObserver
  • Added bindings for TeeSurface
  • Fixed marshaling of glyph parameters

This release also adds support for cairo-gobject, by adding static getType() methods to the applicable classes. The getType() methods return a org.gnome.glib.Type object with the gtype. This adds an optional dependency on Java-GI (specifically, the glib module). If you don't use the getType() methods, you can safely omit this dependency.

Finally. a lot of testcases have been added, reworked and improved.

Full Changelog: 1.16.2...1.18.0

1.16.2

17 Sep 20:16

Choose a tag to compare

This release adds a JPMS module-info file. Both the packages org.freedesktop.cairo and org.freedesktop.freetype are exported in module org.freedesktop.cairo.
Thanks to @JFronny for the PR.

The release is available from MavenCentral (link).

1.16.1

02 Sep 09:51

Choose a tag to compare

This release contains two functionality changes:

  • Changed FTSynthesize to a record class
  • Fixed handling of empty String parameters

Other changes:

  • Removed dependency on Java-GI functionality. The interop functionality has been added in a new package io.github.jwharm.cairobindings.
  • Renamed base class from ProxyInstance to Proxy
  • The build structure and Gradle build files have been cleaned up
  • Added toolchain resolver convention plugin
  • Changed tests of PDF, PS and SVG Surfaces to use null instead of empty String
  • Upgraded Gradle wrapper to 8.3

Full Changelog: 1.16.0...1.16.1