Browse Source

Added JNI wrapping for Float values

Added necessary JNI wrappers for float signature functions.
Abe _King_ 7 years ago
parent
commit
31e3b76c55
3 changed files with 34 additions and 0 deletions
  1. 4 0
      modules/jni/jni.monkey2
  2. 26 0
      modules/jni/native/jni_glue.cpp
  3. 4 0
      modules/jni/native/jni_glue.h

+ 4 - 0
modules/jni/jni.monkey2

@@ -76,6 +76,8 @@ Class JNIEnv Extends Void
 	Method CallBooleanMethod:Bool( obj:jobject,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallBooleanMethod"
 
 	Method CallIntMethod:Int( obj:jobject,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallIntMethod"
+		
+	Method CallFloatMethod:Float( obj:jobject,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallFloatMethod"
 
 	Method CallObjectMethod:jobject( obj:jobject,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallObjectMethod"
 	
@@ -90,6 +92,8 @@ Class JNIEnv Extends Void
 	Method CallStaticBooleanMethod:Bool( clazz:jclass,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallStaticBooleanMethod"
 
 	Method CallStaticIntMethod:int( clazz:jclass,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallStaticIntMethod"
+		
+	Method CallStaticFloatMethod:Float( clazz:jclass,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallStaticFloatMethod"
 
 	Method CallStaticStringMethod:String( clazz:jclass,methodID:jmethodID,args:Variant[] ) Extension="bbJNI::CallStaticStringMethod"
 	

+ 26 - 0
modules/jni/native/jni_glue.cpp

@@ -180,6 +180,19 @@ namespace bbJNI{
 		return r;
 	}
 
+	bbFloat CallFloatMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args ){
+		
+		jvalue *jargs=makeArgs( env,args );
+		
+		bbFloat r=env->CallFloatMethodA( obj,methodID,jargs );
+		
+		DeleteStrRefs( env );
+		
+		delete[] jargs;
+		
+		return r;
+	}
+
 	bbString CallStringMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args ){
 		
 		jvalue *jargs=makeArgs( env,args );
@@ -246,6 +259,19 @@ namespace bbJNI{
 		
 		return r;
 	}
+
+	bbFloat CallStaticFloatMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args ){
+		
+		jvalue *jargs=makeArgs( env,args );
+		
+		bbFloat r=env->CallStaticFloatMethodA( clazz,methodID,jargs );
+		
+		DeleteStrRefs( env );
+		
+		delete[] jargs;
+		
+		return r;
+	}
 	
 	bbString CallStaticStringMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args ){
 		

+ 4 - 0
modules/jni/native/jni_glue.h

@@ -18,6 +18,8 @@ namespace bbJNI{
 	bbBool CallBooleanMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args );
 
 	bbInt CallIntMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args );
+	
+	bbFloat CallFloatMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args );
 
 	bbString CallStringMethod( JNIEnv *env,jobject obj,jmethodID methodID,bbArray<bbVariant> args );
 
@@ -29,6 +31,8 @@ namespace bbJNI{
 	bbBool CallStaticBooleanMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args );
 
 	bbInt CallStaticIntMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args );
+	
+	bbFloat CallStaticFloatMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args );
 
 	bbString CallStaticStringMethod( JNIEnv *env,jclass clazz,jmethodID methodID,bbArray<bbVariant> args );