| Index: content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| diff --git a/content/browser/android/in_process/synchronous_compositor_output_surface.cc b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| index 6701965726aab242bc95ee80b31f7d59eae80430..682c530dc3938d61d0557ddb5e439a1998102c00 100644
|
| --- a/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| +++ b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| @@ -165,13 +165,20 @@ SynchronousCompositorOutputSurface::DemandDrawHw(
|
| gfx::Size surface_size,
|
| const gfx::Transform& transform,
|
| gfx::Rect viewport,
|
| - gfx::Rect clip) {
|
| + gfx::Rect clip,
|
| + gfx::Rect viewport_rect_for_tile_priority,
|
| + const gfx::Transform& transform_for_tile_priority) {
|
| DCHECK(CalledOnValidThread());
|
| DCHECK(HasClient());
|
| DCHECK(context_provider_);
|
|
|
| surface_size_ = surface_size;
|
| - InvokeComposite(transform, viewport, clip, true);
|
| + InvokeComposite(transform,
|
| + viewport,
|
| + clip,
|
| + viewport_rect_for_tile_priority,
|
| + transform_for_tile_priority,
|
| + true);
|
|
|
| return frame_holder_.Pass();
|
| }
|
| @@ -193,7 +200,9 @@ SynchronousCompositorOutputSurface::DemandDrawSw(SkCanvas* canvas) {
|
| surface_size_ = gfx::Size(canvas->getDeviceSize().width(),
|
| canvas->getDeviceSize().height());
|
|
|
| - InvokeComposite(transform, clip, clip, false);
|
| + // Resourceless software draw does not need viewport_for_tiling.
|
| + gfx::Rect empty;
|
| + InvokeComposite(transform, clip, clip, empty, gfx::Transform(), false);
|
|
|
| return frame_holder_.Pass();
|
| }
|
| @@ -202,6 +211,8 @@ void SynchronousCompositorOutputSurface::InvokeComposite(
|
| const gfx::Transform& transform,
|
| gfx::Rect viewport,
|
| gfx::Rect clip,
|
| + gfx::Rect viewport_rect_for_tile_priority,
|
| + gfx::Transform transform_for_tile_priority,
|
| bool hardware_draw) {
|
| DCHECK(!invoking_composite_);
|
| DCHECK(!frame_holder_.get());
|
| @@ -209,8 +220,12 @@ void SynchronousCompositorOutputSurface::InvokeComposite(
|
|
|
| gfx::Transform adjusted_transform = transform;
|
| AdjustTransform(&adjusted_transform, viewport);
|
| - SetExternalDrawConstraints(
|
| - adjusted_transform, viewport, clip, !hardware_draw);
|
| + SetExternalDrawConstraints(adjusted_transform,
|
| + viewport,
|
| + clip,
|
| + viewport_rect_for_tile_priority,
|
| + transform_for_tile_priority,
|
| + !hardware_draw);
|
| SetNeedsRedrawRect(gfx::Rect(viewport.size()));
|
| client_->BeginFrame(cc::BeginFrameArgs::CreateForSynchronousCompositor());
|
|
|
| @@ -221,11 +236,16 @@ void SynchronousCompositorOutputSurface::InvokeComposite(
|
| cached_hw_transform_ = adjusted_transform;
|
| cached_hw_viewport_ = viewport;
|
| cached_hw_clip_ = clip;
|
| + cached_hw_viewport_rect_for_tile_priority_ =
|
| + viewport_rect_for_tile_priority;
|
| + cached_hw_transform_for_tile_priority_ = transform_for_tile_priority;
|
| } else {
|
| bool resourceless_software_draw = false;
|
| SetExternalDrawConstraints(cached_hw_transform_,
|
| cached_hw_viewport_,
|
| cached_hw_clip_,
|
| + cached_hw_viewport_rect_for_tile_priority_,
|
| + cached_hw_transform_for_tile_priority_,
|
| resourceless_software_draw);
|
| }
|
|
|
|
|