Releases: SpaiR/imgui-java
v1.83.0
- 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
v1.82.1
- 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
v1.81.2
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
- 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())
orimVec2.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 returnfloat[ImGuiCol.COUNT][4]
array with GUI colors; - Fixed
ImGui#getDragDropPayloadObject()
threw exception if there were no payload.
v1.81.0
- Updated Dear ImGui to v1.81 [08bf84a];
Breakingimgui-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
- 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
- Updated Dear ImGui to v1.79
- Fixed four of the ImGuiTreeNodeFlags that were all set to Framed (#26) [@silentorb]
- Added
clone()
method toImRect
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
- Binding will extract libraries from classpath into unique folder
- Added ImGuiTextFilter API