Changelog
This documents notable changes in CImGui.jl. The format is based on Keep a Changelog.
[v3.0.0] - 2024-09-11
Added
HelpMarker()
, a port of the same function from the Dear ImGui demo ([#139]).
Changed
Simplified the Makie integration by requiring the latest GLMakie version ([#142]).
Breaking: We upgraded to Dear ImGui 1.91.1. All the breaking changes listed there and for Dear ImGui 1.91.0 apply to this release.
Breaking: We now generate the high-level Julia wrappers automatically ([#141]), which is far easier to maintain but it's possible that some functions will have changed signatures or been renamed. Here's a (non-exhaustive) list of known changes:
Combo()
no longer requires passing the length ofitems
.- The old
Value*()
functions are now just namedValue()
and use dispatch to select the right ImGui function to call. - The
Combo()
andListBox()
methods that allowed passing a function to generate the items are not wrapped. They may be wrapped in the future.
If you encounter any other breakages please open an issue, it could be a bug in the wrappers.
Possibly breaking:
render()
would previously run on whatever task and thread it was called on, but with multiple threads that could cause issues if the task migrated. It now defaults to being pinned to thread 1 and there's a couple new keyword arguments,spawn
andwait
, to control the task pinning and wait behaviour ([#138]). This is technically breaking because any old code that set uprender()
to run on a specific thread by task pinning won't work, to get back the old behaviour passspawn=false
.
[v2.3.0] - 2024-08-06
Added
- The Makie integration now supports displaying rendering statistics, and has a context menu to change simple plot settings ([#137]). This will be made more customizeable in the future.
Fixed
- Fixed a number of bugs in the Makie integration ([#137]).
Changed
Upon loading the Makie extension, the default Makie theme will be set to one that matches ImGui's default dark theme ([#137]).
The GLFW/OpenGL renderloop will now
yield()
after every drawing iteration ([#137]). This makes it play a little nicer with Julia's event loop.Breaking: Previously
MakieFigure()
would return aBool
to indicate if the figure was rendered or not, now it returnsnothing
([#137]).Reminder that the Makie integration is not yet covered by semver.
[v2.2.0] - 2024-08-02
Added
- Support for more GLMakie controls, and a tooltip for each figure by default ([#134]).
[v2.1.0] - 2024-07-29
Added
- The OpenGL version can now be set with
render()
. - Experimental Makie integration ([#133]).
[v2.0.0] - 2024-06-27
Note: this release has particularly many breaking changes, please file an issue or submit a pull request if something isn't working.
Added
- A renderloop for the OpenGL/GLFW backend has been added to CImGui, so it's no longer necessary to copy and paste the examples around.
- The renderloop also integrates with the new ImGuiTestEngine.jl to make it possible to write automated tests.
Changed
- CImGui.jl now uses semantic versioning to make development easier. This release is based on Dear ImGui 1.90.8.
- Breaking: LibCImGui.jl has been merged into
CImGui.lib
, again for the sake of ease of development. - Breaking: The custom backends that we developed, ImGuiOpenGLBackend.jl and ImGuiGLFWBackend.jl, have been deprecated in favour of using ImGui's official backends. With this change we also dropped support for OpenGL 2, but purely out of laziness. If you need OpenGL 2 let us know and we can build and ship the official OpenGL 2 backend.
- Breaking: The built-in renderloop is implemented using package extensions, which are only available on Julia 1.9+. Hence the new minimum required Julia version is 1.9.
Deprecated
GetKeyIndex()
has been deprecated upstream. It will be removed in a future release.
[v1.89.1] - 2024-05-19
Fixed
- Fixed the implementations of SetScrollX() and SetScrollY() ([#115]).