Game Development Reference
In-Depth Information
jclass jNativesCls;
// Video buffer java callback
jmethodID jSendImageMethod;
// Sound callback
jmethodID jStartSoundMethod;
// Java image pixels: int ARGB
jintArray jImage;
int iSize;
// Native game loop
extern int wolf_main(int argc, char **argv);
JNIEXPORT jint JNICALL Java_wolf_jni_Natives_WolfMain
(JNIEnv * env, jclass cls, jobjectArray jargv)
{
(*env)->GetJavaVM(env, &g_VM);
// Extract char ** args from Java array
jsize clen = getArrayLen(env, jargv);
// convert Java String[] arguments to C char **
char * args[(int)clen];
int i;
jstring jrow;
for (i = 0; i < clen; i++)
{
jrow = (jstring)(*env)->GetObjectArrayElement(env, jargv, i);
const char *row = (*env)->GetStringUTFChars(env, jrow, 0);
args[i] = malloc( strlen(row) + 1);
strcpy (args[i], row);
// free java string jrow
(*env)->ReleaseStringUTFChars(env, jrow, row);
}
/*
* Load the Java native interface class wolf.jni.natives
*/
jNativesCls = (*env)->FindClass(env, "wolf/jni/Natives");
if ( jNativesCls == 0 ) {
printf("Unable to find class: wolf/jni/Natives");
return -1;
}
// Load wolf.jni.Natives.OnImageUpdate(int[] video, int x, int y, int w, int h)
jSendImageMethod = (*env)->GetStaticMethodID(env, jNativesCls
Search WWH ::




Custom Search