summaryrefslogtreecommitdiffstats
path: root/cc/layers/io_surface_layer_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/layers/io_surface_layer_impl.cc')
-rw-r--r--cc/layers/io_surface_layer_impl.cc8
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() {