void ESUTIL_API esMainLoop ( ESContext *esContext ) { struct timeval t1, t2; struct timezone tz; float deltatime; float totaltime = 0.0f; unsigned int frames = 0; gettimeofday ( &t1 , &tz ); while(userInterrupt(esContext) == GL_FALSE) { gettimeofday(&t2, &tz); deltatime = (float)(t2.tv_sec - t1.tv_sec + (t2.tv_usec - t1.tv_usec) * 1e-6); t1 = t2; if (esContext->updateFunc != NULL) esContext->updateFunc(esContext, deltatime); if (esContext->drawFunc != NULL) esContext->drawFunc(esContext); eglSwapBuffers(esContext->eglDisplay, esContext->eglSurface); totaltime += deltatime; frames++; if (totaltime > 2.0f) { printf("%4d frames rendered in %1.4f seconds -> FPS=%3.4f\n", frames, totaltime, frames/totaltime); totaltime -= 2.0f; frames = 0; } } }
void esLoop() { if (userInterrupt(esContextInt) == GL_TRUE) { emscripten_cancel_main_loop(); return; } gettimeofday(&t2, &tz); deltatime = (float)(t2.tv_sec - t1.tv_sec + (t2.tv_usec - t1.tv_usec) * 1e-6); t1 = t2; if (esContextInt->updateFunc != NULL) esContextInt->updateFunc(esContextInt, deltatime); if (esContextInt->drawFunc != NULL) esContextInt->drawFunc(esContextInt); eglSwapBuffers(esContextInt->eglDisplay, esContextInt->eglSurface); totaltime += deltatime; frames++; if (totaltime > 2.0f) { printf("%4d frames rendered in %1.4f seconds -> FPS=%3.4f\n", frames, totaltime, frames/totaltime); totaltime -= 2.0f; frames = 0; } }