Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index 43ad88a526794d27bb0563b93a9ea73d182b6970..b4afc35f85cc781d40b3112ec9571ed1be7d0971 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -68,7 +68,9 @@ Layer::Inputs::Inputs(int layer_id) |
| clip_parent(nullptr), |
| has_will_change_transform_hint(false), |
| hide_layer_and_subtree(false), |
| - client(nullptr) {} |
| + client(nullptr), |
| + has_preferred_raster_scale(false), |
| + preferred_raster_scale(1.0) {} |
| Layer::Inputs::~Inputs() {} |
| @@ -1182,6 +1184,10 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| layer->SetUpdateRect(inputs_.update_rect); |
| layer->SetHasWillChangeTransformHint(has_will_change_transform_hint()); |
| + if (has_preferred_raster_scale()) |
| + layer->SetPreferredRasterScale(preferred_raster_scale()); |
| + else |
| + layer->ClearPreferredRasterScale(); |
| layer->SetNeedsPushProperties(); |
| // Reset any state that should be cleared for the next update. |
| @@ -1760,6 +1766,23 @@ void Layer::SetHasWillChangeTransformHint(bool has_will_change) { |
| SetNeedsCommit(); |
| } |
| +void Layer::SetPreferredRasterScale(float preferred_raster_scale) { |
| + if (inputs_.has_preferred_raster_scale && |
| + inputs_.preferred_raster_scale == preferred_raster_scale) |
| + return; |
| + |
| + inputs_.has_preferred_raster_scale = true; |
| + inputs_.preferred_raster_scale = preferred_raster_scale; |
| + SetNeedsCommit(); |
| +} |
| + |
| +void Layer::ClearPreferredRasterScale() { |
| + if (!inputs_.has_preferred_raster_scale) |
| + return; |
| + inputs_.has_preferred_raster_scale = false; |
| + inputs_.preferred_raster_scale = 1.0f; |
|
Stephen Chennney
2016/10/17 14:31:30
Do we need a commit here too?
chrishtr
2016/10/19 03:51:36
Good catch, fixed.
|
| +} |
| + |
| AnimationHost* Layer::GetAnimationHost() const { |
| return layer_tree_ ? layer_tree_->animation_host() : nullptr; |
| } |