| Index: cc/layers/picture_layer_impl.cc
|
| diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
|
| index 23351d7a3fba8e0082577ea486a6ab674e69de50..f5ba485f3141c2d330fdfed3b2ced54af07a8ebe 100644
|
| --- a/cc/layers/picture_layer_impl.cc
|
| +++ b/cc/layers/picture_layer_impl.cc
|
| @@ -85,7 +85,8 @@ PictureLayerImpl::PictureLayerImpl(LayerTreeImpl* tree_impl,
|
| needs_post_commit_initialization_(true),
|
| should_update_tile_priorities_(false),
|
| only_used_low_res_last_append_quads_(false),
|
| - is_mask_(is_mask) {
|
| + is_mask_(is_mask),
|
| + nearest_neighbor_(false) {
|
| layer_tree_impl()->RegisterPictureLayerImpl(this);
|
| }
|
|
|
| @@ -139,6 +140,8 @@ void PictureLayerImpl::PushPropertiesTo(LayerImpl* base_layer) {
|
| twin_layer_ = layer_impl;
|
| layer_impl->twin_layer_ = this;
|
|
|
| + layer_impl->SetNearestNeighbor(nearest_neighbor_);
|
| +
|
| // Solid color layers have no tilings.
|
| DCHECK_IMPLIES(raster_source_->IsSolidColor(), tilings_->num_tilings() == 0);
|
| // The pending tree should only have a high res (and possibly low res) tiling.
|
| @@ -239,8 +242,9 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
|
| PictureDrawQuad* quad =
|
| render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
|
| quad->SetNew(shared_quad_state, geometry_rect, opaque_rect,
|
| - visible_geometry_rect, texture_rect, texture_size, RGBA_8888,
|
| - quad_content_rect, max_contents_scale, raster_source_);
|
| + visible_geometry_rect, texture_rect, texture_size,
|
| + nearest_neighbor_, RGBA_8888, quad_content_rect,
|
| + max_contents_scale, raster_source_);
|
| return;
|
| }
|
|
|
| @@ -352,7 +356,8 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
|
| draw_info.get_resource_id(),
|
| texture_rect,
|
| iter.texture_size(),
|
| - draw_info.contents_swizzled());
|
| + draw_info.contents_swizzled(),
|
| + nearest_neighbor_);
|
| has_draw_quad = true;
|
| break;
|
| }
|
| @@ -374,8 +379,8 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
|
| render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
|
| quad->SetNew(shared_quad_state, geometry_rect, opaque_rect,
|
| visible_geometry_rect, texture_rect, iter.texture_size(),
|
| - format, iter->content_rect(), iter->contents_scale(),
|
| - raster_source_);
|
| + nearest_neighbor_, format, iter->content_rect(),
|
| + iter->contents_scale(), raster_source_);
|
| has_draw_quad = true;
|
| break;
|
| }
|
| @@ -821,6 +826,14 @@ void PictureLayerImpl::GetContentsResourceId(
|
| *resource_size = iter.texture_size();
|
| }
|
|
|
| +void PictureLayerImpl::SetNearestNeighbor(bool nearest_neighbor) {
|
| + if (nearest_neighbor_ == nearest_neighbor)
|
| + return;
|
| +
|
| + nearest_neighbor_ = nearest_neighbor;
|
| + NoteLayerPropertyChanged();
|
| +}
|
| +
|
| void PictureLayerImpl::DoPostCommitInitialization() {
|
| // TODO(danakj): Remove this.
|
| DCHECK(needs_post_commit_initialization_);
|
|
|