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

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 1095993002: Fallback to RGBA_8888 if readback format is not supported (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_android.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f687931630d13362e870a52b05148dbc3da4b7a4..59a51e80533470073e68a679fee28e56f9ce697a 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -2003,17 +2003,21 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult(
else
output_size_in_pixel = dst_size_in_pixel;
- scoped_ptr<SkBitmap> bitmap(new SkBitmap);
- if (!bitmap->tryAllocPixels(SkImageInfo::Make(output_size_in_pixel.width(),
- output_size_in_pixel.height(),
- color_type,
- kOpaque_SkAlphaType))) {
+ SkColorType preferred_color_type = color_type;
no sievers 2015/04/22 20:20:39 Can we make color_type non-const instead and overw
patro 2015/04/23 09:43:46 Done.
+ GLHelper* gl_helper = GetPostReadbackGLHelper();
+ if (gl_helper) {
no sievers 2015/04/22 20:20:39 nit: if (!gl_helper) return
patro 2015/04/23 09:43:46 Done.
+ if (!gl_helper->IsReadbackConfigSupported(preferred_color_type))
+ preferred_color_type = kRGBA_8888_SkColorType;
+ } else {
return;
}
- GLHelper* gl_helper = GetPostReadbackGLHelper();
- if (!gl_helper || !gl_helper->IsReadbackConfigSupported(color_type))
+ scoped_ptr<SkBitmap> bitmap(new SkBitmap);
+ if (!bitmap->tryAllocPixels(SkImageInfo::Make(
+ output_size_in_pixel.width(), output_size_in_pixel.height(),
+ preferred_color_type, kOpaque_SkAlphaType))) {
return;
+ }
scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock(
new SkAutoLockPixels(*bitmap));
@@ -2029,37 +2033,15 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult(
ignore_result(scoped_callback_runner.Release());
gl_helper->CropScaleReadbackAndCleanMailbox(
- texture_mailbox.mailbox(),
- texture_mailbox.sync_point(),
- result->size(),
- gfx::Rect(result->size()),
- output_size_in_pixel,
- pixels,
- color_type,
- base::Bind(&CopyFromCompositingSurfaceFinished,
- callback,
- base::Passed(&release_callback),
- base::Passed(&bitmap),
- start_time,
- base::Passed(&bitmap_pixels_lock)),
+ texture_mailbox.mailbox(), texture_mailbox.sync_point(), result->size(),
+ gfx::Rect(result->size()), output_size_in_pixel, pixels,
+ preferred_color_type,
+ base::Bind(&CopyFromCompositingSurfaceFinished, callback,
+ base::Passed(&release_callback), base::Passed(&bitmap),
+ start_time, base::Passed(&bitmap_pixels_lock)),
GLHelper::SCALER_QUALITY_GOOD);
}
-SkColorType RenderWidgetHostViewAndroid::PreferredReadbackFormat() {
- // Define the criteria here. If say the 16 texture readback is
- // supported we should go with that (this degrades quality)
- // or stick back to the default format.
- if (base::SysInfo::IsLowEndDevice()) {
- // TODO(sievers): Cannot use GLHelper here. Instead remove this API
- // and have CopyFromCompositingSurface() fall back to RGB8 if 565 was
- // requested but is not supported.
- GLHelper* gl_helper = GetPostReadbackGLHelper();
- if (gl_helper && gl_helper->IsReadbackConfigSupported(kRGB_565_SkColorType))
- return kRGB_565_SkColorType;
- }
- return kN32_SkColorType;
-}
-
void RenderWidgetHostViewAndroid::OnStylusSelectBegin(float x0,
float y0,
float x1,
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698