Skip to content

Releases: SpaiR/imgui-java

v1.87.3

26 Aug 10:33
e822240
Compare
Choose a tag to compare

What's Changed

  • ArgVariant annotation for binding gen and plot* methods with count parameter for ImPlot extension in #264 (resolves #261)

Full Changelog: v1.87.2...v1.87.3

v1.87.2

21 Aug 14:26
cae0581
Compare
Choose a tag to compare

Regression

  • Minor improvements and fixes for binding generation #263

Full Changelog: v1.87.1...v1.87.2

v1.87.1

20 Aug 06:12
f18c578
Compare
Choose a tag to compare

Regression

  • Return methods lost during integration of binding generation API: 8f76b20

Full Changelog: v1.87.0...v1.87.1

v1.87.0

19 Aug 07:34
c80abd2
Compare
Choose a tag to compare

What's Changed 🚀

Dear ImGui v1.87 + ImPlot v0.13

As part of PR #252, the versions of the main Dear ImGui module and the ImPlot extension have been upgraded. Initially, there was no plan to update the extension, but this became necessary due to compatibility issues.

It's important to note that both updates significantly change the way you interact with them. Therefore, it is HIGHLY recommended to review the corresponding release notes: Dear ImGui v1.87 and ImPlot v0.13.

Backend Refactor for GLFW and OpenGL

Since updating Dear ImGui required changes to the backend code, a refactor was carried out on the ImGuiImplGlfw and ImGuiImplGl3 classes. In addition to ensuring compatibility with the updated API, their code was aligned as closely as possible with the original code, within the constraints of the language. Which should make it easier to maintain these classes in the future.

As a small bonus, visibility modifiers have been revised. Now, all methods, except for the most internal ones, can be overridden. This should reduce the complexity of creating custom backends.

API for Binding Generation

This is the first release made using the new API for binding generation. You can read more about it here: #240. From a user perspective, these changes should have minimal impact. In some areas, there are now more ways to interact with native methods, but overall, everything should remain more or less the same. This is definitely not the final version, and currently, there is a lack of documentation on how to interact with the API. These are issues that will be addressed in the future. If you encounter any problems, such as missing methods that were previously available or the absence of certain flags, please report them in the issue tracker.

Optional FreeType

In the previous release, FreeType became part of the compiled library, and was enabled by default. It was noted in #244 that this default renderer appears slightly worse on macOS. This highlighted the need to toggle this renderer on and off. More details can be found in PR #254.

Migration Guide 📚

  • See New IO keyboard/mouse/gamepad event API (1.87) recap to undestand changes in Dear ImGui API. Basically, you can replace all usages of GLFW keyboard constants with appropriate ImGui versions.
  • Use ImGui.getIO().getFonts().setFreeTypeRenderer(true); to enable FreeType renderer. STB_TrueType will be used by default.

List of changes 📝

Major

  • Binding Generator API by @SpaiR in #240
  • Add missing ImGui.TableGetSortSpecs API (and related objects) by @ultraq in #246
  • Dear ImGui 1.87 by @SpaiR in #252
  • FreeType is a toggleable option which is disabled by default by @SpaiR in #254

Minor

Updated dependencies

Major

  • Dear ImGui from 1.86 to 1.87
  • ImPlot from 0.12 to 0.13

Minor

  • build(deps): bump com.gradleup.shadow from 7.1.2 to 8.3.0 by @SpaiR in #241
  • build(deps): bump com.badlogicgames.gdx:gdx-jnigen from 2.4.0 to 2.5.1 by @SpaiR in #242

New Contributors 🎉

Full Changelog: v1.86.12...v1.87.0

ko-fi

v1.86.12

07 Aug 12:00
d00f7b5
Compare
Choose a tag to compare

What's Changed 🚀

Overview

