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

Unified Diff: Source/platform/graphics/gpu/WebGLImageConversion.cpp

Issue 1001703003: Take NativeImageSkia out behind the woodshed. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Switch to skia-style API (return bool instead of SkBitmap) Created 5 years, 9 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: Source/platform/graphics/gpu/WebGLImageConversion.cpp
diff --git a/Source/platform/graphics/gpu/WebGLImageConversion.cpp b/Source/platform/graphics/gpu/WebGLImageConversion.cpp
index 0a22029c7c0c8f4fa5911a451acface5abd97638..82c6c4037e2175f94b014942490d8f4cc83a628b 100644
--- a/Source/platform/graphics/gpu/WebGLImageConversion.cpp
+++ b/Source/platform/graphics/gpu/WebGLImageConversion.cpp
@@ -1539,18 +1539,18 @@ WebGLImageConversion::ImageExtractor::ImageExtractor(Image* image, ImageHtmlDomS
WebGLImageConversion::ImageExtractor::~ImageExtractor()
{
- if (m_skiaImage)
- m_skiaImage->bitmap().unlockPixels();
+ if (!m_skiaBitmap.isNull())
+ m_skiaBitmap.unlockPixels();
}
bool WebGLImageConversion::ImageExtractor::extractImage(bool premultiplyAlpha, bool ignoreGammaAndColorProfile)
{
if (!m_image)
return false;
- m_skiaImage = m_image->nativeImageForCurrentFrame();
+ bool success = m_image->bitmapForCurrentFrame(&m_skiaBitmap);
m_alphaOp = AlphaDoNothing;
- bool hasAlpha = m_skiaImage ? !m_skiaImage->bitmap().isOpaque() : true;
- if ((!m_skiaImage || ignoreGammaAndColorProfile || (hasAlpha && !premultiplyAlpha)) && m_image->data()) {
+ bool hasAlpha = success ? !m_skiaBitmap.isOpaque() : true;
+ if ((!success || ignoreGammaAndColorProfile || (hasAlpha && !premultiplyAlpha)) && m_image->data()) {
// Attempt to get raw unpremultiplied image data.
OwnPtr<ImageDecoder> decoder(ImageDecoder::create(
*(m_image->data()), ImageSource::AlphaNotPremultiplied,
@@ -1564,12 +1564,12 @@ bool WebGLImageConversion::ImageExtractor::extractImage(bool premultiplyAlpha, b
if (!frame || frame->status() != ImageFrame::FrameComplete)
return false;
hasAlpha = frame->hasAlpha();
- m_nativeImage = frame->asNewNativeImage();
- if (!m_nativeImage.get() || !m_nativeImage->isDataComplete() || !m_nativeImage->bitmap().width() || !m_nativeImage->bitmap().height())
+ m_bitmap = frame->bitmap();
+ if (m_bitmap.isNull() || !m_bitmap.isImmutable() || !m_bitmap.width() || !m_bitmap.height())
return false;
- if (m_nativeImage->bitmap().colorType() != kN32_SkColorType)
+ if (m_bitmap.colorType() != kN32_SkColorType)
return false;
- m_skiaImage = m_nativeImage.get();
+ m_skiaBitmap = m_bitmap;
if (hasAlpha && premultiplyAlpha)
m_alphaOp = AlphaDoPremultiply;
} else if (!premultiplyAlpha && hasAlpha) {
@@ -1580,24 +1580,24 @@ bool WebGLImageConversion::ImageExtractor::extractImage(bool premultiplyAlpha, b
if (m_imageHtmlDomSource != HtmlDomVideo)
m_alphaOp = AlphaDoUnmultiply;
}
- if (!m_skiaImage)
+ if (!success)
return false;
m_imageSourceFormat = SK_B32_SHIFT ? DataFormatRGBA8 : DataFormatBGRA8;
- m_imageWidth = m_skiaImage->bitmap().width();
- m_imageHeight = m_skiaImage->bitmap().height();
+ m_imageWidth = m_skiaBitmap.width();
+ m_imageHeight = m_skiaBitmap.height();
if (!m_imageWidth || !m_imageHeight) {
- m_skiaImage.clear();
+ m_skiaBitmap.reset();
return false;
}
// Fail if the image was downsampled because of memory limits.
if (m_imageWidth != (unsigned)m_image->size().width() || m_imageHeight != (unsigned)m_image->size().height()) {
- m_skiaImage.clear();
+ m_skiaBitmap.reset();
return false;
}
m_imageSourceUnpackAlignment = 0;
- m_skiaImage->bitmap().lockPixels();
- m_imagePixelData = m_skiaImage->bitmap().getPixels();
+ m_skiaBitmap.lockPixels();
+ m_imagePixelData = m_skiaBitmap.getPixels();
return true;
}
« no previous file with comments | « Source/platform/graphics/gpu/WebGLImageConversion.h ('k') | Source/platform/graphics/skia/NativeImageSkia.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698