diff options
Diffstat (limited to 'WebCore/platform/image-decoders/png')
-rw-r--r-- | WebCore/platform/image-decoders/png/PNGImageDecoder.cpp | 9 | ||||
-rw-r--r-- | WebCore/platform/image-decoders/png/PNGImageDecoder.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp b/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp index 8186f33..940e4c4 100644 --- a/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp +++ b/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp @@ -169,8 +169,9 @@ private: unsigned m_currentBufferSize; }; -PNGImageDecoder::PNGImageDecoder() - : m_doNothingOnFailure(false) +PNGImageDecoder::PNGImageDecoder(bool premultiplyAlpha) + : ImageDecoder(premultiplyAlpha) + , m_doNothingOnFailure(false) { } @@ -200,8 +201,10 @@ RGBA32Buffer* PNGImageDecoder::frameBufferAtIndex(size_t index) if (index) return 0; - if (m_frameBufferCache.isEmpty()) + if (m_frameBufferCache.isEmpty()) { m_frameBufferCache.resize(1); + m_frameBufferCache[0].setPremultiplyAlpha(m_premultiplyAlpha); + } RGBA32Buffer& frame = m_frameBufferCache[0]; if (frame.status() != RGBA32Buffer::FrameComplete) diff --git a/WebCore/platform/image-decoders/png/PNGImageDecoder.h b/WebCore/platform/image-decoders/png/PNGImageDecoder.h index 145fc4d..763b88f 100644 --- a/WebCore/platform/image-decoders/png/PNGImageDecoder.h +++ b/WebCore/platform/image-decoders/png/PNGImageDecoder.h @@ -36,7 +36,7 @@ namespace WebCore { // This class decodes the PNG image format. class PNGImageDecoder : public ImageDecoder { public: - PNGImageDecoder(); + PNGImageDecoder(bool premultiplyAlpha); virtual ~PNGImageDecoder(); // ImageDecoder |