int SDL_main(int argc, char** argv) { #else int main(int argc, char** argv) { #endif if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS) != 0) { report_sdl_error("Failed to init SDL."); return -1; } application_init(); SkOSWindow* window = create_sk_window(nullptr, argc, argv); // drain any events that occurred before |window| was assigned. while (SkEvent::ProcessEvent()); SkOSWindow::RunEventLoop(); delete window; application_term(); SDL_Quit(); return 0; }
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); MSG msg; // Initialize global strings MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow, lpCmdLine)) { return FALSE; } // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { if (true) { TranslateMessage(&msg); DispatchMessage(&msg); } } application_term(); return (int) msg.wParam; }
int main(int argc, char** argv){ SkOSWindow* window = create_sk_window(NULL, argc, argv); // drain any events that occurred before |window| was assigned. while (SkEvent::ProcessEvent()); // Start normal Skia sequence application_init(); window->loop(); delete window; application_term(); return 0; }
JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_term(JNIEnv* env, jobject thiz) { delete gWindow; gWindow = NULL; application_term(); if (gWindowGlue.m_obj) { env->DeleteWeakGlobalRef(gWindowGlue.m_obj); gWindowGlue.m_obj = NULL; } if (gActivityGlue.m_obj) { env->DeleteWeakGlobalRef(gActivityGlue.m_obj); gActivityGlue.m_obj = NULL; } }
int main(int argc, char** argv){ signal(SIGALRM, catch_alarm); gWindow = create_sk_window(NULL, argc, argv); // drain any events that occurred before gWindow was assigned. while (SkEvent::ProcessEvent()); // Start normal Skia sequence application_init(); gWindow->loop(); delete gWindow; application_term(); return 0; }
void android_main(struct android_app* state) { struct VisualBenchState visualBenchState; // Make sure glue isn't stripped. app_dummy(); state->userData = &visualBenchState; state->onAppCmd = handle_cmd; visualBenchState.fApp = state; // Get command line arguments JavaVM* jvm = state->activity->vm; JNIEnv *env; jvm->AttachCurrentThread(&env, 0); jobject me = state->activity->clazz; jclass acl = env->GetObjectClass(me); //class pointer of NativeActivity jmethodID giid = env->GetMethodID(acl, "getIntent", "()Landroid/content/Intent;"); jobject intent = env->CallObjectMethod(me, giid); //Got our intent jclass icl = env->GetObjectClass(intent); //class pointer of Intent jmethodID gseid = env->GetMethodID(icl, "getStringExtra", "(Ljava/lang/String;)Ljava/lang/String;"); jstring jsParam1 = (jstring)env->CallObjectMethod(intent, gseid, env->NewStringUTF("cmdLineFlags")); if (jsParam1) { const char* flags = env->GetStringUTFChars(jsParam1, 0); SkStrSplit(flags, " ", &visualBenchState.fFlags); env->ReleaseStringUTFChars(jsParam1, flags); } jvm->DetachCurrentThread(); while (1) { // Read all pending events. int ident; int events; struct android_poll_source* source; // We loop until all events are read, then continue to draw the next frame of animation. while ((ident=ALooper_pollAll(0, nullptr, &events, (void**)&source)) >= 0) { // Process this event. if (source != nullptr) { source->process(state, source); } // Check if we are exiting. if (state->destroyRequested != 0) { return; } } if (visualBenchState.fWindow) { if (visualBenchState.fWindow->destroyRequested()) { visualBenchState.fState = kDestroyRequested_State; } else { visualBenchState.fWindow->update(nullptr); } } if (kDestroyRequested_State == visualBenchState.fState) { delete visualBenchState.fWindow; visualBenchState.fWindow = nullptr; application_term(); ANativeActivity_finish(state->activity); visualBenchState.fState = kFinished_State; } } }