diff options
author | Filippos Karapetis | 2008-12-06 18:23:34 +0000 |
---|---|---|
committer | Filippos Karapetis | 2008-12-06 18:23:34 +0000 |
commit | 065694dbb166d2fb113ba36b9340d91f9c71fdbe (patch) | |
tree | c986e2dfb4c30027ce444397cb27f09f2c8b7f67 /engines/saga/gfx.cpp | |
parent | 5f2cd3c4a7e771a30e132fa90936b1da72fa21ab (diff) | |
download | scummvm-rg350-065694dbb166d2fb113ba36b9340d91f9c71fdbe.tar.gz scummvm-rg350-065694dbb166d2fb113ba36b9340d91f9c71fdbe.tar.bz2 scummvm-rg350-065694dbb166d2fb113ba36b9340d91f9c71fdbe.zip |
- Prevented direct reference to the back buffer in many cases (apart from a few, where it's modified directly)
- Added skeleton code for dirty rectangle handling (still unfinished and non-working)
- Added wrapper functions to access the back buffer, which add the appropriate dirty rectangles automatically
svn-id: r35264
Diffstat (limited to 'engines/saga/gfx.cpp')
-rw-r--r-- | engines/saga/gfx.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/engines/saga/gfx.cpp b/engines/saga/gfx.cpp index 285a33b656..eac1d871ae 100644 --- a/engines/saga/gfx.cpp +++ b/engines/saga/gfx.cpp @@ -30,6 +30,7 @@ #include "saga/interface.h" #include "saga/rscfile.h" #include "saga/scene.h" +#include "saga/render.h" #include "common/system.h" #include "graphics/cursorman.h" @@ -561,4 +562,28 @@ bool hitTestPoly(const Point *points, unsigned int npoints, const Point& test_po return inside_flag; } +// This method adds a dirty rectangle automatically +void Gfx::drawFrame(const Common::Point &p1, const Common::Point &p2, int color) { + _backBuffer.drawFrame(p1, p2, color); + _vm->_render->addDirtyRect(Common::Rect(p1.x, p1.y, p2.x, p2.y)); +} + +// This method adds a dirty rectangle automatically +void Gfx::drawRect(const Common::Rect &destRect, int color) { + _backBuffer.drawRect(destRect, color); + _vm->_render->addDirtyRect(destRect); +} + +// This method adds a dirty rectangle automatically +void Gfx::fillRect(const Common::Rect &destRect, uint32 color) { + _backBuffer.fillRect(destRect, color); + _vm->_render->addDirtyRect(destRect); +} + +// This method adds a dirty rectangle automatically +void Gfx::drawRegion(const Common::Rect &destRect, const byte *sourceBuffer) { + _backBuffer.blit(destRect, sourceBuffer); + _vm->_render->addDirtyRect(destRect); +} + } // End of namespace Saga |