diff options
author | Johannes Schickel | 2012-02-25 19:49:05 +0100 |
---|---|---|
committer | Johannes Schickel | 2012-02-25 19:49:05 +0100 |
commit | 97e486dee3a66bd8db0ca623ba65ba0a14da899d (patch) | |
tree | 3de8e38df0270ea45c7328baf732eaca32826383 | |
parent | 273df3c075ef321ae304f2ab2d26e35111480797 (diff) | |
download | scummvm-rg350-97e486dee3a66bd8db0ca623ba65ba0a14da899d.tar.gz scummvm-rg350-97e486dee3a66bd8db0ca623ba65ba0a14da899d.tar.bz2 scummvm-rg350-97e486dee3a66bd8db0ca623ba65ba0a14da899d.zip |
IPHONE: Implement very basic GFX transaction support.
This allows for AR ratio correction changes to take place, even when the AR
setting is set after initSize for example.
-rw-r--r-- | backends/platform/iphone/osys_main.h | 4 | ||||
-rw-r--r-- | backends/platform/iphone/osys_video.mm | 17 |
2 files changed, 14 insertions, 7 deletions
diff --git a/backends/platform/iphone/osys_main.h b/backends/platform/iphone/osys_main.h index 180d3e9d06..84c460aaf4 100644 --- a/backends/platform/iphone/osys_main.h +++ b/backends/platform/iphone/osys_main.h @@ -121,6 +121,10 @@ public: virtual bool setGraphicsMode(int mode); virtual int getGraphicsMode() const; virtual void initSize(uint width, uint height, const Graphics::PixelFormat *format); + + virtual void beginGFXTransaction(); + virtual TransactionError endGFXTransaction(); + virtual int16 getHeight(); virtual int16 getWidth(); diff --git a/backends/platform/iphone/osys_video.mm b/backends/platform/iphone/osys_video.mm index 31db4c70e7..265a36f946 100644 --- a/backends/platform/iphone/osys_video.mm +++ b/backends/platform/iphone/osys_video.mm @@ -44,7 +44,6 @@ bool OSystem_IPHONE::setGraphicsMode(int mode) { case kGraphicsModeNone: case kGraphicsModeLinear: _videoContext->graphicsMode = (GraphicsModes)mode; - [g_iPhoneViewInstance performSelectorOnMainThread:@selector(setGraphicsMode) withObject:nil waitUntilDone: YES]; return true; default: @@ -68,17 +67,21 @@ void OSystem_IPHONE::initSize(uint width, uint height, const Graphics::PixelForm _gameScreenRaw = (byte *)malloc(width * height); bzero(_gameScreenRaw, width * height); - updateOutputSurface(); - - clearOverlay(); - _fullScreenIsDirty = false; dirtyFullScreen(); - _videoContext->mouseIsVisible = false; _mouseCursorPaletteEnabled = false; +} + +void OSystem_IPHONE::beginGFXTransaction() { +} + +OSystem::TransactionError OSystem_IPHONE::endGFXTransaction() { _screenChangeCount++; + updateOutputSurface(); + [g_iPhoneViewInstance performSelectorOnMainThread:@selector(setGraphicsMode) withObject:nil waitUntilDone: YES]; - updateScreen(); + // TODO: Can we return better error codes? + return kTransactionSuccess; } void OSystem_IPHONE::updateOutputSurface() { |