Add ImGuiListClipper
Add ImGuiListClipper
This commit is contained in:
1 parent
c024de2b21
commit
7a0e9ec942
8 files changed
+155
-76
No files matched your search
@@ -1,23 +1,32 @@
|
||||
#include "jni_callbacks.h"
|
||||
|
||||
jmethodID jImListClipperCallbackAcceptMID;
|
||||
|
||||
jmethodID jImStrConsumerAcceptMID;
|
||||
jmethodID jImStrSupplierGetMID;
|
||||
|
||||
namespace Jni
|
||||
{
|
||||
void InitCallbacks(JNIEnv* env) {
|
||||
jclass jImStrConsumer = env->FindClass("imgui/callbacks/ImStrConsumer");
|
||||
jImStrConsumerAcceptMID = env->GetMethodID(jImStrConsumer, "accept", "(Ljava/lang/String;)V");
|
||||
void InitCallbacks(JNIEnv* env) {
|
||||
jclass jImListClipperCallback = env->FindClass("imgui/callbacks/ImListClipperCallback");
|
||||
jImListClipperCallbackAcceptMID = env->GetMethodID(jImListClipperCallback, "accept", "(I)V");
|
||||
|
||||
jclass jImStrSupplier = env->FindClass("imgui/callbacks/ImStrSupplier");
|
||||
jImStrSupplierGetMID = env->GetMethodID(jImStrSupplier, "get", "()Ljava/lang/String;");
|
||||
}
|
||||
jclass jImStrConsumer = env->FindClass("imgui/callbacks/ImStrConsumer");
|
||||
jImStrConsumerAcceptMID = env->GetMethodID(jImStrConsumer, "accept", "(Ljava/lang/String;)V");
|
||||
|
||||
void CallImStrConsumer(JNIEnv* env, jobject consumer, const char* str) {
|
||||
env->CallVoidMethod(consumer, jImStrConsumerAcceptMID, env->NewStringUTF(str));
|
||||
}
|
||||
jclass jImStrSupplier = env->FindClass("imgui/callbacks/ImStrSupplier");
|
||||
jImStrSupplierGetMID = env->GetMethodID(jImStrSupplier, "get", "()Ljava/lang/String;");
|
||||
}
|
||||
|
||||
jstring CallImStrSupplier(JNIEnv* env, jobject supplier) {
|
||||
return (jstring)env->CallObjectMethod(supplier, jImStrSupplierGetMID);
|
||||
}
|
||||
void CallImListClipperCallback(JNIEnv* env, jobject consumer, int index) {
|
||||
env->CallVoidMethod(consumer, jImListClipperCallbackAcceptMID, index);
|
||||
}
|
||||
|
||||
void CallImStrConsumer(JNIEnv* env, jobject consumer, const char* str) {
|
||||
env->CallVoidMethod(consumer, jImStrConsumerAcceptMID, env->NewStringUTF(str));
|
||||
}
|
||||
|
||||
jstring CallImStrSupplier(JNIEnv* env, jobject supplier) {
|
||||
return (jstring)env->CallObjectMethod(supplier, jImStrSupplierGetMID);
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,13 @@
|
||||
|
||||
namespace Jni
|
||||
{
|
||||
void InitCallbacks(JNIEnv* env);
|
||||
void InitCallbacks(JNIEnv* env);
|
||||
|
||||
void CallImStrConsumer(JNIEnv* env, jobject consumer, const char* str);
|
||||
jstring CallImStrSupplier(JNIEnv* env, jobject supplier);
|
||||
void CallImListClipperCallback(JNIEnv* env, jobject consumer, int index);
|
||||
|
||||
void CallImStrConsumer(JNIEnv* env, jobject consumer, const char* str);
|
||||
|
||||
jstring CallImStrSupplier(JNIEnv* env, jobject supplier);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -12,58 +12,58 @@ static JavaVM* jvm;
|
||||
|
||||
namespace Jni
|
||||
{
|
||||
void InitCommon(JNIEnv* env) {
|
||||
env->GetJavaVM(&jvm);
|
||||
void InitCommon(JNIEnv* env) {
|
||||
env->GetJavaVM(&jvm);
|
||||
|
||||
jclass jImVec2Class = env->FindClass("imgui/ImVec2");
|
||||
imVec2XID = env->GetFieldID(jImVec2Class, "x", "F");
|
||||
imVec2YID = env->GetFieldID(jImVec2Class, "y", "F");
|
||||
jclass jImVec2Class = env->FindClass("imgui/ImVec2");
|
||||
imVec2XID = env->GetFieldID(jImVec2Class, "x", "F");
|
||||
imVec2YID = env->GetFieldID(jImVec2Class, "y", "F");
|
||||
|
||||
jclass jImVec4Class = env->FindClass("imgui/ImVec4");
|
||||
imVec4XID = env->GetFieldID(jImVec4Class, "x", "F");
|
||||
imVec4YID = env->GetFieldID(jImVec4Class, "y", "F");
|
||||
imVec4ZID = env->GetFieldID(jImVec4Class, "z", "F");
|
||||
imVec4WID = env->GetFieldID(jImVec4Class, "w", "F");
|
||||
}
|
||||
jclass jImVec4Class = env->FindClass("imgui/ImVec4");
|
||||
imVec4XID = env->GetFieldID(jImVec4Class, "x", "F");
|
||||
imVec4YID = env->GetFieldID(jImVec4Class, "y", "F");
|
||||
imVec4ZID = env->GetFieldID(jImVec4Class, "z", "F");
|
||||
imVec4WID = env->GetFieldID(jImVec4Class, "w", "F");
|
||||
}
|
||||
|
||||
JNIEnv* GetEnv() {
|
||||
JNIEnv* env;
|
||||
jint res = jvm->GetEnv((void**)(&env), JNI_VERSION_1_8);
|
||||
assert(res == JNI_OK);
|
||||
return env;
|
||||
}
|
||||
JNIEnv* GetEnv() {
|
||||
JNIEnv* env;
|
||||
jint res = jvm->GetEnv((void**)(&env), JNI_VERSION_1_8);
|
||||
assert(res == JNI_OK);
|
||||
return env;
|
||||
}
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2* src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec2XID, src->x);
|
||||
env->SetFloatField(dst, imVec2YID, src->y);
|
||||
}
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2* src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec2XID, src->x);
|
||||
env->SetFloatField(dst, imVec2YID, src->y);
|
||||
}
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2 src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec2XID, src.x);
|
||||
env->SetFloatField(dst, imVec2YID, src.y);
|
||||
}
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2 src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec2XID, src.x);
|
||||
env->SetFloatField(dst, imVec2YID, src.y);
|
||||
}
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2* dst) {
|
||||
dst->x = env->GetFloatField(src, imVec2XID);
|
||||
dst->y = env->GetFloatField(src, imVec2YID);
|
||||
}
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2* dst) {
|
||||
dst->x = env->GetFloatField(src, imVec2XID);
|
||||
dst->y = env->GetFloatField(src, imVec2YID);
|
||||
}
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2 dst) {
|
||||
dst.x = env->GetFloatField(src, imVec2XID);
|
||||
dst.y = env->GetFloatField(src, imVec2YID);
|
||||
}
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2 dst) {
|
||||
dst.x = env->GetFloatField(src, imVec2XID);
|
||||
dst.y = env->GetFloatField(src, imVec2YID);
|
||||
}
|
||||
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4* src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec4XID, src->x);
|
||||
env->SetFloatField(dst, imVec4YID, src->y);
|
||||
env->SetFloatField(dst, imVec4ZID, src->z);
|
||||
env->SetFloatField(dst, imVec4WID, src->w);
|
||||
}
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4* src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec4XID, src->x);
|
||||
env->SetFloatField(dst, imVec4YID, src->y);
|
||||
env->SetFloatField(dst, imVec4ZID, src->z);
|
||||
env->SetFloatField(dst, imVec4WID, src->w);
|
||||
}
|
||||
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4 src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec4XID, src.x);
|
||||
env->SetFloatField(dst, imVec4YID, src.y);
|
||||
env->SetFloatField(dst, imVec4ZID, src.z);
|
||||
env->SetFloatField(dst, imVec4WID, src.w);
|
||||
}
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4 src, jobject dst) {
|
||||
env->SetFloatField(dst, imVec4XID, src.x);
|
||||
env->SetFloatField(dst, imVec4YID, src.y);
|
||||
env->SetFloatField(dst, imVec4ZID, src.z);
|
||||
env->SetFloatField(dst, imVec4WID, src.w);
|
||||
}
|
||||
}
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
namespace Jni
|
||||
{
|
||||
void InitCommon(JNIEnv* env);
|
||||
void InitCommon(JNIEnv* env);
|
||||
|
||||
JNIEnv* GetEnv();
|
||||
JNIEnv* GetEnv();
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2* src, jobject dst);
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2 src, jobject dst);
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2* src, jobject dst);
|
||||
void ImVec2Cpy(JNIEnv* env, ImVec2 src, jobject dst);
|
||||
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2* dst);
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2 dst);
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2* dst);
|
||||
void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2 dst);
|
||||
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4* src, jobject dst);
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4 src, jobject dst);
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4* src, jobject dst);
|
||||
void ImVec4Cpy(JNIEnv* env, ImVec4 src, jobject dst);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user