int main(int argc, char *argv[]) { argc = argc; argv = argv; if (!initGraphics()) { fprintf(stderr, "Graphics initialization failed.\n"); return EXIT_FAILURE; } appInit(); while (gAppAlive) { struct timeval timeNow; while (XPending(sDisplay)) { XEvent ev; XNextEvent(sDisplay, &ev); switch (ev.type) { case KeyPress: { unsigned int keycode, keysym; keycode = ((XKeyEvent *)&ev)->keycode; keysym = XKeycodeToKeysym(sDisplay, keycode, 0); if (keysym == XK_Return || keysym == XK_Escape) gAppAlive = 0; } break; } } if (gAppAlive) { gettimeofday(&timeNow, NULL); appRender(timeNow.tv_sec * 1000 + timeNow.tv_usec / 1000, sWindowWidth, sWindowHeight); checkGLErrors(); eglSwapBuffers(sEglDisplay, sEglSurface); checkEGLErrors(); } } appDeinit(); deinitGraphics(); return EXIT_SUCCESS; }
void Java_com_example_SanAngeles_DemoRenderer_nativeRender( JNIEnv* env ) { long curTime; if (sDemoStopped) { curTime = sTimeStopped + sTimeOffset; } else { curTime = _getTime() + sTimeOffset; if (sTimeOffsetInit == 0) { sTimeOffsetInit = 1; sTimeOffset = -curTime; curTime = 0; } } appRender(curTime, sWindowWidth, sWindowHeight); }
/* Call to render the next GL frame */ void Java_com_example_SanAngeles_DemoRenderer_nativeRender( JNIEnv* env ) { long curTime; /* NOTE: if sDemoStopped is TRUE, then we re-render the same frame * on each iteration. */ if (sDemoStopped) { curTime = sTimeStopped + sTimeOffset; } else { curTime = _getTime() + sTimeOffset; if (sTimeOffsetInit == 0) { sTimeOffsetInit = 1; sTimeOffset = -curTime; curTime = 0; } } //__android_log_print(ANDROID_LOG_INFO, "SanAngeles", "curTime=%ld", curTime); appRender(curTime, sWindowWidth, sWindowHeight); }
void render(void) { ticks++; appRender(ticks, VIDEO_WIDTH, VIDEO_HEIGHT); };