Changeset 28925 in webkit
- Timestamp:
- Dec 20, 2007 7:56:09 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r28924 r28925 1 2007-12-20 Peter Kasting <zerodpx@gmail.com> 2 3 Reviewed by Alp Toker. 4 5 http://bugs.webkit.org/show_bug.cgi?id=16508 6 Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly 7 decoded transparent areas. 8 9 * platform/image-decoders/gif/GIFImageDecoder.cpp: 10 (WebCore::GIFImageDecoder::haveDecodedRow): 11 * platform/image-decoders/gif/GIFImageDecoder.h: 12 * platform/image-decoders/gif/GIFImageReader.cpp: 13 (GIFImageReader::output_row): 14 1 15 2007-12-20 Justin Garcia <justin.garcia@apple.com> 2 16 -
trunk/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
r28114 r28925 279 279 unsigned char* rowEnd, 280 280 unsigned rowNumber, // The row index 281 unsigned repeatCount) // How many times to repeat the row 281 unsigned repeatCount, // How many times to repeat the row 282 bool writeTransparentPixels) 282 283 { 283 284 // Initialize the frame if necessary. … … 318 319 } else { 319 320 m_currentBufferSawAlpha = true; 321 // We may or may not need to write transparent pixels to the buffer. 322 // If we're compositing against a previous image, it's wrong, and if 323 // we're writing atop a cleared, fully transparent buffer, it's 324 // unnecessary; but if we're decoding an interlaced gif and 325 // displaying it "Haeberli"-style, we must write these for passes 326 // beyond the first, or the initial passes will "show through" the 327 // later ones. 328 if (writeTransparentPixels) 329 RGBA32Buffer::setRGBA(*currDst, 0, 0, 0, 0); 320 330 } 321 331 currDst++; -
trunk/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
r28068 r28925 65 65 void decodingHalted(unsigned bytesLeft); 66 66 void haveDecodedRow(unsigned frameIndex, unsigned char* rowBuffer, unsigned char* rowEnd, unsigned rowNumber, 67 unsigned repeatCount );67 unsigned repeatCount, bool writeTransparentPixels); 68 68 void frameComplete(unsigned frameIndex, unsigned frameDuration, RGBA32Buffer::FrameDisposalMethod disposalMethod); 69 69 void gifComplete(); -
trunk/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
r28068 r28925 162 162 if (clientptr && frame_reader) 163 163 clientptr->haveDecodedRow(images_count - 1, frame_reader->rowbuf, frame_reader->rowend, 164 drow_start, drow_end - drow_start + 1); 164 drow_start, drow_end - drow_start + 1, 165 gs->progressive_display && gs->interlaced && gs->ipass > 1); 165 166 166 167 gs->rowp = gs->rowbuf;
Note: See TracChangeset
for help on using the changeset viewer.