diff options
Diffstat (limited to 'engines/lab/dispman.cpp')
-rw-r--r-- | engines/lab/dispman.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/engines/lab/dispman.cpp b/engines/lab/dispman.cpp index fb25472b3d..a332a57e7d 100644 --- a/engines/lab/dispman.cpp +++ b/engines/lab/dispman.cpp @@ -782,12 +782,12 @@ void DisplayMan::doTransWipe(const Common::String filename) { Image imgSource(_vm); imgSource._width = _screenWidth; imgSource._height = lastY; - imgSource._imageData = bitMapBuffer; + imgSource.setData(bitMapBuffer, true); Image imgDest(_vm); imgDest._width = _screenWidth; imgDest._height = _screenHeight; - imgDest._imageData = getCurrentDrawingBuffer(); + imgDest.setData(getCurrentDrawingBuffer(), false); for (int j = 0; j < 2; j++) { for (int i = 0; i < 2; i++) { @@ -800,7 +800,7 @@ void DisplayMan::doTransWipe(const Common::String filename) { linesDone = 0; } - imgDest._imageData = getCurrentDrawingBuffer(); + imgDest.setData(getCurrentDrawingBuffer(), false); if (j == 0) { imgSource.blitBitmap(0, curY, &imgDest, 0, curY, _screenWidth, 2, false); @@ -815,9 +815,6 @@ void DisplayMan::doTransWipe(const Common::String filename) { } // for i } // for j - // Prevent the Image destructor from deleting the drawing buffer - imgDest._imageData = nullptr; - // bitMapBuffer will be deleted by the Image destructor } @@ -872,7 +869,7 @@ void DisplayMan::blackAllScreen() { void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { Image img(_vm); - img._imageData = buffer; + img.setData(buffer, false); if (x1 > x2) SWAP<uint16>(x1, x2); @@ -897,14 +894,11 @@ void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint1 rectFill(x2 + dx + 1, y1, x2, y2, 0); } - - // Prevent the Image destructor from deleting the external buffer - img._imageData = nullptr; } void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { Image img(_vm); - img._imageData = buffer; + img.setData(buffer, false); if (x1 > x2) SWAP<uint16>(x1, x2); @@ -929,9 +923,6 @@ void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint1 rectFill(x1, y2 + dy + 1, x2, y2, 0); } - - // Prevent the Image destructor from deleting the external buffer - img._imageData = nullptr; } uint16 DisplayMan::fadeNumIn(uint16 num, uint16 res, uint16 counter) { |