diff options
author | Sven Hesse | 2010-08-08 00:38:26 +0000 |
---|---|---|
committer | Sven Hesse | 2010-08-08 00:38:26 +0000 |
commit | 12c9e895b559d1ca2780b5b8f156b0451eb11f11 (patch) | |
tree | ff02282ada6558e80be9d1eab7768571c680040f /engines/gob/videoplayer.cpp | |
parent | 9255d2e2179ee6a2cd63b6d8f521e3b9d8543be6 (diff) | |
download | scummvm-rg350-12c9e895b559d1ca2780b5b8f156b0451eb11f11.tar.gz scummvm-rg350-12c9e895b559d1ca2780b5b8f156b0451eb11f11.tar.bz2 scummvm-rg350-12c9e895b559d1ca2780b5b8f156b0451eb11f11.zip |
VIDEO/GOB: Add CoktelDecoder::setXY()
This allows for positioning the video within the video memory.
svn-id: r51858
Diffstat (limited to 'engines/gob/videoplayer.cpp')
-rw-r--r-- | engines/gob/videoplayer.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index 715d5cfb9a..d126d0e963 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -137,23 +137,29 @@ int VideoPlayer::openVideo(bool primary, const Common::String &file, Properties properties.sprite = -1; video->surface.reset(); video->decoder->setSurfaceMemory(); + video->decoder->setXY(0, 0); } else { video->surface = _vm->_draw->_spritesArray[properties.sprite]; video->decoder->setSurfaceMemory(video->surface->getVidMem(), video->surface->getWidth(), video->surface->getHeight(), 1); + + if (!ownSurf || (ownSurf && screenSize)) + video->decoder->setXY(properties.x, properties.y); + else + video->decoder->setXY(0, 0); } } else { properties.sprite = -1; video->surface.reset(); video->decoder->setSurfaceMemory(); + video->decoder->setXY(0, 0); } if (primary) _needBlit = (properties.flags & kFlagUseBackSurfaceContent) && (properties.sprite == Draw::kFrontSurface); // video->decoder->setFrameRate(_vm->_util->getFrameRate()); - // video->decoder->setXY(x, y); WRITE_VAR(7, video->decoder->getFrameCount()); @@ -306,14 +312,18 @@ bool VideoPlayer::playFrame(int slot, Properties &properties) { if (properties.sprite == Draw::kBackSurface) { - _vm->_draw->invalidateRect(0, 0, video->decoder->getWidth(), video->decoder->getHeight()); + _vm->_draw->invalidateRect(properties.x, properties.y, + properties.x + video->decoder->getWidth(), + properties.y + video->decoder->getHeight()); _vm->_draw->blitInvalidated(); // if (!noRetrace) _vm->_video->retrace(); } else if (properties.sprite == Draw::kFrontSurface) { - _vm->_video->dirtyRectsAdd(0, 0, video->decoder->getWidth(), video->decoder->getHeight()); + _vm->_video->dirtyRectsAdd(properties.x, properties.y, + properties.x + video->decoder->getWidth(), + properties.y + video->decoder->getHeight()); // if (!noRetrace) _vm->_video->retrace(); |