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
- Refactor GenerateAst task by @SpaiR in #243
- Ast generator stores more info by @SpaiR in #245
- Add setup-gradle action by @SpaiR in #255
Updated dependencies
Major
- Dear ImGui from 1.86 to 1.87
- ImPlot from 0.12 to 0.13
Minor
New Contributors π
Full Changelog: v1.86.12...v1.87.0