diff options
author | Andre Heider | 2010-09-05 15:26:00 +0000 |
---|---|---|
committer | Andre Heider | 2010-09-05 15:26:00 +0000 |
commit | 09834b8bec5fdaf24719988376debf8671518846 (patch) | |
tree | fd25fc6b22f8935d4ccd30c122c972106b6ca52a /backends/platform/wii | |
parent | 402c71860f0a6f254604b1fbd1a763d470c859c0 (diff) | |
parent | 13e24af0cace8599d31c8bb7381fa9fce49a8e6e (diff) | |
download | scummvm-rg350-09834b8bec5fdaf24719988376debf8671518846.tar.gz scummvm-rg350-09834b8bec5fdaf24719988376debf8671518846.tar.bz2 scummvm-rg350-09834b8bec5fdaf24719988376debf8671518846.zip |
MERGE: Merge trunk to branch.
svn-id: r52564
Diffstat (limited to 'backends/platform/wii')
-rw-r--r-- | backends/platform/wii/osystem.h | 1 | ||||
-rw-r--r-- | backends/platform/wii/osystem_events.cpp | 3 | ||||
-rw-r--r-- | backends/platform/wii/osystem_gfx.cpp | 16 |
3 files changed, 20 insertions, 0 deletions
diff --git a/backends/platform/wii/osystem.h b/backends/platform/wii/osystem.h index eaaf616538..ed33b43a81 100644 --- a/backends/platform/wii/osystem.h +++ b/backends/platform/wii/osystem.h @@ -117,6 +117,7 @@ private: void deinitGfx(); void updateScreenResolution(); void switchVideoMode(int mode); + bool needsScreenUpdate(); void initSfx(); void deinitSfx(); diff --git a/backends/platform/wii/osystem_events.cpp b/backends/platform/wii/osystem_events.cpp index 488834fc20..5d0bca453f 100644 --- a/backends/platform/wii/osystem_events.cpp +++ b/backends/platform/wii/osystem_events.cpp @@ -300,6 +300,9 @@ bool OSystem_Wii::pollEvent(Common::Event &event) { return true; } + if (needsScreenUpdate()) + updateScreen(); + u32 bd = 0, bh = 0, bu = 0; if (PAD_ScanPads() & 1) { diff --git a/backends/platform/wii/osystem_gfx.cpp b/backends/platform/wii/osystem_gfx.cpp index 3ce6343800..09575bb83d 100644 --- a/backends/platform/wii/osystem_gfx.cpp +++ b/backends/platform/wii/osystem_gfx.cpp @@ -441,6 +441,22 @@ void OSystem_Wii::copyRectToScreen(const byte *buf, int pitch, int x, int y, _gameDirty = true; } +bool OSystem_Wii::needsScreenUpdate() { + if (getMillis() - _lastScreenUpdate < 1000 / MAX_FPS) + return false; + + if (_gameRunning && _gameDirty) + return true; + + if (_overlayVisible && _overlayDirty) + return true; + + if (_mouseVisible && _texMouse.palette && _cursorPaletteDirty) + return true; + + return false; +} + void OSystem_Wii::updateScreen() { static f32 ar; static gfx_screen_coords_t cc; |