diff options
author | Martin Kiewitz | 2010-01-10 09:42:55 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-10 09:42:55 +0000 |
commit | 231e122c639e745094062e14273ab64b6bb84ea4 (patch) | |
tree | 9037c93a0e296ed14ac2c5015fb3310cb2366b79 /engines/sci | |
parent | 7d16dbeb3581924175cf7d63c6a4189e016e5413 (diff) | |
download | scummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.tar.gz scummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.tar.bz2 scummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.zip |
SCI: updateBox now also supports hires mode
svn-id: r47219
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 6 | ||||
-rw-r--r-- | engines/sci/graphics/gfx.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/gfx.h | 1 | ||||
-rw-r--r-- | engines/sci/graphics/gui.cpp | 7 | ||||
-rw-r--r-- | engines/sci/graphics/gui.h | 2 |
5 files changed, 15 insertions, 5 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index f9ae3e2366..1a0d789458 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -264,11 +264,13 @@ reg_t kGraph(EngineState *s, int argc, reg_t *argv) { s->_gui->graphFillBox(rect, colorMask, color, priority, control); break; - case K_GRAPH_UPDATE_BOX: + case K_GRAPH_UPDATE_BOX: { kGraphCreateRect(x, y, x1, y1, &rect); + bool hiresMode = (argc > 6) ? true : false; // argc == 7 on upscaled hires - s->_gui->graphUpdateBox(rect); + s->_gui->graphUpdateBox(rect, hiresMode); break; + } case K_GRAPH_REDRAW_BOX: kGraphCreateRect(x, y, x1, y1, &rect); diff --git a/engines/sci/graphics/gfx.cpp b/engines/sci/graphics/gfx.cpp index 8aeb15a22a..19d9c957f4 100644 --- a/engines/sci/graphics/gfx.cpp +++ b/engines/sci/graphics/gfx.cpp @@ -267,6 +267,10 @@ void Gfx::BitsShow(const Common::Rect &rect) { _screen->copyRectToScreen(workerRect); } +void Gfx::BitsShowHires(const Common::Rect &rect) { + _screen->copyDisplayRectToScreen(rect); +} + reg_t Gfx::BitsSave(const Common::Rect &rect, byte screenMask) { reg_t memoryId; byte *memoryPtr; diff --git a/engines/sci/graphics/gfx.h b/engines/sci/graphics/gfx.h index af1d4b13c7..6ad6e6c9ec 100644 --- a/engines/sci/graphics/gfx.h +++ b/engines/sci/graphics/gfx.h @@ -78,6 +78,7 @@ public: void OffsetLine(Common::Point &start, Common::Point &end); void BitsShow(const Common::Rect &r); + void BitsShowHires(const Common::Rect &rect); reg_t BitsSave(const Common::Rect &rect, byte screenFlags); void BitsGetRect(reg_t memoryHandle, Common::Rect *destRect); void BitsRestore(reg_t memoryHandle); diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp index 07c5ee665a..826630a1a4 100644 --- a/engines/sci/graphics/gui.cpp +++ b/engines/sci/graphics/gui.cpp @@ -516,8 +516,11 @@ void SciGui::graphRestoreBox(reg_t handle) { _gfx->BitsRestore(handle); } -void SciGui::graphUpdateBox(Common::Rect rect) { - _gfx->BitsShow(rect); +void SciGui::graphUpdateBox(Common::Rect rect, bool hiresMode) { + if (!hiresMode) + _gfx->BitsShow(rect); + else + _gfx->BitsShowHires(rect); } void SciGui::graphRedrawBox(Common::Rect rect) { diff --git a/engines/sci/graphics/gui.h b/engines/sci/graphics/gui.h index 0813acd1f8..cf35865c5d 100644 --- a/engines/sci/graphics/gui.h +++ b/engines/sci/graphics/gui.h @@ -104,7 +104,7 @@ public: virtual reg_t graphSaveBox(Common::Rect rect, uint16 flags); virtual reg_t graphSaveUpscaledHiresBox(Common::Rect rect); virtual void graphRestoreBox(reg_t handle); - virtual void graphUpdateBox(Common::Rect rect); + virtual void graphUpdateBox(Common::Rect rect, bool hiresMode); virtual void graphRedrawBox(Common::Rect rect); virtual void graphAdjustPriority(int top, int bottom); |