Index: cc/layers/render_surface_impl.cc |
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc |
index 9a1edbf0f90e0c2c455d519e51a66ce7d3e6ac10..ddb71584c49138d8df07778d9d77ad17e1ec8193 100644 |
--- a/cc/layers/render_surface_impl.cc |
+++ b/cc/layers/render_surface_impl.cc |
@@ -143,6 +143,12 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink, |
const gfx::Transform& draw_transform = |
for_replica ? replica_draw_transform_ : draw_transform_; |
+ gfx::Rect visible_content_rect = |
+ quad_sink->UnoccludedContributingSurfaceContentRect(content_rect_, |
+ draw_transform); |
+ if (visible_content_rect.IsEmpty()) |
+ return; |
+ |
SharedQuadState* shared_quad_state = |
quad_sink->UseSharedQuadState(SharedQuadState::Create()); |
shared_quad_state->SetAll(draw_transform, |
@@ -154,8 +160,6 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink, |
owning_layer_->blend_mode()); |
if (owning_layer_->ShowDebugBorders()) { |
- gfx::Rect quad_rect = content_rect_; |
- gfx::Rect visible_quad_rect = quad_rect; |
SkColor color = for_replica ? |
DebugColors::SurfaceReplicaBorderColor() : |
DebugColors::SurfaceBorderColor(); |
@@ -167,8 +171,8 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink, |
scoped_ptr<DebugBorderDrawQuad> debug_border_quad = |
DebugBorderDrawQuad::Create(); |
debug_border_quad->SetNew( |
- shared_quad_state, quad_rect, visible_quad_rect, color, width); |
- quad_sink->MaybeAppend(debug_border_quad.PassAs<DrawQuad>()); |
+ shared_quad_state, content_rect_, visible_content_rect, color, width); |
+ quad_sink->Append(debug_border_quad.PassAs<DrawQuad>()); |
} |
// TODO(shawnsingh): By using the same RenderSurfaceImpl for both the content |
@@ -212,7 +216,6 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink, |
uv_scale_y); |
} |
- gfx::Rect visible_content_rect(content_rect_); |
ResourceProvider::ResourceId mask_resource_id = |
mask_layer ? mask_layer->ContentsResourceId() : 0; |
gfx::Rect contents_changed_since_last_frame = |
@@ -229,7 +232,7 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink, |
mask_uv_rect, |
owning_layer_->filters(), |
owning_layer_->background_filters()); |
- quad_sink->MaybeAppend(quad.PassAs<DrawQuad>()); |
+ quad_sink->Append(quad.PassAs<DrawQuad>()); |
} |
} // namespace cc |