Sfoglia il codice sorgente

- move native jme-ios.m file to plugin for now

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9924 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
nor..67 13 anni fa
parent
commit
7bb5e9bfdd
1 ha cambiato i file con 0 aggiunte e 107 eliminazioni
  1. 0 107
      engine/src/ios/jme-ios.m

+ 0 - 107
engine/src/ios/jme-ios.m

@@ -1,107 +0,0 @@
-#include <jni.h>
-#import <UIKit/UIKit.h>
-
-
-#define JNIEXPORT __attribute__ ((visibility("default"))) \
-__attribute__ ((used))
-
-BOOL checkJNIException(JNIEnv *e){
-    if ((*e)->ExceptionCheck(e)) {
-        (*e)->ExceptionDescribe(e);
-        (*e)->ExceptionClear(e);
-        return YES;
-    }
-    return NO;
-}
-
-#ifndef _Included_com_jme3_system_ios_IosImageLoader
-#define _Included_com_jme3_system_ios_IosImageLoader
-#endif
-
-JNIEXPORT jobject JNICALL
-Java_com_jme3_system_ios_IosImageLoader_loadImageData(JNIEnv* e, jclass obj, jobject imageFormat, jobject inputStream){
-    // prepare java classes and method pointers
-    jclass imageClass = (*e)->FindClass(e, "com.jme3.texture.Image");
-    jclass inputStreamClass = (*e)->FindClass(e, "java.io.InputStream");
-    jclass bufferUtilsClass = (*e)->FindClass(e, "com.jme3.util.BufferUtils");
-    jmethodID imageConstructor = (*e)->GetMethodID(e, imageClass, "<init>", "(Lcom/jme3/texture/Image$Format;IILjava/nio/ByteBuffer;)V");
-    jmethodID readMethod = (*e)->GetMethodID(e, inputStreamClass, "read", "([B)I");
-    jmethodID newBufferMethod = (*e)->GetStaticMethodID(e, bufferUtilsClass, "createByteBuffer", "(I)Ljava/nio/ByteBuffer;");
-    if (checkJNIException(e)) {
-        return nil;
-    }
-    // read data from inputstream via byteArray to NSMutableData
-    jbyteArray tempArray = (*e)->NewByteArray (e, 1000);
-    NSMutableData *inData = [[NSMutableData alloc] init];
-    jint size = (*e)->CallIntMethod(e, inputStream, readMethod, tempArray);
-    if (checkJNIException(e)) {
-        [inData release];
-        return nil;
-    }
-    while (size != -1) {
-        jbyte *data;
-        data = (*e)->GetByteArrayElements(e, tempArray, false);
-        [inData appendBytes:data length:size];
-        (*e)->ReleaseByteArrayElements(e, tempArray, data, JNI_ABORT);
-        size = (*e)->CallIntMethod(e, inputStream, readMethod, tempArray);
-        if (checkJNIException(e)) {
-            [inData release];
-            return nil;
-        }
-    }
-    (*e)->DeleteLocalRef(e, tempArray);
-    if (checkJNIException(e)) {
-        [inData release];
-        return nil;
-    }
-    // decode image data
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    UIImage* inputImage = [UIImage imageWithData:inData];
-    if(inputImage == nil){
-        [inData release];
-        [pool release];
-        return nil;
-    }
-    CGImageRef inImage = [inputImage CGImage];
-    int ht = CGImageGetWidth(inImage);
-    int wdth = CGImageGetHeight(inImage);
-    // NewDirectByteBuffer seems to fail? -> Creating ByteBuffer in java
-    jobject nativeBuffer = (*e)->CallStaticObjectMethod(e, bufferUtilsClass, newBufferMethod, ht*wdth*4);
-    if (checkJNIException(e)) {
-        [inData release];
-        [pool release];
-        return nil;
-    }
-    void *rawData = (*e)->GetDirectBufferAddress(e, nativeBuffer);
-    NSUInteger bytesPerRowImg = CGImageGetBytesPerRow(inImage);
-    NSUInteger bitsPerComponentImg = CGImageGetBitsPerComponent(inImage);
-    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
-    CGContextRef context = CGBitmapContextCreate(rawData,ht,wdth,bitsPerComponentImg,bytesPerRowImg,colorSpace,kCGImageAlphaPremultipliedLast| kCGBitmapByteOrder32Big);
-    CGColorSpaceRelease(colorSpace);
-    CGContextDrawImage(context,CGRectMake(0,0,wdth,ht), inImage);
-    CGContextRelease(context);
-    [inData release];
-    [pool release];
-    //create image
-    jobject imageObject = (*e)->NewObject(e, imageClass, imageConstructor, imageFormat, wdth, ht, nativeBuffer);
-    return imageObject;
-}
-
-#ifndef _Included_com_jme3_system_ios_JmeIosSystem
-#define _Included_com_jme3_system_ios_JmeIosSystem
-#endif
-
-JNIEXPORT void JNICALL
-Java_com_jme3_system_ios_JmeIosSystem_showDialog(JNIEnv* e, jobject c, jstring text) {
-    const char* chars = (*e)->GetStringUTFChars(e, text, 0);
-    NSString* string = [[NSString alloc] initWithUTF8String : chars];
-    (*e)->ReleaseStringUTFChars(e, text, chars);
-    UIAlertView *alert = [[UIAlertView alloc] initWithTitle : @"Error"
-                                                    message : string
-                                                   delegate : nil
-                                          cancelButtonTitle : @"OK"
-                                          otherButtonTitles : nil];
-    [alert show];
-    [alert release];
-    [string release];
-}