From 58712fb3a386ca6327b71218bab6e4b218da36a8 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Mon, 26 Jun 2023 11:18:52 +0200 Subject: GlueGen JavaCallback: Add JavaCallback.methodSignature to JNI arg-list and pass value at invocation, allowing to find the jmethodID of callback --- .../com/jogamp/gluegen/JavaMethodBindingEmitter.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java b/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java index e7903fe..74e18e5 100644 --- a/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java +++ b/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java @@ -410,6 +410,14 @@ public class JavaMethodBindingEmitter extends FunctionEmitter { unit.emit(", int " + offsetArgName(i)); } } + if( hasModifier(JavaMethodBindingEmitter.NATIVE) && + null != cfg.bindingToJavaCallbackMap.get(binding.getName()) ) { + if (needComma) { + unit.emit(", "); + } + unit.emit("String callbackSignature"); + ++numEmitted; + } return numEmitted; } @@ -725,6 +733,14 @@ public class JavaMethodBindingEmitter extends FunctionEmitter { needComma = true; ++numArgsEmitted; } + final JavaConfiguration.JavaCallback jcb = cfg.bindingToJavaCallbackMap.get(binding.getName()); + if( null != jcb ) { + if (needComma) { + unit.emit(", "); + } + unit.emit("\"" + jcb.methodSignature + "\""); + ++numArgsEmitted; + } return numArgsEmitted; } -- cgit v1.2.3