diff options
author | Oystein Eftevaag | 2011-06-04 23:34:12 -0400 |
---|---|---|
committer | Oystein Eftevaag | 2011-06-05 00:03:15 -0400 |
commit | 1d3be279fce1f9af7e4db3ec1e8b3b9e18acb419 (patch) | |
tree | 13aefb24dc241c58683d0816f12ec908ed331bee /backends/platform/iphone/iphone_video.m | |
parent | 66c982b38ce9463daad621f8129dd97e0bb1a6ce (diff) | |
download | scummvm-rg350-1d3be279fce1f9af7e4db3ec1e8b3b9e18acb419.tar.gz scummvm-rg350-1d3be279fce1f9af7e4db3ec1e8b3b9e18acb419.tar.bz2 scummvm-rg350-1d3be279fce1f9af7e4db3ec1e8b3b9e18acb419.zip |
IPHONE: Fixed a COMI crash and some minor gfx glitches
Diffstat (limited to 'backends/platform/iphone/iphone_video.m')
-rw-r--r-- | backends/platform/iphone/iphone_video.m | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m index 006603df64..04d25cebf8 100644 --- a/backends/platform/iphone/iphone_video.m +++ b/backends/platform/iphone/iphone_video.m @@ -85,6 +85,8 @@ void iPhone_setMouseCursor(short* buffer, int width, int height) { void iPhone_enableOverlay(int state) { _overlayIsEnabled = state; + + [sharedInstance performSelectorOnMainThread:@selector(clearColorBuffer) withObject:nil waitUntilDone: YES]; } int iPhone_getScreenHeight() { @@ -478,12 +480,7 @@ bool getLocalMouseCoords(CGPoint *point) { glBindRenderbufferOES(GL_RENDERBUFFER_OES, _viewRenderbuffer); printOpenGLError(); - // The color buffer is triple-buffered, so we clear it multiple times right away to avid doing any glClears later. - int clearCount = 5; - while (clearCount-- > 0) { - glClear(GL_COLOR_BUFFER_BIT); printOpenGLError(); - [_context presentRenderbuffer:GL_RENDERBUFFER_OES]; - } + [self clearColorBuffer]; if (_keyboardView != nil) { [_keyboardView removeFromSuperview]; @@ -535,6 +532,15 @@ bool getLocalMouseCoords(CGPoint *point) { } } +- (void)clearColorBuffer { + // The color buffer is triple-buffered, so we clear it multiple times right away to avid doing any glClears later. + int clearCount = 5; + while (clearCount-- > 0) { + glClear(GL_COLOR_BUFFER_BIT); printOpenGLError(); + [_context presentRenderbuffer:GL_RENDERBUFFER_OES]; + } +} + - (id)getEvent { if (_events == nil || [_events count] == 0) { return nil; |