diff options
author | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 04:07:49 +0000 |
---|---|---|
committer | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 04:07:49 +0000 |
commit | 262a6b3b8c5140e88d10686e51942a7ea8b94471 (patch) | |
tree | 1efea22176d49358f913f087fbce30f3519eabd3 /cc/resources | |
parent | 8c8aa156c16cd145f4cbdf7ebe199aff4420c5d9 (diff) | |
download | chromium_src-262a6b3b8c5140e88d10686e51942a7ea8b94471.zip chromium_src-262a6b3b8c5140e88d10686e51942a7ea8b94471.tar.gz chromium_src-262a6b3b8c5140e88d10686e51942a7ea8b94471.tar.bz2 |
cc: Removed LCD text settings from the impl side.
Now that the SkPicture is recorded with the correct LCD setting, there
is no need to have any LCD text related setting on the impl side.
BUG=368513
Review URL: https://codereview.chromium.org/324483003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276918 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources')
-rw-r--r-- | cc/resources/picture_layer_tiling.cc | 5 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling.h | 2 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_set.cc | 5 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_set.h | 2 | ||||
-rw-r--r-- | cc/resources/prioritized_tile_set_unittest.cc | 2 | ||||
-rw-r--r-- | cc/resources/raster_mode.cc | 3 | ||||
-rw-r--r-- | cc/resources/raster_mode.h | 9 | ||||
-rw-r--r-- | cc/resources/tile.cc | 13 | ||||
-rw-r--r-- | cc/resources/tile.h | 13 | ||||
-rw-r--r-- | cc/resources/tile_manager.cc | 17 | ||||
-rw-r--r-- | cc/resources/tile_manager.h | 2 | ||||
-rw-r--r-- | cc/resources/tile_manager_unittest.cc | 156 |
12 files changed, 11 insertions, 218 deletions
diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc index 9ab2cf5..5a41951 100644 --- a/cc/resources/picture_layer_tiling.cc +++ b/cc/resources/picture_layer_tiling.cc @@ -122,11 +122,6 @@ Tile* PictureLayerTiling::CreateTile(int i, return tile.get(); } -void PictureLayerTiling::SetCanUseLCDText(bool can_use_lcd_text) { - for (TileMap::iterator it = tiles_.begin(); it != tiles_.end(); ++it) - it->second->set_can_use_lcd_text(can_use_lcd_text); -} - void PictureLayerTiling::CreateMissingTilesInLiveTilesRect() { const PictureLayerTiling* twin_tiling = client_->GetTwinTiling(this); bool include_borders = true; diff --git a/cc/resources/picture_layer_tiling.h b/cc/resources/picture_layer_tiling.h index 131e338..fc7505c 100644 --- a/cc/resources/picture_layer_tiling.h +++ b/cc/resources/picture_layer_tiling.h @@ -129,8 +129,6 @@ class CC_EXPORT PictureLayerTiling { void RemoveTilesInRegion(const Region& layer_region); void CreateMissingTilesInLiveTilesRect(); - void SetCanUseLCDText(bool can_use_lcd_text); - void SetClient(PictureLayerTilingClient* client); void set_resolution(TileResolution resolution) { resolution_ = resolution; } TileResolution resolution() const { return resolution_; } diff --git a/cc/resources/picture_layer_tiling_set.cc b/cc/resources/picture_layer_tiling_set.cc index 9967868..fa76fc1 100644 --- a/cc/resources/picture_layer_tiling_set.cc +++ b/cc/resources/picture_layer_tiling_set.cc @@ -103,11 +103,6 @@ void PictureLayerTilingSet::RemoveTilesInRegion(const Region& region) { tilings_[i]->RemoveTilesInRegion(region); } -void PictureLayerTilingSet::SetCanUseLCDText(bool can_use_lcd_text) { - for (size_t i = 0; i < tilings_.size(); ++i) - tilings_[i]->SetCanUseLCDText(can_use_lcd_text); -} - PictureLayerTiling* PictureLayerTilingSet::AddTiling(float contents_scale) { for (size_t i = 0; i < tilings_.size(); ++i) DCHECK_NE(tilings_[i]->contents_scale(), contents_scale); diff --git a/cc/resources/picture_layer_tiling_set.h b/cc/resources/picture_layer_tiling_set.h index db1e4ef..53de7ce 100644 --- a/cc/resources/picture_layer_tiling_set.h +++ b/cc/resources/picture_layer_tiling_set.h @@ -35,8 +35,6 @@ class CC_EXPORT PictureLayerTilingSet { gfx::Size layer_bounds() const { return layer_bounds_; } - void SetCanUseLCDText(bool can_use_lcd_text); - PictureLayerTiling* AddTiling(float contents_scale); size_t num_tilings() const { return tilings_.size(); } int NumHighResTilings() const; diff --git a/cc/resources/prioritized_tile_set_unittest.cc b/cc/resources/prioritized_tile_set_unittest.cc index 69fef52..f0a01d2 100644 --- a/cc/resources/prioritized_tile_set_unittest.cc +++ b/cc/resources/prioritized_tile_set_unittest.cc @@ -75,7 +75,7 @@ class PrioritizedTileSetTest : public testing::Test { 1.0, 0, 0, - Tile::USE_LCD_TEXT); + 0); } private: diff --git a/cc/resources/raster_mode.cc b/cc/resources/raster_mode.cc index 61375c2..5da8ee7 100644 --- a/cc/resources/raster_mode.cc +++ b/cc/resources/raster_mode.cc @@ -12,9 +12,6 @@ namespace cc { scoped_ptr<base::Value> RasterModeAsValue(RasterMode raster_mode) { switch (raster_mode) { - case HIGH_QUALITY_NO_LCD_RASTER_MODE: - return scoped_ptr<base::Value>( - new base::StringValue("HIGH_QUALITY_NO_LCD_RASTER_MODE")); case HIGH_QUALITY_RASTER_MODE: return scoped_ptr<base::Value>( new base::StringValue("HIGH_QUALITY_RASTER_MODE")); diff --git a/cc/resources/raster_mode.h b/cc/resources/raster_mode.h index 9868059..0a2b4c9 100644 --- a/cc/resources/raster_mode.h +++ b/cc/resources/raster_mode.h @@ -13,15 +13,12 @@ class Value; namespace cc { -// Low quality implies no lcd test; -// high quality implies lcd text. // Note that the order of these matters, from "better" to "worse" in terms of // quality. enum RasterMode { - HIGH_QUALITY_NO_LCD_RASTER_MODE = 0, - HIGH_QUALITY_RASTER_MODE = 1, - LOW_QUALITY_RASTER_MODE = 2, - NUM_RASTER_MODES = 3 + HIGH_QUALITY_RASTER_MODE = 0, + LOW_QUALITY_RASTER_MODE = 1, + NUM_RASTER_MODES = 2 }; scoped_ptr<base::Value> RasterModeAsValue(RasterMode mode); diff --git a/cc/resources/tile.cc b/cc/resources/tile.cc index 485e230..d59dc02 100644 --- a/cc/resources/tile.cc +++ b/cc/resources/tile.cc @@ -71,7 +71,6 @@ scoped_ptr<base::Value> Tile::AsValue() const { res->Set("active_priority", priority_[ACTIVE_TREE].AsValue().release()); res->Set("pending_priority", priority_[PENDING_TREE].AsValue().release()); res->Set("managed_state", managed_state_.AsValue().release()); - res->SetBoolean("can_use_lcd_text", can_use_lcd_text()); res->SetBoolean("use_picture_analysis", use_picture_analysis()); return res.PassAs<base::Value>(); } @@ -94,15 +93,9 @@ RasterMode Tile::DetermineOverallRasterMode() const { RasterMode Tile::DetermineRasterModeForResolution( TileResolution resolution) const { RasterMode current_mode = managed_state_.raster_mode; - RasterMode raster_mode = HIGH_QUALITY_RASTER_MODE; - if (resolution == LOW_RESOLUTION) - raster_mode = LOW_QUALITY_RASTER_MODE; - else if (can_use_lcd_text()) - raster_mode = HIGH_QUALITY_RASTER_MODE; - else if (managed_state_.tile_versions[current_mode].has_text_ || - !managed_state_.tile_versions[current_mode].IsReadyToDraw()) - raster_mode = HIGH_QUALITY_NO_LCD_RASTER_MODE; - + RasterMode raster_mode = resolution == LOW_RESOLUTION + ? LOW_QUALITY_RASTER_MODE + : HIGH_QUALITY_RASTER_MODE; return std::min(raster_mode, current_mode); } diff --git a/cc/resources/tile.h b/cc/resources/tile.h index d7cb16b..f231155 100644 --- a/cc/resources/tile.h +++ b/cc/resources/tile.h @@ -20,7 +20,7 @@ namespace cc { class CC_EXPORT Tile : public RefCountedManaged<Tile> { public: - enum TileRasterFlags { USE_LCD_TEXT = 1 << 0, USE_PICTURE_ANALYSIS = 1 << 1 }; + enum TileRasterFlags { USE_PICTURE_ANALYSIS = 1 << 0 }; typedef uint64 Id; @@ -66,17 +66,6 @@ class CC_EXPORT Tile : public RefCountedManaged<Tile> { return priority_[PENDING_TREE].required_for_activation; } - void set_can_use_lcd_text(bool can_use_lcd_text) { - if (can_use_lcd_text) - flags_ |= USE_LCD_TEXT; - else - flags_ &= ~USE_LCD_TEXT; - } - - bool can_use_lcd_text() const { - return !!(flags_ & USE_LCD_TEXT); - } - bool use_picture_analysis() const { return !!(flags_ & USE_PICTURE_ANALYSIS); } diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc index c96b5e2..e569410 100644 --- a/cc/resources/tile_manager.cc +++ b/cc/resources/tile_manager.cc @@ -30,18 +30,6 @@ namespace { // a tile is of solid color. const bool kUseColorEstimator = true; -class DisableLCDTextFilter : public SkDrawFilter { - public: - // SkDrawFilter interface. - virtual bool filter(SkPaint* paint, SkDrawFilter::Type type) OVERRIDE { - if (type != SkDrawFilter::kText_Type) - return true; - - paint->setLCDRenderText(false); - return true; - } -}; - class RasterTaskImpl : public RasterTask { public: RasterTaskImpl( @@ -146,9 +134,6 @@ class RasterTaskImpl : public RasterTask { case LOW_QUALITY_RASTER_MODE: draw_filter = skia::AdoptRef(new skia::PaintSimplifier); break; - case HIGH_QUALITY_NO_LCD_RASTER_MODE: - draw_filter = skia::AdoptRef(new DisableLCDTextFilter); - break; case HIGH_QUALITY_RASTER_MODE: break; case NUM_RASTER_MODES: @@ -969,7 +954,7 @@ void TileManager::FreeResourcesForTile(Tile* tile) { void TileManager::FreeUnusedResourcesForTile(Tile* tile) { DCHECK(tile->IsReadyToDraw()); ManagedTileState& mts = tile->managed_state(); - RasterMode used_mode = HIGH_QUALITY_NO_LCD_RASTER_MODE; + RasterMode used_mode = LOW_QUALITY_RASTER_MODE; for (int mode = 0; mode < NUM_RASTER_MODES; ++mode) { if (mts.tile_versions[mode].IsReadyToDraw()) { used_mode = static_cast<RasterMode>(mode); diff --git a/cc/resources/tile_manager.h b/cc/resources/tile_manager.h index b36a6b4..30f4730 100644 --- a/cc/resources/tile_manager.h +++ b/cc/resources/tile_manager.h @@ -202,7 +202,7 @@ class CC_EXPORT TileManager : public RasterizerClient, for (size_t i = 0; i < tiles.size(); ++i) { ManagedTileState& mts = tiles[i]->managed_state(); ManagedTileState::TileVersion& tile_version = - mts.tile_versions[HIGH_QUALITY_NO_LCD_RASTER_MODE]; + mts.tile_versions[HIGH_QUALITY_RASTER_MODE]; tile_version.resource_ = resource_pool_->AcquireResource(gfx::Size(1, 1)); diff --git a/cc/resources/tile_manager_unittest.cc b/cc/resources/tile_manager_unittest.cc index eccfb31..4beae8f 100644 --- a/cc/resources/tile_manager_unittest.cc +++ b/cc/resources/tile_manager_unittest.cc @@ -102,7 +102,7 @@ class TileManagerTest : public testing::TestWithParam<bool>, 1.0, 0, 0, - Tile::USE_LCD_TEXT); + 0); tile->SetPriority(ACTIVE_TREE, active_priority); tile->SetPriority(PENDING_TREE, pending_priority); tiles.push_back(tile); @@ -129,16 +129,6 @@ class TileManagerTest : public testing::TestWithParam<bool>, return has_memory_count; } - int TilesWithLCDCount(const TileVector& tiles) { - int has_lcd_count = 0; - for (TileVector::const_iterator it = tiles.begin(); it != tiles.end(); - ++it) { - if ((*it)->GetRasterModeForTesting() == HIGH_QUALITY_RASTER_MODE) - ++has_lcd_count; - } - return has_lcd_count; - } - bool ready_to_activate() const { return ready_to_activate_; } // The parametrization specifies whether the max tile limit should @@ -428,150 +418,6 @@ TEST_P(TileManagerTest, TotalOOMMemoryToNewContent) { EXPECT_EQ(10, AssignedMemoryCount(pending_tree_tiles)); } -TEST_P(TileManagerTest, RasterAsLCD) { - Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); - TileVector active_tree_tiles = - CreateTiles(5, TilePriorityForNowBin(), TilePriority()); - TileVector pending_tree_tiles = - CreateTiles(5, TilePriority(), TilePriorityForNowBin()); - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(5, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(5, TilesWithLCDCount(pending_tree_tiles)); -} - -TEST_P(TileManagerTest, RasterAsNoLCD) { - Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); - TileVector active_tree_tiles = - CreateTiles(5, TilePriorityForNowBin(), TilePriority()); - TileVector pending_tree_tiles = - CreateTiles(5, TilePriority(), TilePriorityForNowBin()); - - for (TileVector::iterator it = active_tree_tiles.begin(); - it != active_tree_tiles.end(); - ++it) { - (*it)->set_can_use_lcd_text(false); - } - for (TileVector::iterator it = pending_tree_tiles.begin(); - it != pending_tree_tiles.end(); - ++it) { - (*it)->set_can_use_lcd_text(false); - } - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(0, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(0, TilesWithLCDCount(pending_tree_tiles)); -} - -TEST_P(TileManagerTest, ReRasterAsNoLCD) { - Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); - TileVector active_tree_tiles = - CreateTiles(5, TilePriorityForNowBin(), TilePriority()); - TileVector pending_tree_tiles = - CreateTiles(5, TilePriority(), TilePriorityForNowBin()); - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(5, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(5, TilesWithLCDCount(pending_tree_tiles)); - - for (TileVector::iterator it = active_tree_tiles.begin(); - it != active_tree_tiles.end(); - ++it) { - (*it)->set_can_use_lcd_text(false); - } - for (TileVector::iterator it = pending_tree_tiles.begin(); - it != pending_tree_tiles.end(); - ++it) { - (*it)->set_can_use_lcd_text(false); - } - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(0, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(0, TilesWithLCDCount(pending_tree_tiles)); -} - -TEST_P(TileManagerTest, NoTextDontReRasterAsNoLCD) { - Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); - TileVector active_tree_tiles = - CreateTiles(5, TilePriorityForNowBin(), TilePriority()); - TileVector pending_tree_tiles = - CreateTiles(5, TilePriority(), TilePriorityForNowBin()); - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(5, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(5, TilesWithLCDCount(pending_tree_tiles)); - - for (TileVector::iterator it = active_tree_tiles.begin(); - it != active_tree_tiles.end(); - ++it) { - ManagedTileState::TileVersion& tile_version = - (*it)->GetTileVersionForTesting(HIGH_QUALITY_RASTER_MODE); - tile_version.SetSolidColorForTesting(SkColorSetARGB(0, 0, 0, 0)); - (*it)->set_can_use_lcd_text(false); - EXPECT_TRUE((*it)->IsReadyToDraw()); - } - for (TileVector::iterator it = pending_tree_tiles.begin(); - it != pending_tree_tiles.end(); - ++it) { - ManagedTileState::TileVersion& tile_version = - (*it)->GetTileVersionForTesting(HIGH_QUALITY_RASTER_MODE); - tile_version.SetSolidColorForTesting(SkColorSetARGB(0, 0, 0, 0)); - (*it)->set_can_use_lcd_text(false); - EXPECT_TRUE((*it)->IsReadyToDraw()); - } - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(5, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(5, TilesWithLCDCount(pending_tree_tiles)); -} - -TEST_P(TileManagerTest, TextReRasterAsNoLCD) { - Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); - TileVector active_tree_tiles = - CreateTiles(5, TilePriorityForNowBin(), TilePriority()); - TileVector pending_tree_tiles = - CreateTiles(5, TilePriority(), TilePriorityForNowBin()); - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(5, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(5, TilesWithLCDCount(pending_tree_tiles)); - - for (TileVector::iterator it = active_tree_tiles.begin(); - it != active_tree_tiles.end(); - ++it) { - ManagedTileState::TileVersion& tile_version = - (*it)->GetTileVersionForTesting(HIGH_QUALITY_RASTER_MODE); - tile_version.SetSolidColorForTesting(SkColorSetARGB(0, 0, 0, 0)); - tile_version.SetHasTextForTesting(true); - (*it)->set_can_use_lcd_text(false); - - EXPECT_TRUE((*it)->IsReadyToDraw()); - } - for (TileVector::iterator it = pending_tree_tiles.begin(); - it != pending_tree_tiles.end(); - ++it) { - ManagedTileState::TileVersion& tile_version = - (*it)->GetTileVersionForTesting(HIGH_QUALITY_RASTER_MODE); - tile_version.SetSolidColorForTesting(SkColorSetARGB(0, 0, 0, 0)); - tile_version.SetHasTextForTesting(true); - (*it)->set_can_use_lcd_text(false); - - EXPECT_TRUE((*it)->IsReadyToDraw()); - } - - tile_manager()->AssignMemoryToTiles(global_state_); - - EXPECT_EQ(0, TilesWithLCDCount(active_tree_tiles)); - EXPECT_EQ(0, TilesWithLCDCount(pending_tree_tiles)); -} - TEST_P(TileManagerTest, RespectMemoryLimit) { if (UsingResourceLimit()) return; |