diff options
Diffstat (limited to 'cc/layers/io_surface_layer_impl.cc')
-rw-r--r-- | cc/layers/io_surface_layer_impl.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cc/layers/io_surface_layer_impl.cc b/cc/layers/io_surface_layer_impl.cc index 4287978..c40e05e 100644 --- a/cc/layers/io_surface_layer_impl.cc +++ b/cc/layers/io_surface_layer_impl.cc @@ -113,7 +113,11 @@ void IOSurfaceLayerImpl::AppendQuads(QuadSink* quad_sink, gfx::Rect quad_rect(content_bounds()); gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect()); - gfx::Rect visible_quad_rect(quad_rect); + gfx::Rect visible_quad_rect = quad_sink->UnoccludedContentRect( + quad_rect, draw_properties().target_space_transform); + if (visible_quad_rect.IsEmpty()) + return; + scoped_ptr<IOSurfaceDrawQuad> quad = IOSurfaceDrawQuad::Create(); quad->SetNew(shared_quad_state, quad_rect, @@ -122,7 +126,7 @@ void IOSurfaceLayerImpl::AppendQuads(QuadSink* quad_sink, io_surface_size_, io_surface_resource_id_, IOSurfaceDrawQuad::FLIPPED); - quad_sink->MaybeAppend(quad.PassAs<DrawQuad>()); + quad_sink->Append(quad.PassAs<DrawQuad>()); } void IOSurfaceLayerImpl::ReleaseResources() { |