Index: cc/layers/picture_layer_impl.cc |
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc |
index e819afd860d412784301915fe1fcbd7ac857aa67..f62a8664ff89f7e84467dc68813ae18ee56b99c0 100644 |
--- a/cc/layers/picture_layer_impl.cc |
+++ b/cc/layers/picture_layer_impl.cc |
@@ -225,9 +225,9 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, |
if (mode == TileDrawInfo::SOLID_COLOR_MODE) { |
color = DebugColors::SolidColorTileBorderColor(); |
width = DebugColors::SolidColorTileBorderWidth(layer_tree_impl()); |
- } else if (mode == TileDrawInfo::OOM_MODE) { |
- color = DebugColors::OOMTileBorderColor(); |
- width = DebugColors::OOMTileBorderWidth(layer_tree_impl()); |
+ } else if (mode == TileDrawInfo::PICTURE_PILE_MODE) { |
+ color = DebugColors::PictureTileBorderColor(); |
+ width = DebugColors::PictureTileBorderWidth(layer_tree_impl()); |
} else if (iter.resolution() == HIGH_RESOLUTION) { |
color = DebugColors::HighResTileBorderColor(); |
width = DebugColors::HighResTileBorderWidth(layer_tree_impl()); |
@@ -313,6 +313,30 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, |
has_draw_quad = true; |
break; |
} |
+ case TileDrawInfo::PICTURE_PILE_MODE: { |
+ if (!layer_tree_impl() |
+ ->GetRendererCapabilities() |
+ .allow_rasterize_on_demand) { |
+ ++on_demand_missing_tile_count; |
+ break; |
+ } |
+ |
+ gfx::RectF texture_rect = iter.texture_rect(); |
+ |
+ ResourceProvider* resource_provider = |
+ layer_tree_impl()->resource_provider(); |
+ ResourceFormat format = |
+ resource_provider->memory_efficient_texture_format(); |
+ PictureDrawQuad* quad = |
+ render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
+ quad->SetNew(shared_quad_state, geometry_rect, opaque_rect, |
+ visible_geometry_rect, texture_rect, |
+ iter->desired_texture_size(), nearest_neighbor_, format, |
+ iter->content_rect(), iter->contents_scale(), |
+ raster_source_); |
+ has_draw_quad = true; |
+ break; |
+ } |
case TileDrawInfo::SOLID_COLOR_MODE: { |
SolidColorDrawQuad* quad = |
render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
@@ -321,8 +345,6 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, |
has_draw_quad = true; |
break; |
} |
- case TileDrawInfo::OOM_MODE: |
- break; // Checkerboard. |
} |
} |
@@ -543,36 +565,6 @@ void PictureLayerImpl::UpdateRasterSource( |
MaximumContentsScale()); |
} |
-void PictureLayerImpl::UpdateCanUseLCDTextAfterCommit() { |
- // This function is only allowed to be called after commit, due to it not |
- // being smart about sharing tiles and because otherwise it would cause |
- // flashes by switching out tiles in place that may be currently on screen. |
- DCHECK(layer_tree_impl()->IsSyncTree()); |
- |
- // Don't allow the LCD text state to change once disabled. |
- if (!RasterSourceUsesLCDText()) |
- return; |
- if (can_use_lcd_text() == RasterSourceUsesLCDText()) |
- return; |
- |
- // Raster sources are considered const, so in order to update the state |
- // a new one must be created and all tiles recreated. |
- scoped_refptr<RasterSource> new_raster_source = |
- raster_source_->CreateCloneWithoutLCDText(); |
- // Synthetically invalidate everything. |
- gfx::Rect bounds_rect(bounds()); |
- Region invalidation(bounds_rect); |
- UpdateRasterSource(new_raster_source, &invalidation, nullptr); |
- SetUpdateRect(bounds_rect); |
- |
- DCHECK(!RasterSourceUsesLCDText()); |
-} |
- |
-bool PictureLayerImpl::RasterSourceUsesLCDText() const { |
- return raster_source_ ? raster_source_->CanUseLCDText() |
- : layer_tree_impl()->settings().can_use_lcd_text; |
-} |
- |
void PictureLayerImpl::NotifyTileStateChanged(const Tile* tile) { |
if (layer_tree_impl()->IsActiveTree()) { |
gfx::RectF layer_damage_rect = |