| Index: cc/layers/delegated_renderer_layer_impl.cc
|
| diff --git a/cc/layers/delegated_renderer_layer_impl.cc b/cc/layers/delegated_renderer_layer_impl.cc
|
| index 0fea04e852c895454ce109530640b01069295254..9032fad7c98312c2f05982e55bc87470586aad81 100644
|
| --- a/cc/layers/delegated_renderer_layer_impl.cc
|
| +++ b/cc/layers/delegated_renderer_layer_impl.cc
|
| @@ -397,13 +397,14 @@ void DelegatedRendererLayerImpl::AppendRenderPassQuads(
|
| for (size_t i = 0; i < delegated_render_pass->quad_list.size(); ++i) {
|
| const DrawQuad* delegated_quad = delegated_render_pass->quad_list[i];
|
|
|
| + bool is_root_delegated_render_pass =
|
| + delegated_render_pass == render_passes_in_draw_order_.back();
|
| +
|
| if (delegated_quad->shared_quad_state != delegated_shared_quad_state) {
|
| delegated_shared_quad_state = delegated_quad->shared_quad_state;
|
| output_shared_quad_state = render_pass->CreateAndAppendSharedQuadState();
|
| output_shared_quad_state->CopyFrom(delegated_shared_quad_state);
|
|
|
| - bool is_root_delegated_render_pass =
|
| - delegated_render_pass == render_passes_in_draw_order_.back();
|
| if (is_root_delegated_render_pass) {
|
| gfx::Transform delegated_frame_to_target_transform = draw_transform();
|
| delegated_frame_to_target_transform.Scale(inverse_device_scale_factor_,
|
| @@ -436,9 +437,17 @@ void DelegatedRendererLayerImpl::AppendRenderPassQuads(
|
| }
|
| DCHECK(output_shared_quad_state);
|
|
|
| + gfx::Transform quad_content_to_delegated_target_space =
|
| + output_shared_quad_state->content_to_target_transform;
|
| + if (!is_root_delegated_render_pass) {
|
| + quad_content_to_delegated_target_space.ConcatTransform(
|
| + render_pass->transform_to_root_target);
|
| + quad_content_to_delegated_target_space.ConcatTransform(draw_transform());
|
| + }
|
| +
|
| gfx::Rect quad_visible_rect = occlusion_tracker.UnoccludedContentRect(
|
| - delegated_quad->visible_rect,
|
| - output_shared_quad_state->content_to_target_transform);
|
| + delegated_quad->visible_rect, quad_content_to_delegated_target_space);
|
| +
|
| if (quad_visible_rect.IsEmpty())
|
| continue;
|
|
|
|
|