Index: cc/layers/picture_layer_impl.cc |
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc |
index f13499c1f407d6da89e821b7a5020054aa7fb405..30424f444918c6bb46f856d776d325aaea59952d 100644 |
--- a/cc/layers/picture_layer_impl.cc |
+++ b/cc/layers/picture_layer_impl.cc |
@@ -98,6 +98,29 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink, |
quad_sink->UseSharedQuadState(CreateSharedQuadState()); |
AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data); |
+ if (append_quads_data->cannot_append_tile_draw_quads) { |
+ gfx::Rect geometry_rect = rect; |
+ gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); |
+ gfx::Size texture_size = rect.size(); |
+ gfx::RectF texture_rect = gfx::RectF(texture_size); |
+ gfx::Rect quad_content_rect = rect; |
+ float contents_scale = contents_scale_x(); |
+ |
+ scoped_ptr<PictureDrawQuad> quad = PictureDrawQuad::Create(); |
+ quad->SetNew(shared_quad_state, |
+ geometry_rect, |
+ opaque_rect, |
+ texture_rect, |
+ texture_size, |
+ false, |
+ quad_content_rect, |
+ contents_scale, |
+ pile_); |
+ if (quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data)) |
+ append_quads_data->num_missing_tiles++; |
+ return; |
+ } |
+ |
bool clipped = false; |
gfx::QuadF target_quad = MathUtil::MapQuad( |
draw_transform(), |