| @@ -34,12 +34,50 @@ Java_org_zoy_LolEngine_LolRenderer_nativeInit(JNIEnv* env) | |||||
| new DebugFps(20, 20); | new DebugFps(20, 20); | ||||
| } | } | ||||
| static void TestPng(JNIEnv *env) | |||||
| { | |||||
| jclass cls = env->FindClass("org/zoy/LolEngine/LolActivity"); | |||||
| jmethodID mid; | |||||
| /* Open image from resources */ | |||||
| mid = env->GetStaticMethodID(cls, "openImage", "(Ljava/lang/String;)V"); | |||||
| jstring name = env->NewStringUTF("ascii"); | |||||
| env->CallStaticVoidMethod(cls, mid, name); | |||||
| env->DeleteLocalRef(name); | |||||
| /* Get image dimensions */ | |||||
| mid = env->GetStaticMethodID(cls, "getWidth", "()I"); | |||||
| jint w = env->CallStaticIntMethod(cls, mid); | |||||
| mid = env->GetStaticMethodID(cls, "getHeight", "()I"); | |||||
| jint h = env->CallStaticIntMethod(cls, mid); | |||||
| __android_log_print(ANDROID_LOG_INFO, "LOL", "Loaded PNG %dx%d", w, h); | |||||
| /* Get pixels */ | |||||
| jintArray arr = env->NewIntArray(w * h * 4); | |||||
| mid = env->GetStaticMethodID(cls, "getPixels", "([I)V"); | |||||
| env->CallStaticVoidMethod(cls, mid, arr); | |||||
| /* Do something with the pixels */ | |||||
| jint *data = env->GetIntArrayElements(arr, 0); | |||||
| __android_log_print(ANDROID_LOG_INFO, "LOL", "pixels %08x %08x %08x %08x", | |||||
| (unsigned)data[0], (unsigned)data[1], | |||||
| (unsigned)data[2], (unsigned)data[3]); | |||||
| env->ReleaseIntArrayElements(arr, data, 0); | |||||
| env->DeleteLocalRef(arr); | |||||
| /* Free image */ | |||||
| mid = env->GetStaticMethodID(cls, "closeImage", "()V"); | |||||
| env->CallStaticVoidMethod(cls, mid); | |||||
| } | |||||
| extern "C" void | extern "C" void | ||||
| Java_org_zoy_LolEngine_LolRenderer_nativeResize(JNIEnv* env, jobject thiz, | Java_org_zoy_LolEngine_LolRenderer_nativeResize(JNIEnv* env, jobject thiz, | ||||
| jint w, jint h) | jint w, jint h) | ||||
| { | { | ||||
| __android_log_print(ANDROID_LOG_INFO, "LOL", "resize w=%d h=%d", w, h); | __android_log_print(ANDROID_LOG_INFO, "LOL", "resize w=%d h=%d", w, h); | ||||
| Video::Setup(w, h); | Video::Setup(w, h); | ||||
| TestPng(env); | |||||
| } | } | ||||
| extern "C" void | extern "C" void | ||||