Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Unified Diff: third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp

Issue 1972683002: Early reporting of opaqueness by decoders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
diff --git a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
index 824764c5534764548b2c1eaa4225592de2b26d5f..8889cc5af3554430a9028e000435c8f29c18bd22 100644
--- a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
+++ b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
@@ -88,6 +88,19 @@ bool GIFImageDecoder::frameIsCompleteAtIndex(size_t index) const
return m_reader && (index < m_reader->imagesCount()) && m_reader->frameContext(index)->isComplete();
}
+bool GIFImageDecoder::frameHasAlphaAtIndex(size_t index) const
+{
+ if (!frameIsCompleteAtIndex(index))
+ return true;
+ if (m_reader) {
+ const GIFFrameContext& frameContext = *m_reader->frameContext(index);
+ const GIFColorMap::Table& colorTable = frameContext.localColorMap().isDefined() ? frameContext.localColorMap().getTable() : m_reader->globalColorMap().getTable();
+ if (frameContext.transparentPixel() >= colorTable.size())
scroggo_chromium 2016/05/16 20:38:20 Isn't it also possible that this frame does not co
+ return false;
+ }
+ return m_frameBufferCache[index].hasAlpha();
+}
+
float GIFImageDecoder::frameDurationAtIndex(size_t index) const
{
return (m_reader && (index < m_reader->imagesCount()) &&

Powered by Google App Engine
This is Rietveld 408576698