, m_actualDecoder(actualDecoder)
, m_orientation(DefaultImageOrientation)
, m_repetitionCount(cAnimationNone)
+ , m_hasColorProfile(false)
{
}
#endif
}
+bool DeferredImageDecoder::enabled()
+{
+ return s_enabled;
+}
+
String DeferredImageDecoder::filenameExtension() const
{
return m_actualDecoder ? m_actualDecoder->filenameExtension() : m_filenameExtension;
return 0;
}
-void DeferredImageDecoder::setData(SharedBuffer* data, bool allDataReceived)
+void DeferredImageDecoder::setData(SharedBuffer& data, bool allDataReceived)
{
if (m_actualDecoder) {
- const bool firstData = !m_data && data;
- const bool moreData = data && data->size() > m_lastDataSize;
+ const bool firstData = !m_data;
+ const bool moreData = data.size() > m_lastDataSize;
m_dataChanged = firstData || moreData;
- m_data = data;
- m_lastDataSize = data->size();
+ m_data = RefPtr<SharedBuffer>(data);
+ m_lastDataSize = data.size();
m_allDataReceived = allDataReceived;
- m_actualDecoder->setData(data, allDataReceived);
+ m_actualDecoder->setData(&data, allDataReceived);
prepareLazyDecodedFrames();
}
if (m_frameGenerator)
- m_frameGenerator->setData(data, allDataReceived);
+ m_frameGenerator->setData(&data, allDataReceived);
}
bool DeferredImageDecoder::isSizeAvailable()
return m_actualDecoder ? m_actualDecoder->isSizeAvailable() : true;
}
+bool DeferredImageDecoder::hasColorProfile() const
+{
+ return m_actualDecoder ? m_actualDecoder->hasColorProfile() : m_hasColorProfile;
+}
+
IntSize DeferredImageDecoder::size() const
{
return m_actualDecoder ? m_actualDecoder->size() : m_size;
m_size = m_actualDecoder->size();
m_orientation = m_actualDecoder->orientation();
m_filenameExtension = m_actualDecoder->filenameExtension();
+ m_hasColorProfile = m_actualDecoder->hasColorProfile();
const bool isSingleFrame = m_actualDecoder->repetitionCount() == cAnimationNone || (m_allDataReceived && m_actualDecoder->frameCount() == 1u);
m_frameGenerator = ImageFrameGenerator::create(SkISize::Make(m_actualDecoder->decodedSize().width(), m_actualDecoder->decodedSize().height()), m_data, m_allDataReceived, !isSingleFrame);
}