diff options
-rw-r--r-- | backends/platform/iphone/iphone_video.m | 23 | ||||
-rwxr-xr-x | dists/iphone/scummvm.xcodeproj/project.pbxproj | 16 |
2 files changed, 24 insertions, 15 deletions
diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m index 1e02dd104d..5f6804bc17 100644 --- a/backends/platform/iphone/iphone_video.m +++ b/backends/platform/iphone/iphone_video.m @@ -203,7 +203,6 @@ uint getSizeNextPOT(uint size) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, _textureWidth, _textureHeight, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, _textureBuffer); [_lock unlock]; - glClear(GL_COLOR_BUFFER_BIT); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindRenderbufferOES(GL_RENDERBUFFER_OES, _viewRenderbuffer); [_context presentRenderbuffer:GL_RENDERBUFFER_OES]; @@ -266,26 +265,32 @@ uint getSizeNextPOT(uint size) { glOrthof(0, _backingWidth, 0, _backingHeight, 0, 1); - if (_screenTexture > 0) + if (_screenTexture > 0) { glDeleteTextures(1, &_screenTexture); + } glGenTextures(1, &_screenTexture); glBindTexture(GL_TEXTURE_2D, _screenTexture); glEnable(GL_TEXTURE_2D); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - if (_textureBuffer) + if (_textureBuffer) { free(_textureBuffer); - + } + int textureSize = _textureWidth * _textureHeight * 2; _textureBuffer = (char*)malloc(textureSize); memset(_textureBuffer, 0, textureSize); - - glClear(GL_COLOR_BUFFER_BIT); glBindRenderbufferOES(GL_RENDERBUFFER_OES, _viewRenderbuffer); - [_context presentRenderbuffer:GL_RENDERBUFFER_OES]; - + + // The color buffer is triple-buffered, so we clear it multiple times right away to avid doing any glClears later. + int clearCount = 3; + while (clearCount-- > 0) { + glClear(GL_COLOR_BUFFER_BIT); + [_context presentRenderbuffer:GL_RENDERBUFFER_OES]; + } + if (_keyboardView != nil) { [_keyboardView removeFromSuperview]; [[_keyboardView inputView] removeFromSuperview]; diff --git a/dists/iphone/scummvm.xcodeproj/project.pbxproj b/dists/iphone/scummvm.xcodeproj/project.pbxproj index af938d78ce..60c10432cf 100755 --- a/dists/iphone/scummvm.xcodeproj/project.pbxproj +++ b/dists/iphone/scummvm.xcodeproj/project.pbxproj @@ -1065,6 +1065,9 @@ DF5CEB380F7553E000DEA624 /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF5CEB350F7553E000DEA624 /* vag.cpp */; }; DF5CEB3B0F75540700DEA624 /* stringfrag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF5CEB3A0F75540700DEA624 /* stringfrag.cpp */; }; DF5CEB3C0F75540700DEA624 /* stringfrag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF5CEB3A0F75540700DEA624 /* stringfrag.cpp */; }; + DF7A40330FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7A40320FB6E8960094E50F /* gfx_pixmap_scale.cpp */; }; + DF7A40340FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7A40320FB6E8960094E50F /* gfx_pixmap_scale.cpp */; }; + DF7A40350FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7A40320FB6E8960094E50F /* gfx_pixmap_scale.cpp */; }; DF7E8BFD0ED5FC77001CB19F /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF00ED5FC77001CB19F /* saveload.cpp */; }; DF7E8BFF0ED5FC77001CB19F /* ThemeEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF40ED5FC77001CB19F /* ThemeEngine.cpp */; }; DF7E8C000ED5FC77001CB19F /* ThemeEval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF60ED5FC77001CB19F /* ThemeEval.cpp */; }; @@ -3095,7 +3098,6 @@ DF573C020F5A81EA00961A72 /* state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = state.h; sourceTree = "<group>"; }; DF573C030F5A81EA00961A72 /* vm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = "<group>"; }; DF573C040F5A81EA00961A72 /* vm_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vm_types.h; sourceTree = "<group>"; }; - DF573C090F5A820E00961A72 /* crossblit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crossblit.h; sourceTree = "<group>"; }; DF573C0A0F5A820E00961A72 /* gfx_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_driver.h; sourceTree = "<group>"; }; DF573C0B0F5A820E00961A72 /* gfx_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_options.h; sourceTree = "<group>"; }; DF573C0D0F5A820E00961A72 /* gfx_res_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_res_options.h; sourceTree = "<group>"; }; @@ -3106,7 +3108,6 @@ DF573C120F5A820E00961A72 /* gfx_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_tools.h; sourceTree = "<group>"; }; DF573C130F5A820E00961A72 /* gfx_widgets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_widgets.cpp; sourceTree = "<group>"; }; DF573C140F5A820E00961A72 /* gfx_widgets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_widgets.h; sourceTree = "<group>"; }; - DF573C150F5A820E00961A72 /* line.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = line.h; sourceTree = "<group>"; }; DF573C160F5A820E00961A72 /* menubar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = menubar.h; sourceTree = "<group>"; }; DF573C170F5A820E00961A72 /* operations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operations.h; sourceTree = "<group>"; }; DF573C200F5A822D00961A72 /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = "<group>"; }; @@ -3148,6 +3149,7 @@ DF5CEB350F7553E000DEA624 /* vag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vag.cpp; sourceTree = "<group>"; }; DF5CEB360F7553E000DEA624 /* vag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vag.h; sourceTree = "<group>"; }; DF5CEB3A0F75540700DEA624 /* stringfrag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringfrag.cpp; sourceTree = "<group>"; }; + DF7A40320FB6E8960094E50F /* gfx_pixmap_scale.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_pixmap_scale.cpp; sourceTree = "<group>"; }; DF7E8BF00ED5FC77001CB19F /* saveload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveload.cpp; sourceTree = "<group>"; }; DF7E8BF10ED5FC77001CB19F /* saveload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = saveload.h; sourceTree = "<group>"; }; DF7E8BF40ED5FC77001CB19F /* ThemeEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThemeEngine.cpp; sourceTree = "<group>"; }; @@ -6353,6 +6355,7 @@ DFC8303D0F48AF18005EF03C /* gfx */ = { isa = PBXGroup; children = ( + DF7A40320FB6E8960094E50F /* gfx_pixmap_scale.cpp */, DFE88C4B0F874A6600C555C5 /* gfx_gui.cpp */, DFE88C4C0F874A6600C555C5 /* gfx_gui.h */, DF5CEAFD0F7552C700DEA624 /* font.h */, @@ -6366,7 +6369,6 @@ DF5CEB070F7552C700DEA624 /* res_pic.cpp */, DF5CEB080F7552C700DEA624 /* res_view0.cpp */, DF5CEB090F7552C700DEA624 /* res_view1.cpp */, - DF573C090F5A820E00961A72 /* crossblit.h */, DF573C0A0F5A820E00961A72 /* gfx_driver.h */, DF573C0B0F5A820E00961A72 /* gfx_options.h */, DF573C0D0F5A820E00961A72 /* gfx_res_options.h */, @@ -6377,7 +6379,6 @@ DF573C120F5A820E00961A72 /* gfx_tools.h */, DF573C130F5A820E00961A72 /* gfx_widgets.cpp */, DF573C140F5A820E00961A72 /* gfx_widgets.h */, - DF573C150F5A820E00961A72 /* line.h */, DF573C160F5A820E00961A72 /* menubar.h */, DF573C170F5A820E00961A72 /* operations.h */, DFC830420F48AF18005EF03C /* font.cpp */, @@ -8046,6 +8047,7 @@ DFF958C10FB223B300A3EC78 /* player.cpp in Sources */, DFF958CA0FB223F000A3EC78 /* adlib.cpp in Sources */, DFF958CB0FB223F000A3EC78 /* pcjr.cpp in Sources */, + DF7A40340FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8987,6 +8989,7 @@ DFF958C00FB223B300A3EC78 /* player.cpp in Sources */, DFF958C80FB223F000A3EC78 /* adlib.cpp in Sources */, DFF958C90FB223F000A3EC78 /* pcjr.cpp in Sources */, + DF7A40330FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -9926,6 +9929,7 @@ DFF95CB80FB22D5700A3EC78 /* player.cpp in Sources */, DFF95CB90FB22D5700A3EC78 /* adlib.cpp in Sources */, DFF95CBA0FB22D5700A3EC78 /* pcjr.cpp in Sources */, + DF7A40350FB6E8960094E50F /* gfx_pixmap_scale.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -10417,7 +10421,7 @@ PRODUCT_NAME = ScummVM; PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; - SDKROOT = iphoneos2.0; + SDKROOT = iphonesimulator2.0; }; name = Debug; }; @@ -10485,7 +10489,7 @@ PRODUCT_NAME = ScummVM; PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; - SDKROOT = iphoneos2.0; + SDKROOT = iphonesimulator2.0; WRAPPER_EXTENSION = app; }; name = Release; |