From 51cfb7ef3dc280021926cdd4139d36eefc4fb3b5 Mon Sep 17 00:00:00 2001 From: SpaiR Date: Sat, 27 Feb 2021 12:22:25 +0200 Subject: [PATCH] [API] Add ImGuiStyle#getColors to return float[][] Same is applied to NodeEditorStyle --- .../src/main/java/imgui/ImGuiStyle.java | 7 ++++++ .../imnodes/flag/ImNodesColorStyle.java | 1 + .../extension/nodeditor/NodeEditorStyle.java | 22 +++++++++++++++++++ .../nodeditor/flag/NodeEditorStyleColor.java | 1 + 4 files changed, 31 insertions(+) diff --git a/imgui-binding/src/main/java/imgui/ImGuiStyle.java b/imgui-binding/src/main/java/imgui/ImGuiStyle.java index 1b20b4e..60e0c38 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiStyle.java +++ b/imgui-binding/src/main/java/imgui/ImGuiStyle.java @@ -1,6 +1,7 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.flag.ImGuiCol; /** * You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). @@ -896,6 +897,12 @@ public final class ImGuiStyle extends ImGuiStructDestroyable { IMGUI_STYLE->CircleSegmentMaxError = circleSegmentMaxError; */ + public float[][] getColors() { + final float[][] colors = new float[ImGuiCol.COUNT][4]; + getColors(colors); + return colors; + } + /** * BINDING NOTICE: colors is a 2d array with sizes: [ImGuiCol_COUNT][4] */ diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java index e028aeb..912b8a5 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java @@ -20,4 +20,5 @@ public final class ImNodesColorStyle { public static final int BoxSelectorOutline = 13; public static final int GridBackground = 14; public static final int GridLine = 15; + public static final int COUNT = 16; } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java index 267b12a..bb78336 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java @@ -3,6 +3,7 @@ package imgui.extension.nodeditor; import imgui.ImVec2; import imgui.ImVec4; import imgui.binding.ImGuiStruct; +import imgui.extension.nodeditor.flag.NodeEditorStyleColor; public final class NodeEditorStyle extends ImGuiStruct { public NodeEditorStyle(final long ptr) { @@ -292,6 +293,27 @@ public final class NodeEditorStyle extends ImGuiStruct { IM_NODE_EDITOR_STYLE->GroupBorderWidth = groupBorderWidth; */ + public float[][] getColors() { + final float[][] colors = new float[NodeEditorStyleColor.COUNT][4]; + getColors(colors); + return colors; + } + + public native void getColors(float[][] buff); /* + for (int i = 0; i < ed::StyleColor_Count; i++) { + jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(buff, i); + jfloat* jBuffColor = env->GetFloatArrayElements(jColors, 0); + + jBuffColor[0] = IM_NODE_EDITOR_STYLE->Colors[i].x; + jBuffColor[1] = IM_NODE_EDITOR_STYLE->Colors[i].y; + jBuffColor[2] = IM_NODE_EDITOR_STYLE->Colors[i].z; + jBuffColor[3] = IM_NODE_EDITOR_STYLE->Colors[i].w; + + env->ReleaseFloatArrayElements(jColors, jBuffColor, 0); + env->DeleteLocalRef(jColors); + } + */ + /** * BINDING NOTICE: colors is a 2d array with sizes: [StyleColor_Count][4] */ diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java index ab41426..b1c9889 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java @@ -22,4 +22,5 @@ public final class NodeEditorStyleColor { public static final int FlowMarker = 15; public static final int GroupBg = 16; public static final int GroupBorder = 17; + public static final int COUNT = 18; }