| Index: cc/animation/layer_tree_mutation.h
|
| diff --git a/cc/animation/layer_tree_mutation.h b/cc/animation/layer_tree_mutation.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9f0984ba6dcc9d3a558e8a79d9a4583bdccd3158
|
| --- /dev/null
|
| +++ b/cc/animation/layer_tree_mutation.h
|
| @@ -0,0 +1,74 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CC_ANIMATION_LAYER_TREE_MUTATION_H_
|
| +#define CC_ANIMATION_LAYER_TREE_MUTATION_H_
|
| +
|
| +#include "base/containers/hash_tables.h"
|
| +#include "third_party/skia/include/utils/SkMatrix44.h"
|
| +
|
| +namespace cc {
|
| +
|
| +// TODO(vollick): Once the repos merge, we can get rid of this class (which
|
| +// duplicates WebLayerTreeMutation).
|
| +struct LayerTreeMutation {
|
| + public:
|
| + enum MutationFlags {
|
| + MUTATION_NONE = 0,
|
| + MUTATION_OPACITY = 1 << 0,
|
| + MUTATION_SCROLL_LEFT = 1 << 1,
|
| + MUTATION_SCROLL_TOP = 1 << 2,
|
| + MUTATION_TRANSFORM = 1 << 3,
|
| + MUTATION_TRANSFORM_RELATED =
|
| + MUTATION_TRANSFORM | MUTATION_SCROLL_TOP | MUTATION_SCROLL_LEFT
|
| + };
|
| +
|
| + void SetOpacity(float opacity) {
|
| + mutated_flags_ |= MUTATION_OPACITY;
|
| + opacity_ = opacity;
|
| + }
|
| + void SetScrollLeft(float scroll_left) {
|
| + mutated_flags_ |= MUTATION_SCROLL_LEFT;
|
| + scroll_left_ = scroll_left;
|
| + }
|
| + void SetScrollTop(float scroll_top) {
|
| + mutated_flags_ |= MUTATION_SCROLL_TOP;
|
| + scroll_top_ = scroll_top;
|
| + }
|
| + void SetTransform(const SkMatrix44& transform) {
|
| + mutated_flags_ |= MUTATION_TRANSFORM;
|
| + transform_ = transform;
|
| + }
|
| +
|
| + bool is_opacity_mutated() const {
|
| + return !!(mutated_flags_ & MUTATION_OPACITY);
|
| + }
|
| + bool is_scroll_left_mutated() const {
|
| + return !!(mutated_flags_ & MUTATION_SCROLL_LEFT);
|
| + }
|
| + bool is_scroll_top_mutated() const {
|
| + return !!(mutated_flags_ & MUTATION_SCROLL_TOP);
|
| + }
|
| + bool is_transform_mutated() const {
|
| + return !!(mutated_flags_ & MUTATION_TRANSFORM);
|
| + }
|
| +
|
| + float opacity() const { return opacity_; }
|
| + float scroll_left() const { return scroll_left_; }
|
| + float scroll_top() const { return scroll_top_; }
|
| + SkMatrix44 transform() const { return transform_; }
|
| +
|
| + private:
|
| + uint32_t mutated_flags_ = 0;
|
| + float opacity_ = 0;
|
| + float scroll_left_ = 0;
|
| + float scroll_top_ = 0;
|
| + SkMatrix44 transform_;
|
| +};
|
| +
|
| +typedef base::hash_map<uint64_t, LayerTreeMutation> LayerTreeMutationMap;
|
| +
|
| +} // namespace cc
|
| +
|
| +#endif // CC_ANIMATION_LAYER_TREE_MUTATION_H_
|
|
|