| Index: cc/layers/layer.cc
|
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
|
| index 43ad88a526794d27bb0563b93a9ea73d182b6970..5462c1f3b5c819ddeece94242348b5e4c5d18984 100644
|
| --- a/cc/layers/layer.cc
|
| +++ b/cc/layers/layer.cc
|
| @@ -67,8 +67,10 @@ Layer::Inputs::Inputs(int layer_id)
|
| scroll_parent(nullptr),
|
| clip_parent(nullptr),
|
| has_will_change_transform_hint(false),
|
| + has_preferred_raster_scale(false),
|
| hide_layer_and_subtree(false),
|
| - client(nullptr) {}
|
| + client(nullptr),
|
| + 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,24 @@ 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;
|
| + SetNeedsCommit();
|
| +}
|
| +
|
| AnimationHost* Layer::GetAnimationHost() const {
|
| return layer_tree_ ? layer_tree_->animation_host() : nullptr;
|
| }
|
|
|