Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Don't run the game loop while a messagebox is up
- Loading branch information
|
@@ -22,6 +22,8 @@ |
|
|
|
|
|
#if SDL_VIDEO_DRIVER_UIKIT |
|
|
|
|
|
extern SDL_bool UIKit_ShowingMessageBox(); |
|
|
|
|
|
extern int UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); |
|
|
|
|
|
#endif /* SDL_VIDEO_DRIVER_UIKIT */ |
|
|
|
@@ -28,6 +28,7 @@ |
|
|
|
|
|
/* Display a UIKit message box */ |
|
|
|
|
|
static SDL_bool s_showingMessageBox = SDL_FALSE; |
|
|
|
|
|
@interface UIKit_UIAlertViewDelegate : NSObject <UIAlertViewDelegate> { |
|
|
@private |
|
@@ -60,6 +61,12 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) |
|
|
@end // UIKit_UIAlertViewDelegate |
|
|
|
|
|
|
|
|
SDL_bool |
|
|
UIKit_ShowingMessageBox() |
|
|
{ |
|
|
return s_showingMessageBox; |
|
|
} |
|
|
|
|
|
int |
|
|
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid) |
|
|
{ |
|
@@ -86,9 +93,12 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) |
|
|
|
|
|
// Run the main event loop until the alert has finished |
|
|
// Note that this needs to be done on the main thread |
|
|
s_showingMessageBox = SDL_TRUE; |
|
|
while (clicked == messageboxdata->numbuttons) { |
|
|
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; |
|
|
} |
|
|
s_showingMessageBox = SDL_FALSE; |
|
|
|
|
|
*buttonid = messageboxdata->buttons[clicked].buttonid; |
|
|
|
|
|
[pool release]; |
|
|
|
@@ -22,9 +22,10 @@ |
|
|
|
|
|
#if SDL_VIDEO_DRIVER_UIKIT |
|
|
|
|
|
#import <QuartzCore/QuartzCore.h> |
|
|
#import <OpenGLES/EAGLDrawable.h> |
|
|
#import "SDL_uikitopenglview.h" |
|
|
#include <QuartzCore/QuartzCore.h> |
|
|
#include <OpenGLES/EAGLDrawable.h> |
|
|
#include "SDL_uikitopenglview.h" |
|
|
#include "SDL_uikitmessagebox.h" |
|
|
|
|
|
|
|
|
@implementation SDL_uikitopenglview |
|
@@ -180,7 +181,10 @@ - (void)stopAnimation |
|
|
|
|
|
- (void)doLoop:(id)sender |
|
|
{ |
|
|
animationCallback(animationCallbackParam); |
|
|
// Don't run the game loop while a messagebox is up |
|
|
if (!UIKit_ShowingMessageBox()) { |
|
|
animationCallback(animationCallbackParam); |
|
|
} |
|
|
} |
|
|
|
|
|
- (void)setCurrentContext |
|
|