Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / cc / layers / tiled_layer_impl.cc
index 3b84a5c..a510883 100644 (file)
@@ -158,8 +158,9 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
   DCHECK(!visible_content_rect().IsEmpty());
 
   gfx::Rect content_rect = visible_content_rect();
-  SharedQuadState* shared_quad_state =
-      quad_sink->UseSharedQuadState(CreateSharedQuadState());
+  SharedQuadState* shared_quad_state = quad_sink->CreateSharedQuadState();
+  PopulateSharedQuadState(shared_quad_state);
+
   AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data);
 
   int left, top, right, bottom;
@@ -188,7 +189,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
                                   visible_tile_rect,
                                   border_color,
                                   border_width);
-        quad_sink->MaybeAppend(debug_border_quad.PassAs<DrawQuad>());
+        quad_sink->Append(debug_border_quad.PassAs<DrawQuad>());
       }
     }
   }
@@ -202,12 +203,16 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
       gfx::Rect tile_rect = tiler_->tile_bounds(i, j);
       gfx::Rect display_rect = tile_rect;
       tile_rect.Intersect(content_rect);
-      gfx::Rect visible_tile_rect = tile_rect;
 
       // Skip empty tiles.
       if (tile_rect.IsEmpty())
         continue;
 
+      gfx::Rect visible_tile_rect =
+          quad_sink->UnoccludedContentRect(tile_rect, draw_transform());
+      if (visible_tile_rect.IsEmpty())
+        continue;
+
       if (!tile || !tile->resource_id()) {
         SkColor checker_color;
         if (ShowDebugBorders()) {
@@ -222,9 +227,8 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
             CheckerboardDrawQuad::Create();
         checkerboard_quad->SetNew(
             shared_quad_state, tile_rect, visible_tile_rect, checker_color);
-        if (quad_sink->MaybeAppend(checkerboard_quad.PassAs<DrawQuad>()))
-          append_quads_data->num_missing_tiles++;
-
+        quad_sink->Append(checkerboard_quad.PassAs<DrawQuad>());
+        append_quads_data->num_missing_tiles++;
         continue;
       }
 
@@ -252,7 +256,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
                    tex_coord_rect,
                    texture_size,
                    tile->contents_swizzled());
-      quad_sink->MaybeAppend(quad.PassAs<DrawQuad>());
+      quad_sink->Append(quad.PassAs<DrawQuad>());
     }
   }
 }