diff options
author | danakj <danakj@chromium.org> | 2015-02-13 17:42:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-14 01:44:01 +0000 |
commit | 83c3d4a861627992abf7a42c7c02163f416add23 (patch) | |
tree | 6919b81ba1806c1d066da7716f6c38dcb4359dee /cc | |
parent | ce6a45c39634ba62952a6995991e63a7a886e38c (diff) | |
download | chromium_src-83c3d4a861627992abf7a42c7c02163f416add23.zip chromium_src-83c3d4a861627992abf7a42c7c02163f416add23.tar.gz chromium_src-83c3d4a861627992abf7a42c7c02163f416add23.tar.bz2 |
cc: Stop passing the occlusion explicitly to UpdateTiles.
The occlusion is a draw property, the layer can access it from there
like other draw properties.
Cleanup CL since moving occlusion to draw properties.
R=enne
BUG=446751
Review URL: https://codereview.chromium.org/924143005
Cr-Commit-Position: refs/heads/master@{#316355}
Diffstat (limited to 'cc')
-rw-r--r-- | cc/layers/picture_image_layer_impl_unittest.cc | 2 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.cc | 15 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.h | 4 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl_unittest.cc | 22 | ||||
-rw-r--r-- | cc/resources/tile_manager_perftest.cc | 10 | ||||
-rw-r--r-- | cc/trees/layer_tree_impl.cc | 8 |
6 files changed, 26 insertions, 35 deletions
diff --git a/cc/layers/picture_image_layer_impl_unittest.cc b/cc/layers/picture_image_layer_impl_unittest.cc index cf22855..93583b9 100644 --- a/cc/layers/picture_image_layer_impl_unittest.cc +++ b/cc/layers/picture_image_layer_impl_unittest.cc @@ -80,7 +80,7 @@ class PictureImageLayerImplTest : public testing::Test { animating_transform_to_screen; layer->draw_properties().visible_content_rect = viewport_rect; bool resourceless_software_draw = false; - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); } protected: diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 86ce10e..586d84c 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -408,8 +408,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, CleanUpTilingsOnActiveLayer(last_append_quads_tilings_); } -bool PictureLayerImpl::UpdateTiles(const Occlusion& occlusion_in_content_space, - bool resourceless_software_draw) { +bool PictureLayerImpl::UpdateTiles(bool resourceless_software_draw) { DCHECK_EQ(1.f, contents_scale_x()); DCHECK_EQ(1.f, contents_scale_y()); @@ -452,12 +451,6 @@ bool PictureLayerImpl::UpdateTiles(const Occlusion& occlusion_in_content_space, if (draw_transform_is_animating()) raster_source_->SetShouldAttemptToUseDistanceFieldText(); - return UpdateTilePriorities(occlusion_in_content_space); -} - -bool PictureLayerImpl::UpdateTilePriorities( - const Occlusion& occlusion_in_content_space) { - DCHECK_IMPLIES(raster_source_->IsSolidColor(), tilings_->num_tilings() == 0); double current_frame_time_in_seconds = (layer_tree_impl()->CurrentBeginFrameArgs().frame_time - @@ -480,6 +473,12 @@ bool PictureLayerImpl::UpdateTilePriorities( !only_used_low_res_last_append_quads_ || RequiresHighResToDraw() || !layer_tree_impl()->SmoothnessTakesPriority(); + static const Occlusion kEmptyOcclusion; + const Occlusion& occlusion_in_content_space = + layer_tree_impl()->settings().use_occlusion_for_tile_prioritization + ? draw_properties().occlusion_in_content_space + : kEmptyOcclusion; + // Pass |occlusion_in_content_space| for |occlusion_in_layer_space| since // they are the same space in picture layer, as contents scale is always 1. bool updated = tilings_->UpdateTilePriorities( diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h index dbc3804..e6ddf36 100644 --- a/cc/layers/picture_layer_impl.h +++ b/cc/layers/picture_layer_impl.h @@ -79,8 +79,7 @@ class CC_EXPORT PictureLayerImpl void UpdateRasterSource(scoped_refptr<RasterSource> raster_source, Region* new_invalidation, const PictureLayerTilingSet* pending_set); - bool UpdateTiles(const Occlusion& occlusion_in_content_space, - bool resourceless_software_draw); + bool UpdateTiles(bool resourceless_software_draw); // Mask-related functions. void GetContentsResourceId(ResourceProvider::ResourceId* resource_id, @@ -116,7 +115,6 @@ class CC_EXPORT PictureLayerImpl PictureLayerTiling* AddTiling(float contents_scale); void RemoveAllTilings(); void AddTilingsForRasterScale(); - bool UpdateTilePriorities(const Occlusion& occlusion_in_content_space); virtual bool ShouldAdjustRasterScale() const; virtual void RecalculateRasterScales(); void CleanUpTilingsOnActiveLayer( diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc index 7d4fb40..759d771 100644 --- a/cc/layers/picture_layer_impl_unittest.cc +++ b/cc/layers/picture_layer_impl_unittest.cc @@ -240,7 +240,7 @@ class PictureLayerImplTest : public testing::Test { layer->draw_properties().screen_space_transform_is_animating = animating_transform_to_screen; bool resourceless_software_draw = false; - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); } static void VerifyAllTilesExistAndHavePile( const PictureLayerTiling* tiling, @@ -516,7 +516,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { resourceless_software_draw); active_layer_->draw_properties().visible_content_rect = viewport; active_layer_->draw_properties().screen_space_transform = transform; - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); gfx::Rect visible_rect_for_tile_priority = active_layer_->visible_rect_for_tile_priority(); @@ -540,7 +540,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { viewport, transform, resourceless_software_draw); - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); // Transform for tile priority is updated. EXPECT_TRANSFORMATION_MATRIX_EQ(transform, @@ -560,7 +560,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { viewport, transform, resourceless_software_draw); - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); EXPECT_TRANSFORMATION_MATRIX_EQ(transform, active_layer_->screen_space_transform()); @@ -1707,7 +1707,7 @@ TEST_F(NoLowResPictureLayerImplTest, MarkRequiredOffscreenTiles) { time_ticks += base::TimeDelta::FromMilliseconds(1); host_impl_.SetCurrentBeginFrameArgs( CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); - pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + pending_layer_->UpdateTiles(resourceless_software_draw); int num_visible = 0; int num_offscreen = 0; @@ -1773,7 +1773,7 @@ TEST_F(NoLowResPictureLayerImplTest, time_ticks += base::TimeDelta::FromMilliseconds(200); host_impl_.SetCurrentBeginFrameArgs( CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); - pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + pending_layer_->UpdateTiles(resourceless_software_draw); // Intersect the two rects. Any tile outside should not be required for // activation. @@ -2928,7 +2928,7 @@ TEST_F(PictureLayerImplTest, TilingSetRasterQueue) { pending_layer_->draw_properties().visible_content_rect = gfx::Rect(1100, 1100, 500, 500); bool resourceless_software_draw = false; - pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + pending_layer_->UpdateTiles(resourceless_software_draw); unique_tiles.clear(); high_res_tile_count = 0u; @@ -2959,7 +2959,7 @@ TEST_F(PictureLayerImplTest, TilingSetRasterQueue) { pending_layer_->draw_properties().visible_content_rect = gfx::Rect(0, 0, 500, 500); - pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + pending_layer_->UpdateTiles(resourceless_software_draw); std::vector<Tile*> high_res_tiles = pending_layer_->HighResTiling()->AllTilesForTesting(); @@ -3576,7 +3576,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { resourceless_software_draw); active_layer_->draw_properties().visible_content_rect = viewport; active_layer_->draw_properties().screen_space_transform = transform; - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); gfx::Rect visible_rect_for_tile_priority = active_layer_->visible_rect_for_tile_priority(); @@ -3600,7 +3600,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { viewport, transform, resourceless_software_draw); - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); // Transform for tile priority is updated. EXPECT_TRANSFORMATION_MATRIX_EQ(transform, @@ -3620,7 +3620,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { viewport, transform, resourceless_software_draw); - active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); + active_layer_->UpdateTiles(resourceless_software_draw); EXPECT_TRANSFORMATION_MATRIX_EQ(transform, active_layer_->screen_space_transform()); diff --git a/cc/resources/tile_manager_perftest.cc b/cc/resources/tile_manager_perftest.cc index bb4ce7c..7c316ac 100644 --- a/cc/resources/tile_manager_perftest.cc +++ b/cc/resources/tile_manager_perftest.cc @@ -179,7 +179,7 @@ class TileManagerPerfTest : public testing::Test { std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); bool resourceless_software_draw = false; for (const auto& layer : layers) - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); timer_.Reset(); do { @@ -207,7 +207,7 @@ class TileManagerPerfTest : public testing::Test { std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 100); bool resourceless_software_draw = false; for (const auto& layer : layers) - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); int priority_count = 0; timer_.Reset(); @@ -243,7 +243,7 @@ class TileManagerPerfTest : public testing::Test { std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); bool resourceless_software_draw = false; for (const auto& layer : layers) { - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); for (size_t i = 0; i < layer->num_tilings(); ++i) { tile_manager()->InitializeTilesWithResourcesForTesting( layer->tilings()->tiling_at(i)->AllTilesForTesting()); @@ -278,7 +278,7 @@ class TileManagerPerfTest : public testing::Test { CreateLayers(layer_count, tile_count); bool resourceless_software_draw = false; for (const auto& layer : layers) { - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); for (size_t i = 0; i < layer->num_tilings(); ++i) { tile_manager()->InitializeTilesWithResourcesForTesting( layer->tilings()->tiling_at(i)->AllTilesForTesting()); @@ -387,7 +387,7 @@ class TileManagerPerfTest : public testing::Test { CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE); host_impl_.UpdateCurrentBeginFrameArgs(args); for (const auto& layer : layers) - layer->UpdateTiles(Occlusion(), resourceless_software_draw); + layer->UpdateTiles(resourceless_software_draw); GlobalStateThatImpactsTilePriority global_state(GlobalStateForTest()); tile_manager()->PrepareTiles(global_state); diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc index 443308b..6a64086 100644 --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc @@ -654,7 +654,6 @@ bool LayerTreeImpl::UpdateDrawProperties() { const bool resourceless_software_draw = (layer_tree_host_impl_->GetDrawMode() == DRAW_MODE_RESOURCELESS_SOFTWARE); - static const Occlusion kEmptyOcclusion; size_t layers_updated_count = 0; bool tile_priorities_updated = false; for (PictureLayerImpl* layer : picture_layers_) { @@ -662,12 +661,7 @@ bool LayerTreeImpl::UpdateDrawProperties() { if (!layer->IsDrawnRenderSurfaceLayerListMember()) continue; ++layers_updated_count; - const Occlusion& occlusion = - settings().use_occlusion_for_tile_prioritization - ? layer->draw_properties().occlusion_in_content_space - : kEmptyOcclusion; - tile_priorities_updated |= - layer->UpdateTiles(occlusion, resourceless_software_draw); + tile_priorities_updated |= layer->UpdateTiles(resourceless_software_draw); } if (tile_priorities_updated) |