int main (int argc, char *argv[]) { signal(SIGFPE, SIG_IGN); #ifdef __ANDROID__ Sys_AllowProfiling(true); #endif com_argc = argc; com_argv = (const char **)argv; Sys_ProvideSelfFD(); // COMMANDLINEOPTION: sdl: -noterminal disables console output on stdout if(COM_CheckParm("-noterminal")) outfd = -1; // COMMANDLINEOPTION: sdl: -stderr moves console output to stderr else if(COM_CheckParm("-stderr")) outfd = 2; else outfd = 1; #ifndef WIN32 fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY); #endif // we don't know which systems we'll want to init, yet... SDL_Init(0); Host_Main(); return 0; }
/* ===================================================== JNI callbacks On application start, setenv and onNativeResize called from ui thread to set up engine configuration nativeInit called directly from engine thread and will not return until exit. These functions may be called from other threads at any time: nativeKey nativeTouch onNativeResize nativeString nativeSetPause ===================================================== */ JAVA_EXPORT int Java_in_celest_xash3d_XashActivity_nativeInit(JNIEnv* env, jclass cls, jobject array) { int i; int argc; int status; /* Prepare the arguments. */ int len = (*env)->GetArrayLength(env, array); char* argv[1 + len + 1]; argc = 0; argv[argc++] = strdup("app_process"); for (i = 0; i < len; ++i) { const char* utf; char* arg = NULL; jstring string = (*env)->GetObjectArrayElement(env, array, i); if (string) { utf = (*env)->GetStringUTFChars(env, string, 0); if (utf) { arg = strdup(utf); (*env)->ReleaseStringUTFChars(env, string, utf); } (*env)->DeleteLocalRef(env, string); } if (!arg) { arg = strdup(""); } argv[argc++] = arg; } argv[argc] = NULL; /* Init callbacks. */ jni.env = env; jni.actcls = (*env)->FindClass(env, "in/celest/xash3d/XashActivity"); jni.swapBuffers = (*env)->GetStaticMethodID(env, jni.actcls, "swapBuffers", "()V"); jni.toggleEGL = (*env)->GetStaticMethodID(env, jni.actcls, "toggleEGL", "(I)V"); jni.enableTextInput = (*env)->GetStaticMethodID(env, jni.actcls, "showKeyboard", "(I)V"); jni.vibrate = (*env)->GetStaticMethodID(env, jni.actcls, "vibrate", "(I)V" ); jni.messageBox = (*env)->GetStaticMethodID(env, jni.actcls, "messageBox", "(Ljava/lang/String;Ljava/lang/String;)V"); jni.createGLContext = (*env)->GetStaticMethodID(env, jni.actcls, "createGLContext", "()Z"); nanoGL_Init(); /* Run the application. */ status = Host_Main( argc, (const char**)argv, getenv("XASH3D_GAMEDIR"), false, NULL ); /* Release the arguments. */ for (i = 0; i < argc; ++i) free(argv[i]); return status; }
/*JNIEXPORT jint JNICALL JNIOnLoad(JavaVM * vm, void*) { gVM = vm; return JNI_VERSION_1_6; }*/ int Java_in_celest_xash3d_XashActivity_nativeInit(JNIEnv* env, jclass cls, jobject array) { int i; int argc; int status; /* Prepare the arguments. */ int len = (*env)->GetArrayLength(env, array); char* argv[1 + len + 1]; argc = 0; argv[argc++] = strdup("app_process"); for (i = 0; i < len; ++i) { const char* utf; char* arg = NULL; jstring string = (*env)->GetObjectArrayElement(env, array, i); if (string) { utf = (*env)->GetStringUTFChars(env, string, 0); if (utf) { arg = strdup(utf); (*env)->ReleaseStringUTFChars(env, string, utf); } (*env)->DeleteLocalRef(env, string); } if (!arg) { arg = strdup(""); } argv[argc++] = arg; } argv[argc] = NULL; /* Init callbacks. */ gEnv = env; gClass = (*env)->FindClass(env, "in/celest/xash3d/XashActivity"); gSwapBuffers = (*env)->GetStaticMethodID(env, gClass, "swapBuffers", "()V"); nanoGL_Init(); /* Run the application. */ status = Host_Main(argc, argv, GAME_PATH, false, NULL); /* Release the arguments. */ for (i = 0; i < argc; ++i) { free(argv[i]); } return status; }
int main (int argc, char **argv) { signal(SIGFPE, SIG_IGN); com_argc = argc; com_argv = (const char **)argv; Sys_ProvideSelfFD(); #ifdef FNDELAY fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY); #endif Host_Main(); return 0; }
// unused, this file is only used when building windows client and vid_wgl provides WinMain() instead int main (int argc, const char* argv[]) { MEMORYSTATUS lpBuffer; global_hInstance = GetModuleHandle (0); lpBuffer.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus (&lpBuffer); program_name[sizeof(program_name)-1] = 0; GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1); com_argc = argc; com_argv = argv; Host_Main(); return true; }
int SDL_main( int argc, char **argv ) { __android_log_print(ANDROID_LOG_DEBUG,"Xash","Starting xash engine..."); return Host_Main(argc, argv, getenv("XASH3D_GAMEDIR"), false, NULL ); }
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MEMORYSTATUS lpBuffer; /* previous instances do not exist in Win32 */ if (hPrevInstance) return 0; global_hInstance = hInstance; lpBuffer.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus (&lpBuffer); program_name[sizeof(program_name)-1] = 0; GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1); com_argc = 1; com_argv = argv; argv[0] = program_name; // FIXME: this tokenizer is rather redundent, call a more general one while (*lpCmdLine && (com_argc < MAX_NUM_ARGVS)) { while (*lpCmdLine && ISWHITESPACE(*lpCmdLine)) lpCmdLine++; if (!*lpCmdLine) break; if (*lpCmdLine == '\"') { // quoted string lpCmdLine++; argv[com_argc] = lpCmdLine; com_argc++; while (*lpCmdLine && (*lpCmdLine != '\"')) lpCmdLine++; } else { // unquoted word argv[com_argc] = lpCmdLine; com_argc++; while (*lpCmdLine && !ISWHITESPACE(*lpCmdLine)) lpCmdLine++; } if (*lpCmdLine) { *lpCmdLine = 0; lpCmdLine++; } } Sys_ProvideSelfFD(); Host_Main(); /* return success of application */ return true; }