aboutsummaryrefslogtreecommitdiff
path: root/image/codecs/indeo
diff options
context:
space:
mode:
authorColin Snover2017-08-24 16:41:51 -0500
committerColin Snover2017-08-24 20:36:08 -0500
commit4a39f85c1b283fe17531cfab4ba9b0cb7a6bd928 (patch)
treed2391491a9b6d8117959d7ab736076f04bf1114e /image/codecs/indeo
parentd39a9272bf0334e5e98801ba06df89b4f59b79b8 (diff)
downloadscummvm-rg350-4a39f85c1b283fe17531cfab4ba9b0cb7a6bd928.tar.gz
scummvm-rg350-4a39f85c1b283fe17531cfab4ba9b0cb7a6bd928.tar.bz2
scummvm-rg350-4a39f85c1b283fe17531cfab4ba9b0cb7a6bd928.zip
IMAGE: Implement handling of key color in Indeo transparency
This should also improve performance by eliminating unnecessary writes to the output bitmap for opaque pixels and by simplifying the rendering loop.
Diffstat (limited to 'image/codecs/indeo')
-rw-r--r--image/codecs/indeo/indeo.cpp3
-rw-r--r--image/codecs/indeo/indeo.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/image/codecs/indeo/indeo.cpp b/image/codecs/indeo/indeo.cpp
index 27db365cf0..34377537d7 100644
--- a/image/codecs/indeo/indeo.cpp
+++ b/image/codecs/indeo/indeo.cpp
@@ -444,7 +444,8 @@ IVI45DecContext::IVI45DecContext() : _gb(nullptr), _frameNum(0), _frameType(0),
_bRefBuf(0), _rvmapSel(0), _inImf(false), _inQ(false), _picGlobQuant(0),
_unknown1(0), _gopHdrSize(0), _gopFlags(0), _lockWord(0), _hasBFrames(false),
_hasTransp(false), _usesTiling(false), _usesHaar(false), _usesFullpel(false),
- _gopInvalid(false), _isIndeo4(false), _pFrame(nullptr), _gotPFrame(false) {
+ _gopInvalid(false), _isIndeo4(false), _transKeyColor(0), _pFrame(nullptr),
+ _gotPFrame(false) {
Common::fill(&_bufInvalid[0], &_bufInvalid[4], 0);
Common::copy(&_ff_ivi_rvmap_tabs[0], &_ff_ivi_rvmap_tabs[9], &_rvmapTabs[0]);
diff --git a/image/codecs/indeo/indeo.h b/image/codecs/indeo/indeo.h
index 6c2a6b17a2..d9740ecf61 100644
--- a/image/codecs/indeo/indeo.h
+++ b/image/codecs/indeo/indeo.h
@@ -420,6 +420,7 @@ public:
int _bufInvalid[4];
bool _isIndeo4;
+ uint32 _transKeyColor;
AVFrame * _pFrame;
bool _gotPFrame;