int main() { VideoPtr video; BaseApplicationPtr application = CreateBaseApplication(); if ((video = CreateVideo(480, 854, L"GS2D", true, true, L"assets/fonts/"))) { InputPtr input = CreateInput(0, true); AudioPtr audio = CreateAudio(0); application->Start(video, input, audio); Video::APP_STATUS status; while ((status = video->HandleEvents()) != Video::APP_QUIT) { if (status == Video::APP_SKIP) continue; input->Update(); application->Update(Min(static_cast<unsigned long>(1000), ComputeElapsedTime(video))); application->RenderFrame(); } } application->Destroy(); #ifdef _DEBUG #ifdef WIN32 _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #endif #endif return 0; }
JNIEXPORT jstring JNICALL Java_net_asantee_gs2d_GS2DJNI_mainLoop(JNIEnv* env, jobject thiz, jstring inputStr) { jboolean isCopy; g_inputStr = env->GetStringUTFChars(inputStr, &isCopy); video->HandleEvents(); input->Update(); // if the splash screen has already been shown, do the regular engine loop if (g_splashShown) { // if the engine hasn't been started yet (which means the previous frame was the splash screen frame), // start the engine machine before performing the regular loop if (!application) { StartApplication(); } application->Update(Min(static_cast<unsigned long>(1000), ComputeElapsedTime(video))); application->RenderFrame(); } else { // draw the splash screen and prepare the engine start DrawSplashScreen(); g_splashShown = true; } return env->NewStringUTF(AssembleCommands().c_str()); }