From 7fe31c3c77c37bfa656522be2ea45a583eb7707a Mon Sep 17 00:00:00 2001 From: SpaiR Date: Wed, 22 Jan 2020 22:01:48 +0300 Subject: [PATCH] Add native methods to ImDrawList - pushClipRect - pushClipRectFullScreen - popClipRect - pushTextureId - popTextureId - getClipRectMin - getClipRectMax --- .../src/main/java/imgui/ImDrawList.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/imgui-binding/src/main/java/imgui/ImDrawList.java b/imgui-binding/src/main/java/imgui/ImDrawList.java index 4367347..7c03900 100644 --- a/imgui-binding/src/main/java/imgui/ImDrawList.java +++ b/imgui-binding/src/main/java/imgui/ImDrawList.java @@ -16,6 +16,7 @@ public final class ImDrawList { public static final int TYPE_BACKGROUND = 1; public static final int TYPE_FOREGROUND = 2; + @SuppressWarnings({"FieldCanBeLocal", "unused"}) private final int drawListType; ImDrawList(final int drawListType) { @@ -60,6 +61,48 @@ public final class ImDrawList { getDrawList(env->GetIntField(object, drawListTypeID))->Flags = imDrawListFlags; */ + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public native void pushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PushClipRect(ImVec2(clipRectMinX, clipRectMinY), ImVec2(clipRectMaxX, clipRectMaxY)); + */ + + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public native void pushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY, boolean intersectWithCurrentClipRect); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PushClipRect(ImVec2(clipRectMinX, clipRectMinY), ImVec2(clipRectMaxX, clipRectMaxY), intersectWithCurrentClipRect); + */ + + public native void pushClipRectFullScreen(); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PushClipRectFullScreen(); + */ + + public native void popClipRect(); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PopClipRect(); + */ + + public native void pushTextureId(int textureId); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PushTextureID((ImTextureID)textureId); + */ + + public native void popTextureId(); /* + getDrawList(env->GetIntField(object, drawListTypeID))->PopTextureID(); + */ + + public native void getClipRectMin(ImVec2 dstImVec2); /* + Jni::ImVec2Cpy(env, getDrawList(env->GetIntField(object, drawListTypeID))->GetClipRectMin(), dstImVec2); + */ + + public native void getClipRectMax(ImVec2 dstImVec2); /* + Jni::ImVec2Cpy(env, getDrawList(env->GetIntField(object, drawListTypeID))->GetClipRectMax(), dstImVec2); + */ + // Primitives // - For rectangular primitives, "pMin" and "pMax" represent the upper-left and lower-right corners.