From 5dcbcf0f44ab3f242a21519ae160014db49a31f7 Mon Sep 17 00:00:00 2001 From: Igrium Date: Wed, 22 Jul 2026 09:40:15 -0700 Subject: [PATCH 1/2] fixed an issue where glyph ranges were getting parsed as signed integers, breaking any icon with an index over the 16-bit integer limit --- .../src/main/java/imgui/ImFontGlyphRangesBuilder.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/imgui-binding/src/main/java/imgui/ImFontGlyphRangesBuilder.java b/imgui-binding/src/main/java/imgui/ImFontGlyphRangesBuilder.java index b9f85bac..f297e7a1 100644 --- a/imgui-binding/src/main/java/imgui/ImFontGlyphRangesBuilder.java +++ b/imgui-binding/src/main/java/imgui/ImFontGlyphRangesBuilder.java @@ -39,7 +39,8 @@ public void addText(final String text) { } /** - * Copies all given ranges to resulting ranges + * Copies all given ranges to resulting ranges. + * Short values are treated as unsigned 16-bit integers. */ public void addRanges(final short[] ranges) { for (int i = 0; i < ranges.length; i += 2) { @@ -47,7 +48,9 @@ public void addRanges(final short[] ranges) { break; } - for (int k = ranges[i]; k <= ranges[i + 1]; k++) { + final int start = ranges[i] & 0xFFFF; + final int end = ranges[i + 1] & 0xFFFF; + for (int k = start; k <= end; k++) { addChar((char) k); } } From b10774b970bd732fb96b361a951aea962ae1d08a Mon Sep 17 00:00:00 2001 From: Igrium Date: Wed, 22 Jul 2026 09:59:03 -0700 Subject: [PATCH 2/2] my dumbass forgot to generate the bindings from the glyph range fix --- .../src/generated/java/imgui/ImFontGlyphRangesBuilder.java | 7 +++++-- .../java/imgui/extension/texteditor/TextEditor.java | 6 ------ .../imgui/extension/texteditor/TextEditorLanguage.java | 5 ----- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java b/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java index b9f85bac..f297e7a1 100644 --- a/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java +++ b/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java @@ -39,7 +39,8 @@ public void addText(final String text) { } /** - * Copies all given ranges to resulting ranges + * Copies all given ranges to resulting ranges. + * Short values are treated as unsigned 16-bit integers. */ public void addRanges(final short[] ranges) { for (int i = 0; i < ranges.length; i += 2) { @@ -47,7 +48,9 @@ public void addRanges(final short[] ranges) { break; } - for (int k = ranges[i]; k <= ranges[i + 1]; k++) { + final int start = ranges[i] & 0xFFFF; + final int end = ranges[i + 1] & 0xFFFF; + for (int k = start; k <= end; k++) { addChar((char) k); } } diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java index 1cb067b5..445fbe4a 100644 --- a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java @@ -2,16 +2,10 @@ import imgui.ImVec2; import imgui.binding.ImGuiStructDestroyable; - - - - - import imgui.extension.texteditor.flag.TextEditorColor; import imgui.extension.texteditor.flag.TextEditorScroll; import imgui.internal.ImGuiContext; - public final class TextEditor extends ImGuiStructDestroyable { public TextEditor() { super(); diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguage.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguage.java index 401d75f1..b8b759ab 100644 --- a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguage.java +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguage.java @@ -2,11 +2,6 @@ import imgui.binding.ImGuiStruct; - - - - - public final class TextEditorLanguage extends ImGuiStruct { public TextEditorLanguage(final long ptr) { super(ptr);