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

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

Issue 11558039: Subrect snapshot support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added intersect of src_size to actual texture_size Created 8 years 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: 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 c6991308572065f082609ad5d3cba55c25ce5996..9289105d13da077f1c36766905a088105c9e82fb 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -131,15 +131,23 @@ void RenderWidgetHostViewAndroid::SetBounds(const gfx::Rect& rect) {
}
WebKit::WebGLId RenderWidgetHostViewAndroid::GetScaledContentTexture(
- const gfx::Size& size) {
+ const gfx::Size& size,
+ const gfx::Rect& src_rect) {
if (!CompositorImpl::IsInitialized() ||
texture_id_in_layer_ == 0 ||
texture_size_in_layer_.IsEmpty())
return 0;
+ // Intersect the rects to make sure we aren't trying to grab area from
+ // outside the texture area.
+ gfx::Rect intersected_rect(gfx::IntersectRects(
+ src_rect,
+ gfx::Rect(texture_size_in_layer_)));
+
GLHelper* helper = ImageTransportFactoryAndroid::GetInstance()->GetGLHelper();
return helper->CopyAndScaleTexture(texture_id_in_layer_,
texture_size_in_layer_,
+ intersected_rect,
size,
true);
}
@@ -157,10 +165,12 @@ bool RenderWidgetHostViewAndroid::PopulateBitmapWithContents(jobject jbitmap) {
GLHelper* helper = ImageTransportFactoryAndroid::GetInstance()->GetGLHelper();
- WebKit::WebGLId texture = helper->CopyAndScaleTexture(texture_id_in_layer_,
- texture_size_in_layer_,
- bitmap.size(),
- true);
+ WebKit::WebGLId texture = helper->CopyAndScaleTexture(
+ texture_id_in_layer_,
+ texture_size_in_layer_,
+ gfx::Rect(texture_size_in_layer_),
+ bitmap.size(),
+ true);
if (texture == 0)
return false;

Powered by Google App Engine
This is Rietveld 408576698