Lines 343-349
bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex)
Link Here
|
343 |
|
343 |
|
344 |
if ((prevMethod == RGBA32Buffer::DisposeNotSpecified) || (prevMethod == RGBA32Buffer::DisposeKeep)) { |
344 |
if ((prevMethod == RGBA32Buffer::DisposeNotSpecified) || (prevMethod == RGBA32Buffer::DisposeKeep)) { |
345 |
// Preserve the last frame as the starting state for this frame. |
345 |
// Preserve the last frame as the starting state for this frame. |
346 |
if (!buffer->copyBitmapData(*prevBuffer)); |
346 |
if (!buffer->copyBitmapData(*prevBuffer)) |
347 |
return setFailed(); |
347 |
return setFailed(); |
348 |
} else { |
348 |
} else { |
349 |
// We want to clear the previous frame to transparent, without |
349 |
// We want to clear the previous frame to transparent, without |
Lines 357-363
bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex)
Link Here
|
357 |
return setFailed(); |
357 |
return setFailed(); |
358 |
} else { |
358 |
} else { |
359 |
// Copy the whole previous buffer, then clear just its frame. |
359 |
// Copy the whole previous buffer, then clear just its frame. |
360 |
if (!buffer->copyBitmapData(*prevBuffer)); |
360 |
if (!buffer->copyBitmapData(*prevBuffer)) |
361 |
return setFailed(); |
361 |
return setFailed(); |
362 |
for (int y = prevRect.y(); y < prevRect.bottom(); ++y) { |
362 |
for (int y = prevRect.y(); y < prevRect.bottom(); ++y) { |
363 |
for (int x = prevRect.x(); x < prevRect.right(); ++x) |
363 |
for (int x = prevRect.x(); x < prevRect.right(); ++x) |
364 |
- |
|
|