Index: content/browser/renderer_host/render_widget_host_view_android.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
index 8db7f7caa48804b9cc6d76f67f82f3f58d2da5a0..9e9eb509264a7df3c18c95e4d60706218d1bdc21 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -623,11 +623,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
const gfx::Size& dst_size, |
const base::Callback<void(bool, const SkBitmap&)>& callback, |
const SkBitmap::Config bitmap_config) { |
- // Only ARGB888 and RGB565 supported as of now. |
- bool format_support = ((bitmap_config == SkBitmap::kRGB_565_Config) || |
- (bitmap_config == SkBitmap::kARGB_8888_Config)); |
- if (!format_support) { |
- DCHECK(format_support); |
+ if (!IsReadbackConfigSupported(bitmap_config)) { |
callback.Run(false, SkBitmap()); |
return; |
} |
@@ -636,18 +632,6 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
callback.Run(false, SkBitmap()); |
return; |
} |
- ImageTransportFactoryAndroid* factory = |
- ImageTransportFactoryAndroid::GetInstance(); |
- GLHelper* gl_helper = factory->GetGLHelper(); |
- if (!gl_helper) |
- return; |
- bool check_rgb565_support = gl_helper->CanUseRgb565Readback(); |
- if ((bitmap_config == SkBitmap::kRGB_565_Config) && |
- !check_rgb565_support) { |
- LOG(ERROR) << "Readbackformat rgb565 not supported"; |
- callback.Run(false, SkBitmap()); |
- return; |
- } |
const gfx::Display& display = |
gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
float device_scale_factor = display.device_scale_factor(); |
@@ -1355,6 +1339,7 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult( |
ImageTransportFactoryAndroid* factory = |
ImageTransportFactoryAndroid::GetInstance(); |
GLHelper* gl_helper = factory->GetGLHelper(); |
+ |
if (!gl_helper) |
return; |
@@ -1421,6 +1406,16 @@ void RenderWidgetHostViewAndroid::PrepareBitmapCopyOutputResult( |
callback.Run(true, *source); |
} |
+bool RenderWidgetHostViewAndroid::IsReadbackConfigSupported( |
+ SkBitmap::Config bitmap_config) { |
+ ImageTransportFactoryAndroid* factory = |
+ ImageTransportFactoryAndroid::GetInstance(); |
+ GLHelper* gl_helper = factory->GetGLHelper(); |
+ if (!gl_helper) |
+ return false; |
+ return gl_helper->IsReadbackConfigSupported(bitmap_config); |
+} |
+ |
// static |
void RenderWidgetHostViewPort::GetDefaultScreenInfo( |
blink::WebScreenInfo* results) { |