Skip to content

Releases: SpaiR/imgui-java

v1.83.0

04 Jun 13:06
Compare
Choose a tag to compare
  • Updated Dear ImGui to v1.83 [0ed891f];
  • Dropped support of 32bit native binaries;
  • Added ImFontGlyphRangesBuilder (#51) [@abvadabra];
  • Added ImGuizmo API (#54) [@AAstroPhysiCS];
  • imgui-app.jar now contains all needed dependecies to run Dear ImGui Application.
    Previously it was still needed to add native libs and binding/lwjgl3 modules as well.

Consider reading the official changelog to see other library changes.

v1.82.2

12 Apr 10:59
Compare
Choose a tag to compare
  • Fixed Maven artifacts for native libraries with FreeType support;
  • imgui-app for Windows is now uses a FreeType version of library;
    As was said: it's safe to do that, since dll's are compiled fully statically.

v1.82.1

04 Apr 10:04
Compare
Choose a tag to compare
  • Updated ImGuiImplGl3 to the latest Dear ImGui implementation; [d1e264a]
  • Updated ImGuiImplGlfw to the latest Dear ImGui implementation; [e8678ef]
    Now it will check GLFW version and ignore features, which are not available for user.
  • FreeType font renderer is now optional, read FreeType section for more info.

v1.82.0

28 Mar 10:01
Compare
Choose a tag to compare
  • Updated Dear ImGui to v1.82 [0ed891f];
  • Allow null to be passed as the shortcut param to MenuItem (#35) [@sh54].

Consider reading the official changelog to see other library changes.

v1.81.2

09 Mar 16:53
Compare
Choose a tag to compare

Refactored Drag & Drop API

The original Dear ImGui uses raw byte arrays as a payload data. This is fine for C++, yet unacceptable for Java.
Binding has a method setDragDropPayloadObject(), which is able to take a Java object as a payload.
Now it's the only available method and it was renamed to setDragDropPayload().

API itself was extended, so now you can pass any payload, without passing String data type.
Binding will take payload class as an identifier. For example, now you can write:

static CustomClass PAYLOAD = new CustomClass();

ImGui.setDragDropPayload(PAYLOAD);
...and later...
CustomClass payload = ImGui.acceptDragDropPayload(CustomClass.class);

Binding will do a proper typecasting automatically.

v1.81.1

27 Feb 15:49
Compare
Choose a tag to compare
  • Removed lazy-created structs. This fixes the problem which addressed to situations, when Dear ImGui context dropped, but underlying pointer for structs didn't update;
  • Added #isValidPtr()/#isNotValidPtr() to verify object uses the valid pointer;
  • ImVec2/4 and type classes are now has #set(value) method, where value is another object of that class.
    Fox example: imFloat.set(new ImFloat()) or imVec2.set(new ImVec2());
  • Added ImString#clear method to drop string content;
  • Binding API now can return ImVec2/ImVec4 directly, without "dst" argument. Under the hood, such methods will create a new object and fill it with data;
  • Added ImGuiStyle#getColors() to return float[ImGuiCol.COUNT][4] array with GUI colors;
  • Fixed ImGui#getDragDropPayloadObject() threw exception if there were no payload.

v1.81.0

20 Feb 12:22
Compare
Choose a tag to compare
  • Updated Dear ImGui to v1.81 [08bf84a];
    Breaking imgui-java changes:
    • ImGuiFreeType class has been deleted. Dear ImGui simplified the process of enabling freetype font renderer. Now, if you are using precompiled libraries, it is enabled by default;
  • Added ImDrawList methods: PrimReserve, PrimUnreserve, PrimRect, PrimRectUV, PrimQuadUV, PrimWriteVtx, PrimVtx;
  • Added ImFont methods: FindGlyph, FindGlyphNoFallback, GetCharAdvance, IsLoaded, GetDebugName, CalcTextSizeA, CalcWordWrapPositionA, RenderChar, RenderText;
  • Updated ImNodes to 868dda60d5.

Consider reading the official changelog to see other API changes.

v1.80-1.5.0

25 Jan 22:18
Compare
Choose a tag to compare
  • Updated Dear ImGui to v1.80;
  • Added new imgui-app module. More info below.
  • Added two native extensions: ImNodes and imgui-node-editor (#29) [@abvadabra];
  • Example was revamped. It was simplified, remade to use new imgui-app module and was moved into its own module. Has example of extensions usage as well;
  • Added several new methods:
    • ImGui#inputTextWithHint();
    • ImColor#hslToColor;
    • ImGui#calcItemSize (internal API);
    • ImGui#splitterBehavior (internal API);

ImGui App Module (Application abstration)

New module provides an abstraction layer to create ImGui applications. It hides all low-level routine. Every life-cycle method could be overriden with custom logic, so you can extend class in the way you need. Or just keep it as it is, if need nothing specific. Simple application may look like this:

import imgui.ImGui;
import imgui.app.Application;

public class Main extends Application {
    @Override
    protected void configure(Configuration config) {
        config.setTitle("Dear ImGui is Awesome!");
    }

    @Override
    public void process() {
        ImGui.text("Hello, World!");
    }

    public static void main(String[] args) {
        launch(new Main());
    }
}

v1.79-1.4.0

17 Oct 10:45
Compare
Choose a tag to compare
  • Updated Dear ImGui to v1.79
  • Fixed four of the ImGuiTreeNodeFlags that were all set to Framed (#26) [@silentorb]
  • Added clone() method to ImRect class

Build instruction update

Readme now has a How to Build Native Libraries section. It shows how to build natives libraries for all OS, so everyone can play with it.

v1.78-1.3.0

06 Oct 12:08
Compare
Choose a tag to compare
  • Binding will extract libraries from classpath into unique folder
  • Added ImGuiTextFilter API