コード例 #1
0
ファイル: android-jni.cpp プロジェクト: deathsythe47/jaMME
jint EXPORT_ME
JAVA_FUNC(init)(JNIEnv* env, jobject thiz, jobject act, jobjectArray argsArray, jstring game_path_,
		jstring lib_path_, jstring app_path_, jstring abi, jstring abi_alt) {
//	getGlobalClasses(env);
//set_check_len(3840538);
	activity_ = &act;
	env_ = env;
	argv[0] = "quake";
	int argCount = (env)->GetArrayLength(argsArray);
	LOGI("argCount = %d", argCount);
	for (int i = 0; i < argCount; i++) {
		jstring string = (jstring)(env)->GetObjectArrayElement(argsArray, i);
		argv[argc] = (char *) (env)->GetStringUTFChars(string, 0);
		LOGI("arg = %s", argv[argc]);
		argc++;
	}
	game_path = (char *) (env)->GetStringUTFChars(game_path_, 0);
	lib_path = (char *) (env)->GetStringUTFChars(lib_path_, 0);
	app_path = (char *) (env)->GetStringUTFChars(app_path_, 0);
	android_abi = (char *) (env)->GetStringUTFChars(abi, 0);
	android_abi_alt = (char *) (env)->GetStringUTFChars(abi_alt, 0);
	LOGI("game_path = %s", getGamePath());
	LOGI("lib_path = %s", getLibPath());
	LOGI("app_path = %s", getAppPath());
	LOGI("android_abi = %s", getAndroidAbi());
	LOGI("android_abi_alt = %s", getAndroidAbiAlt());
	chdir(getGamePath());
	//self_crc_check((string(getLibPath()) + "/libjk3.so").c_str());
	PortableInit(argc, argv);
	/*	const char * p = env->GetStringUTFChars(graphics_dir,NULL);
	 graphicpath =  std::string(p);
	 initControls(640,-480,graphicpath.c_str(),(graphicpath + "/game_controls.xml").c_str());*/
	return 0;
}
コード例 #2
0
ファイル: android-jni.cpp プロジェクト: Nekrofage/OpenGames
jint EXPORT_ME
JAVA_FUNC(init) ( JNIEnv* env,	jobject thiz,jstring graphics_dir,jint mem_mb,jobjectArray argsArray,jint lowRes,jstring game_path_ )
{
#ifdef ANTI_HACK
	getGlobalClasses(env);
#endif

	env_ = env;
	/*
	if (lowRes)
		Android_SetGameResolution(320,240);
	else
		Android_SetGameResolution(640,400);
	 */
	//Android_SetGameResolution(320,200);
	Android_SetGameResolution(320,240);
	//Android_SetGameResolution(640,480);

	argv[0] = "quake";
	int argCount = (env)->GetArrayLength( argsArray);
	LOGI("argCount = %d",argCount);
	for (int i=0; i<argCount; i++) {
		jstring string = (jstring) (env)->GetObjectArrayElement( argsArray, i);
		argv[argc] = (char *)(env)->GetStringUTFChars( string, 0);
		LOGI("arg = %s",argv[argc]);
		argc++;
	}


	game_path = (char *)(env)->GetStringUTFChars( game_path_, 0);

	LOGI("game_path = %s",getGamePath());

	//Needed for ecwolf to run
	//home_env = "HOME=/" + game_path;
	//putenv(home_env.c_str());
	setenv("HOME", getGamePath(),1);

	putenv("TIMIDITY_CFG=../timidity.cfg");

	chdir(getGamePath());


	const char * p = env->GetStringUTFChars(graphics_dir,NULL);
	graphicpath =  std::string(p);



	initControls(android_screen_width,-android_screen_height,graphicpath.c_str());

	SDL_SetSwapBufferCallBack(frameControls);

	//Now done in java to keep context etc
	SDL_SwapBufferPerformsSwap(false);

	PortableInit(argc,argv); //Never returns!!

	return 0;
}
コード例 #3
0
jint EXPORT_ME
Java_com_beloko_opengames_prboom_NativeLib_init( JNIEnv* env,
		jobject thiz,jstring graphics_dir,jint mem_mb,jobjectArray argsArray,jint renderer,jstring doom_path_,jint snd_buffer_size )
{
	env_ = env;
	curRenderer = renderer;

	argv[0] = "quake";
	int argCount = (env)->GetArrayLength( argsArray);
	LOGI("argCount = %d",argCount);
	for (int i=0; i<argCount; i++) {
		jstring string = (jstring) (env)->GetObjectArrayElement( argsArray, i);
		argv[argc] = (char *)(env)->GetStringUTFChars( string, 0);
		LOGI("arg = %s",argv[argc]);
		argc++;
	}

	Android_SetGameResolution(320,240);

	ANDROID_SAMPLECOUNT = snd_buffer_size;

	doom_path = (char *)(env)->GetStringUTFChars( doom_path_, 0);

	LOGI("doom_path = %s",getDoomPath());

	chdir(getDoomPath());
	putenv("TIMIDITY_CFG=../timidity.cfg");

	PortableInit(argc,argv);

	const char * p = env->GetStringUTFChars(graphics_dir,NULL);
	graphicpath =  std::string(p);



	initControls(android_screen_width,-android_screen_height,graphicpath.c_str(),(graphicpath + "/prdoom.xml").c_str());

#ifdef ANTI_HACK
	getGlobalClasses(env_);
#endif

	if (renderer != REND_SOFT)
		SDL_SetSwapBufferCallBack(frameControls);

	if (renderer == REND_SOFT)// In soft mode SDL calls swap buffer, disable so it does not flicker
		SDL_SwapBufferPerformsSwap(false);

	return 0;
}