Chromium Code Reviews| Index: cc/layers/tiled_layer_unittest.cc |
| diff --git a/cc/layers/tiled_layer_unittest.cc b/cc/layers/tiled_layer_unittest.cc |
| index 42ef29cc93ed27959bb30d510a279d9cb90fe9b9..0a50968ef99ec5609d3a6ea9de90317dfef41170 100644 |
| --- a/cc/layers/tiled_layer_unittest.cc |
| +++ b/cc/layers/tiled_layer_unittest.cc |
| @@ -1134,6 +1134,48 @@ TEST_F(TiledLayerPartialUpdateTest, PartialUpdates) { |
| layer_tree_host_->SetRootLayer(NULL); |
| } |
| +TEST_F(TiledLayerPartialUpdateTest, \ |
|
danakj
2013/12/02 15:06:52
no \ needed
|
| + VerifyUpdateRectIsPreparedFromOriginalDirtyRects) { |
| + // Create one 300 x 200 tiled layer with 3 x 2 tiles. |
| + gfx::Rect layer_bounds(0, 0, 300, 200); |
| + gfx::Rect dirty_rect(75, 75, 50, 50); |
| + gfx::Rect expected_paint_rect(0, 0, 200, 200); |
| + |
| + scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr( |
| + new FakeTiledLayer(layer_tree_host_->contents_texture_manager())); |
| + |
| + layer->SetBounds(layer_bounds.size()); |
| + layer->SetPosition(gfx::PointF(0, 0)); |
| + layer->draw_properties().visible_content_rect = layer_bounds; |
| + layer_tree_host_->SetRootLayer(layer); |
| + layer_tree_host_->SetViewportSize(gfx::Size(300, 200)); |
| + |
| + // Simulate delegating renderer scenario by not allowing partial texture |
| + // updates by default. |
| + const_cast<RendererCapabilities&>(layer_tree_host_->proxy()-> |
| + GetRendererCapabilities()).allow_partial_texture_updates = false; |
| + |
| + // Update all tiles in first update. |
| + layer->InvalidateContentRect(layer_bounds); |
| + layer_tree_host_->UpdateLayers(queue_.get()); |
| + UpdateTextures(); |
| + |
| + // Now update_rect should contain only dirty_rect. |
| + layer->InvalidateContentRect(dirty_rect); |
| + layer_tree_host_->UpdateLayers(queue_.get()); |
| + UpdateTextures(); |
| + |
| + gfx::Rect paint_rect = layer->fake_layer_updater()->last_update_rect(); |
| + EXPECT_FLOAT_RECT_EQ(static_cast<gfx::RectF>(dirty_rect), |
| + layer->update_rect()); |
| + EXPECT_RECT_EQ(expected_paint_rect, paint_rect); |
| + EXPECT_FALSE(dirty_rect.Contains(paint_rect)); |
| + |
| + ResourceManagerClearAllMemory(layer_tree_host_->contents_texture_manager(), |
| + resource_provider_.get()); |
| + layer_tree_host_->SetRootLayer(NULL); |
| +} |
| + |
| TEST_F(TiledLayerTest, TilesPaintedWithoutOcclusion) { |
| scoped_refptr<FakeTiledLayer> layer = |
| make_scoped_refptr(new FakeTiledLayer(resource_manager_.get())); |