| Index: cc/layers/layer.h
|
| diff --git a/cc/layers/layer.h b/cc/layers/layer.h
|
| index 5c298f5fd0b5fb03334c173bb8b8d54af1eb3c54..0dbd09d2cf958f7659a08b21333f9b43fcbdf95f 100644
|
| --- a/cc/layers/layer.h
|
| +++ b/cc/layers/layer.h
|
| @@ -69,6 +69,8 @@ struct AnimationEvent;
|
|
|
| namespace proto {
|
| class LayerNode;
|
| +class LayerProperties;
|
| +class LayerUpdate;
|
| } // namespace proto
|
|
|
| // Base class for composited layers. Special layer types are derived from
|
| @@ -387,6 +389,22 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>,
|
| void FromLayerNodeProto(const proto::LayerNode& proto,
|
| const LayerIdMap& layer_map);
|
|
|
| + // This method is similar to PushPropertiesTo, but instead of pushing to
|
| + // a LayerImpl, it pushes the properties to proto::LayerProperties. It adds
|
| + // this layer to the proto::LayerUpdate if it or any of its descendants
|
| + // have changed properties. If this layer contains changed properties, the
|
| + // properties themselves will also be pushed the proto::LayerProperties.
|
| + // Similarly to PushPropertiesTo, this method also resets
|
| + // |needs_push_properties_| and |num_dependents_need_push_properties_|.
|
| + // Returns whether any of the descendants have changed properties.
|
| + bool ToLayerPropertiesProto(proto::LayerUpdate* layer_update);
|
| +
|
| + // Read all property values from the given LayerProperties object and update
|
| + // the current layer. The values for |needs_push_properties_| and
|
| + // |num_dependents_need_push_properties_| are always updated, but the rest
|
| + // of |proto| is only read if |needs_push_properties_| is set.
|
| + void FromLayerPropertiesProto(const proto::LayerProperties& proto);
|
| +
|
| LayerTreeHost* layer_tree_host() { return layer_tree_host_; }
|
| const LayerTreeHost* layer_tree_host() const { return layer_tree_host_; }
|
|
|
| @@ -589,6 +607,22 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>,
|
|
|
| bool IsPropertyChangeAllowed() const;
|
|
|
| + // Serialize all the necessary properties to be able to reconstruct this Layer
|
| + // into proto::LayerProperties. This function must not set values for
|
| + // |needs_push_properties_| or |num_dependents_need_push_properties_| as they
|
| + // are dealt with at a higher level. This is only called if
|
| + // |needs_push_properties_| is set. For descendants of Layer, implementations
|
| + // must first call their parent class.
|
| + virtual void LayerSpecificPropertiesToProto(proto::LayerProperties* proto);
|
| +
|
| + // Deserialize all the necessary properties from proto::LayerProperties into
|
| + // this Layer. This function must not set values for |needs_push_properties_|
|
| + // or |num_dependents_need_push_properties_| as they are dealt with at a
|
| + // higher level. This is only called if |needs_push_properties_| is set. For
|
| + // descendants of Layer, implementations must first call their parent class.
|
| + virtual void FromLayerSpecificPropertiesProto(
|
| + const proto::LayerProperties& proto);
|
| +
|
| // This flag is set when the layer needs to push properties to the impl
|
| // side.
|
| bool needs_push_properties_;
|
|
|