From 807d5b9e4959daa11802cd045fb91dd6cbbaa61b Mon Sep 17 00:00:00 2001 From: beuc Date: Sat, 9 Jun 2012 18:02:33 +0000 Subject: [PATCH] Call Pause/Resume callbacks from Android git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1336 7f0cb862-5218-0410-a997-914c9d46530a --- freeglut/freeglut/src/android/fg_main_android.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/freeglut/freeglut/src/android/fg_main_android.c b/freeglut/freeglut/src/android/fg_main_android.c index 09406d5..cf2690b 100644 --- a/freeglut/freeglut/src/android/fg_main_android.c +++ b/freeglut/freeglut/src/android/fg_main_android.c @@ -452,6 +452,8 @@ void fgPlatformProcessSingleEvent ( void ) /* If we're not in RESUME state, Android paused us, so wait */ struct android_app* app = fgDisplay.pDisplay.app; if (app->destroyRequested != 1 && app->activityState != APP_CMD_RESUME) { + INVOKE_WCB(*window, Pause, ()); + int FOREVER = -1; while (app->destroyRequested != 1 && (app->activityState != APP_CMD_RESUME)) { if ((ident=ALooper_pollOnce(FOREVER, NULL, &events, (void**)&source)) >= 0) { @@ -472,11 +474,12 @@ void fgPlatformProcessSingleEvent ( void ) we'll be paused but not stopped, and keep the current surface; in which case fgPlatformOpenWindow will no-op. */ fgPlatformOpenWindow(window, "", GL_FALSE, 0, 0, GL_FALSE, 0, 0, GL_FALSE, GL_FALSE); - /* TODO: INVOKE_WCB(*window, Pause?); */ - /* TODO: INVOKE_WCB(*window, Resume?); */ + if (!FETCH_WCB(*window, InitContext)) fgWarning("Resuming application, but no callback to reload context resources (glutInitContextFunc)"); } + + INVOKE_WCB(*window, Resume, ()); } }