Index: third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h |
diff --git a/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h b/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h |
index 06664c71efcd8d4b562fa11ad75a1786e45a3593..66fdb61416a9fe3412755f1340c5e4ab915c3213 100644 |
--- a/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h |
+++ b/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h |
@@ -71,7 +71,7 @@ public: |
// into |pixels| with a stride of |rowBytes|. |
// |
// Returns true if decoding was successful. |
- bool decodeAndScale(const SkImageInfo&, size_t index, void* pixels, size_t rowBytes); |
+ bool decodeAndScale(const SkImageInfo&, size_t index, void* pixels, size_t rowBytes, SkPMColor ctable[] = nullptr, int* ctableCount = nullptr); |
// Decodes YUV components directly into the provided memory planes. |
bool decodeToYUV(SkISize componentSizes[3], void* planes[3], size_t rowBytes[3]); |
@@ -90,6 +90,10 @@ public: |
bool getYUVComponentSizes(SkISize componentSizes[3]); |
+ // Specifies that there is decoder support, to optimize when to call canDecodeTo(). |
+ void setDecoderCanDecodeToIndex8(bool canIt) { m_decoderCanDecodeToIndex8 = canIt; } |
+ bool canDecodeTo(size_t index, SkColorType outputType); |
+ |
private: |
class ExternalMemoryAllocator; |
friend class ImageFrameGeneratorTest; |
@@ -100,11 +104,11 @@ private: |
void setHasAlpha(size_t index, bool hasAlpha); |
// These methods are called while m_decodeMutex is locked. |
- SkBitmap tryToResumeDecode(const SkISize& scaledSize, size_t index); |
+ SkBitmap tryToResumeDecode(const SkISize& scaledSize, size_t index, SkColorType outputColor); |
// Use the given decoder to decode. If a decoder is not given then try to create one. |
// Returns true if decoding was complete. |
- bool decode(size_t index, ImageDecoder**, SkBitmap*); |
+ bool decode(size_t index, ImageDecoder**, SkBitmap*, SkColorType); |
SkISize m_fullSize; |
ThreadSafeDataTransport m_data; |
@@ -127,6 +131,7 @@ private: |
#if COMPILER(MSVC) |
friend struct ::WTF::OwnedPtrDeleter<ExternalMemoryAllocator>; |
#endif |
+ bool m_decoderCanDecodeToIndex8; |
}; |
} // namespace blink |