aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/gif
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/gif')
-rw-r--r--third_party/gif/SkGifImageReader.cpp2
-rw-r--r--third_party/gif/SkGifImageReader.h8
2 files changed, 8 insertions, 2 deletions
diff --git a/third_party/gif/SkGifImageReader.cpp b/third_party/gif/SkGifImageReader.cpp
index e76028dac9..76f3edcef0 100644
--- a/third_party/gif/SkGifImageReader.cpp
+++ b/third_party/gif/SkGifImageReader.cpp
@@ -762,11 +762,13 @@ bool SkGifImageReader::parse(SkGifImageReader::SkGIFParseQuery query)
isLocalColormapDefined, numColors))
{
m_firstFrameHasAlpha = true;
+ m_firstFrameSupportsIndex8 = true;
} else {
const bool frameIsSubset = xOffset > 0 || yOffset > 0
|| width < fScreenWidth
|| height < fScreenHeight;
m_firstFrameHasAlpha = frameIsSubset;
+ m_firstFrameSupportsIndex8 = !frameIsSubset;
}
}
diff --git a/third_party/gif/SkGifImageReader.h b/third_party/gif/SkGifImageReader.h
index 49655c23df..f105a1de87 100644
--- a/third_party/gif/SkGifImageReader.h
+++ b/third_party/gif/SkGifImageReader.h
@@ -289,6 +289,7 @@ public:
, m_streamBuffer(stream)
, m_parseCompleted(false)
, m_firstFrameHasAlpha(false)
+ , m_firstFrameSupportsIndex8(false)
{
}
@@ -366,6 +367,8 @@ public:
bool firstFrameHasAlpha() const { return m_firstFrameHasAlpha; }
+ bool firstFrameSupportsIndex8() const { return m_firstFrameSupportsIndex8; }
+
// Helper function that returns whether an SkGIFFrameContext has transparency.
// This method is sometimes called before creating one/parsing its color map,
// so it cannot rely on SkGIFFrameContext::transparentPixel or ::localColorMap().
@@ -407,9 +410,10 @@ private:
SkStreamBuffer m_streamBuffer;
bool m_parseCompleted;
- // This value can be computed before we create a SkGIFFrameContext, so we
- // store it here instead of on m_frames[0].
+ // These values can be computed before we create a SkGIFFrameContext, so we
+ // store them here instead of on m_frames[0].
bool m_firstFrameHasAlpha;
+ bool m_firstFrameSupportsIndex8;
};
#endif