diff options
author | Colin Snover | 2017-05-05 23:05:12 -0500 |
---|---|---|
committer | Colin Snover | 2017-05-06 10:38:58 -0500 |
commit | 575ed98da1035c0d08338f01b6db6de5e5987214 (patch) | |
tree | 16c9e7e5df15904dcf47ba2e98023773e983dbe9 /engines/sci | |
parent | b73e275b42955d95b8728f8c636e42d3373bf8e8 (diff) | |
download | scummvm-rg350-575ed98da1035c0d08338f01b6db6de5e5987214.tar.gz scummvm-rg350-575ed98da1035c0d08338f01b6db6de5e5987214.tar.bz2 scummvm-rg350-575ed98da1035c0d08338f01b6db6de5e5987214.zip |
SCI32: Centralize handling of pixel format switches
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/graphics/frameout.h | 5 | ||||
-rw-r--r-- | engines/sci/graphics/video32.cpp | 14 |
2 files changed, 9 insertions, 10 deletions
diff --git a/engines/sci/graphics/frameout.h b/engines/sci/graphics/frameout.h index 650c2c7889..e706f141b2 100644 --- a/engines/sci/graphics/frameout.h +++ b/engines/sci/graphics/frameout.h @@ -23,6 +23,7 @@ #ifndef SCI_GRAPHICS_FRAMEOUT_H #define SCI_GRAPHICS_FRAMEOUT_H +#include "engines/util.h" // for initGraphics #include "sci/graphics/plane32.h" #include "sci/graphics/screen_item32.h" @@ -284,6 +285,10 @@ private: } public: + void setPixelFormat(const Graphics::PixelFormat &format) const { + initGraphics(_currentBuffer.screenWidth, _currentBuffer.screenHeight, _isHiRes, &format); + } + /** * Whether palMorphFrameOut should be used instead of * frameOut for rendering. Used by kMorphOn to diff --git a/engines/sci/graphics/video32.cpp b/engines/sci/graphics/video32.cpp index 0a7cd7e6ef..35a92c3ab9 100644 --- a/engines/sci/graphics/video32.cpp +++ b/engines/sci/graphics/video32.cpp @@ -26,7 +26,6 @@ #include "common/util.h" // for ARRAYSIZE #include "common/system.h" // for g_system #include "engine.h" // for Engine, g_engine -#include "engines/util.h" // for initGraphics #include "sci/console.h" // for Console #include "sci/engine/features.h" // for GameFeatures #include "sci/engine/state.h" // for EngineState @@ -286,9 +285,8 @@ void AVIPlayer::init() { // have a 24bpp mode but just directed VFW to display videos instead) g_sci->_gfxCursor32->hide(); - const Buffer ¤tBuffer = g_sci->_gfxFrameout->getCurrentBuffer(); const Graphics::PixelFormat format = _decoder->getPixelFormat(); - initGraphics(currentBuffer.screenWidth, currentBuffer.screenHeight, g_sci->_gfxFrameout->_isHiRes, &format); + g_sci->_gfxFrameout->setPixelFormat(format); if (_pixelDouble) { const int16 width = _drawRect.width(); @@ -338,10 +336,8 @@ AVIPlayer::IOStatus AVIPlayer::close() { _scaleBuffer = nullptr; if (_decoder->getPixelFormat().bytesPerPixel != 1) { - const bool isHiRes = g_sci->_gfxFrameout->_isHiRes; - const Buffer ¤tBuffer = g_sci->_gfxFrameout->getCurrentBuffer(); const Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8(); - initGraphics(currentBuffer.screenWidth, currentBuffer.screenHeight, isHiRes, &format); + g_sci->_gfxFrameout->setPixelFormat(format); g_sci->_gfxCursor32->unhide(); } @@ -986,7 +982,6 @@ void DuckPlayer::open(const GuiResourceId resourceId, const int displayMode, con g_sci->_gfxFrameout->frameOut(true); } - const Buffer ¤tBuffer = g_sci->_gfxFrameout->getCurrentBuffer(); const Graphics::PixelFormat format = _decoder->getPixelFormat(); if (_pixelDouble) { @@ -994,7 +989,7 @@ void DuckPlayer::open(const GuiResourceId resourceId, const int displayMode, con _scaleBuffer = new byte[_drawRect.width() * _drawRect.height() * format.bytesPerPixel]; } - initGraphics(currentBuffer.screenWidth, currentBuffer.screenHeight, true, &format); + g_sci->_gfxFrameout->setPixelFormat(format); _status = kDuckOpen; } @@ -1049,9 +1044,8 @@ void DuckPlayer::close() { _decoder->close(); - const Buffer ¤tBuffer = g_sci->_gfxFrameout->getCurrentBuffer(); const Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8(); - initGraphics(currentBuffer.screenWidth, currentBuffer.screenHeight, true, &format); + g_sci->_gfxFrameout->setPixelFormat(format); g_sci->_gfxCursor32->unhide(); |