don't keep the transparent palette colour from the previous frame for the next one which may not have any transparency at all (#9747)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-08-03 00:36:52 +00:00
parent ef5571c62a
commit 4c0ce682d8

View File

@@ -598,7 +598,7 @@ bool wxGIFDecoder::CanRead(wxInputStream &stream) const
wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream) wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream)
{ {
unsigned int global_ncolors = 0; unsigned int global_ncolors = 0;
int bits, interl, transparent, i; int bits, interl, i;
wxAnimationDisposal disposal; wxAnimationDisposal disposal;
long size; long size;
long delay; long delay;
@@ -660,7 +660,7 @@ wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream)
} }
// transparent colour, disposal method and delay default to unused // transparent colour, disposal method and delay default to unused
transparent = -1; int transparent = -1;
disposal = wxANIM_UNSPECIFIED; disposal = wxANIM_UNSPECIFIED;
delay = -1; delay = -1;
@@ -710,8 +710,7 @@ wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream)
delay = 10 * (buf[2] + 256 * buf[3]); delay = 10 * (buf[2] + 256 * buf[3]);
// read transparent colour index, if used // read transparent colour index, if used
if (buf[1] & 0x01) transparent = buf[1] & 0x01 ? buf[4] : -1;
transparent = buf[4];
// read disposal method // read disposal method
disposal = (wxAnimationDisposal)(((buf[1] & 0x1C) >> 2) - 1); disposal = (wxAnimationDisposal)(((buf[1] & 0x1C) >> 2) - 1);
@@ -758,7 +757,7 @@ wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream)
pimg->h = buf[6] + 256 * buf[7]; pimg->h = buf[6] + 256 * buf[7];
if ( anim && ((pimg->w == 0) || (pimg->w > (unsigned int)m_szAnimation.GetWidth()) || if ( anim && ((pimg->w == 0) || (pimg->w > (unsigned int)m_szAnimation.GetWidth()) ||
(pimg->h == 0) || (pimg->h > (unsigned int)m_szAnimation.GetHeight())) ) (pimg->h == 0) || (pimg->h > (unsigned int)m_szAnimation.GetHeight())) )
return wxGIF_INVFORMAT; return wxGIF_INVFORMAT;
interl = ((buf[8] & 0x40)? 1 : 0); interl = ((buf[8] & 0x40)? 1 : 0);