This release adds support for the ARM64 architecture on macOS and includes FreeType integration by default. It also introduces a new extension for imgui-knobs (#211) and updates LWJGL to 3.3.4.

As a minor update, the project has moved to the MIT license. While Apache 2 is quite permissive, this is mostly my personal preference for a shorter licensing text.

macOS ARM64 support

Initial support was introduced in PRs #111, #112, #136, #190, and #223. The final PR has been merged.
Thanks to the author @rexfleischer and co-authors @Tom-Ski and @zly2006, whose PRs contributed to these changes. 🙏

In a subsequent PR #239, I refined the solution into its final version, which is included in this release.

As a result, the dylib built for the release is universal and can be used on both x86_64 and arm64 architectures. No additional actions or changes to dependencies are required from the user.

FreeType integration

For more information, see the article on FreeType.

Initially, the binding provided two versions of the native part for the three main OSes. One was built with FreeType included, and the other without. The latter was primarily recommended, as the FreeType version required the library to be installed on the user's system (relevant only for Unix users). Starting with this release, FreeType is statically compiled into the native part of the library. Thus, there is no longer a need to install the library on the user's system.

In terms of impact, you will notice an overall improvement in font quality across all platforms. Additionally, you can start using the ImGuiFreeTypeBuilderFlags for your purposes. (And colorful glyphs, yep 🍰). l No additional actions are required, as FreeType will be included by default.

Since there is no longer a need to maintain separate libraries without FreeType, the corresponding files have been removed from the bin folder and excluded from release artifacts.

Migration Guide 📚

  • If you had any workarounds for non-functional macOS ARM64 applications, you can remove them and use the native JDK for the platform.
  • If you were using native modules with the -ft suffix when integrating the library, you need to remove the suffix. In the new release, a separate module for the FreeType version is not provided, as it is included in the default module.

List of changes 📝

Updated dependencies

Major

  • build(deps): bump org.lwjgl:lwjgl-bom from 3.3.3 to 3.3.4

Minor

  • build(deps): bump org.junit.jupiter:junit-jupiter-engine from 5.10.0 to 5.10.3
  • build(deps): bump org.junit.jupiter:junit-jupiter-api from 5.10.0 to 5.10.3
  • build(deps): bump actions/checkout from 3 to 4
  • build(deps): bump actions/setup-java from 3 to 4
  • build(deps): bump softprops/action-gh-release from 1 to 2

New Contributors 🎉

Full Changelog: v1.86.11...v1.86.12

ko-fi

v1.86.11

29 Sep 09:29
2cef96d
Compare
Choose a tag to compare

What's Changed

  • Fix glyph range size by @kusaanko in #196
  • Fix native libraries loading by stopping of creating tmpDir every time by @kusaanko in #197
    This effectively resolves the problem, when the binding created a lot of unneeded files in the temporal folder on every library usage.
  • Move LICENSE into META-INF folder by @SpaiR in #203
  • Add missing import in example in readme by @Trolobezka in #186
  • Bump org.lwjgl:lwjgl from 3.3.1 to 3.3.2 by @dependabot in #175
  • Bump org.lwjgl:lwjgl from 3.3.2 to 3.3.3 by @SpaiR in #205

New Contributors

Full Changelog: v1.86.10...v1.86.11

v1.86.10

10 Mar 07:22
f99f052
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.86.9...v1.86.10

v1.86.9

02 Mar 20:22
fd7d2f7
Compare
Choose a tag to compare

What's Changed

  • Added ability to set inputBuffer in ImGuiTextFilter in 4a5c587

Full Changelog: v1.86.8...v1.86.9

v1.86.8

01 Mar 10:12
618f687
Compare
Choose a tag to compare

What's Changed

  • Added inputTextWithHint with ability to use callback by @Boginsky in #159
  • Make all imgui.type classes to implement Comparable<> interface in 25fc8ba
  • Make classes from imgui.type which are represent numbers to extend Number class in d8f8f41
  • Fix inputText with resizable ImString crashes if the ImGuiInputTextCallback is null in bf92f04 (Fixes #158)

New Contributors

Full Changelog: v1.86.7...v1.86.8

v1.86.7

08 Feb 09:36
ae6765a
Compare
Choose a tag to compare

What's Changed

  • Fix nHasDragDropPayload SIGSEGV when payload doesn't exist by @Moulberry in #155
  • Added callback binding for InputText by @moheng233 in #156

New Contributors

Full Changelog: v1.86.6...v1.86.7