Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Unified Diff: cc/layers/picture_layer.cc

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/picture_layer.h ('k') | cc/layers/picture_layer_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer.cc
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index 55241d0a16f4c43125e3cdb09c95a104f23b6f2f..48f3f7349453f7dd859bab4af70b8a635413ff84 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -24,7 +24,8 @@ PictureLayer::PictureLayer(ContentLayerClient* client)
instrumentation_object_tracker_(id()),
update_source_frame_number_(-1),
can_use_lcd_text_for_update_(true),
- is_mask_(false) {
+ is_mask_(false),
+ nearest_neighbor_(false) {
}
PictureLayer::PictureLayer(ContentLayerClient* client,
@@ -37,12 +38,14 @@ PictureLayer::~PictureLayer() {
}
scoped_ptr<LayerImpl> PictureLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) {
- return PictureLayerImpl::Create(tree_impl, id());
+ return PictureLayerImpl::Create(tree_impl, id(), is_mask_);
}
void PictureLayer::PushPropertiesTo(LayerImpl* base_layer) {
Layer::PushPropertiesTo(base_layer);
PictureLayerImpl* layer_impl = static_cast<PictureLayerImpl*>(base_layer);
+ // TODO(danakj): Make is_mask_ a constructor parameter for PictureLayer.
+ DCHECK_EQ(layer_impl->is_mask_, is_mask_);
int source_frame_number = layer_tree_host()->source_frame_number();
gfx::Size impl_bounds = layer_impl->bounds();
@@ -63,17 +66,16 @@ void PictureLayer::PushPropertiesTo(LayerImpl* base_layer) {
recording_source_->SetEmptyBounds();
}
- // Unlike other properties, invalidation must always be set on layer_impl.
- // See PictureLayerImpl::PushPropertiesTo for more details.
- layer_impl->invalidation_.Clear();
- layer_impl->invalidation_.Swap(&recording_invalidation_);
- layer_impl->set_is_mask(is_mask_);
+ layer_impl->SetNearestNeighbor(nearest_neighbor_);
+
scoped_refptr<RasterSource> raster_source =
recording_source_->CreateRasterSource();
raster_source->SetBackgoundColor(SafeOpaqueBackgroundColor());
raster_source->SetRequiresClear(!contents_opaque() &&
!client_->FillsBoundsCompletely());
- layer_impl->UpdateRasterSource(raster_source);
+ layer_impl->UpdateRasterSource(raster_source, &recording_invalidation_,
+ nullptr);
+ DCHECK(recording_invalidation_.IsEmpty());
}
void PictureLayer::SetLayerTreeHost(LayerTreeHost* host) {
@@ -206,6 +208,14 @@ void PictureLayer::ClearClient() {
UpdateDrawsContent(HasDrawableContent());
}
+void PictureLayer::SetNearestNeighbor(bool nearest_neighbor) {
+ if (nearest_neighbor_ == nearest_neighbor)
+ return;
+
+ nearest_neighbor_ = nearest_neighbor;
+ SetNeedsCommit();
+}
+
bool PictureLayer::HasDrawableContent() const {
return client_ && Layer::HasDrawableContent();
}
« no previous file with comments | « cc/layers/picture_layer.h ('k') | cc/layers/picture_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698