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 /backends/platform | |
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.
Diffstat (limited to 'backends/platform')
-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() { |