| Index: services/gfx/compositor/graph/node_def.h
|
| diff --git a/services/gfx/compositor/graph/node_def.h b/services/gfx/compositor/graph/node_def.h
|
| index 5e84d1a6634f9b27f890d40dc2da9f47c2d2103c..7448e8821b9bad600edb6c6ec770a87066b615ff 100644
|
| --- a/services/gfx/compositor/graph/node_def.h
|
| +++ b/services/gfx/compositor/graph/node_def.h
|
| @@ -14,6 +14,8 @@
|
| #include "services/gfx/compositor/graph/snapshot.h"
|
|
|
| class SkCanvas;
|
| +struct SkPoint;
|
| +class SkMatrix;
|
|
|
| namespace compositor {
|
|
|
| @@ -35,6 +37,7 @@ class NodeDef : public base::RefCounted<NodeDef> {
|
| NodeDef(uint32_t node_id,
|
| mojo::TransformPtr content_transform,
|
| mojo::RectPtr content_clip,
|
| + mojo::gfx::composition::HitTestBehaviorPtr hit_test_behavior,
|
| Combinator combinator,
|
| const std::vector<uint32_t>& child_node_ids);
|
|
|
| @@ -42,6 +45,9 @@ class NodeDef : public base::RefCounted<NodeDef> {
|
| const mojo::Transform* content_transform() const {
|
| return content_transform_.get();
|
| }
|
| + const mojo::gfx::composition::HitTestBehavior* hit_test_behavior() const {
|
| + return hit_test_behavior_.get();
|
| + }
|
| const mojo::Rect* content_clip() const { return content_clip_.get(); }
|
| Combinator combinator() const { return combinator_; }
|
| const std::vector<uint32_t>& child_node_ids() const {
|
| @@ -68,6 +74,18 @@ class NodeDef : public base::RefCounted<NodeDef> {
|
| const Snapshot* snapshot,
|
| SkCanvas* canvas) const;
|
|
|
| + // Performs a hit test at the specified point.
|
| + // The |point| is the hit tested point in the parent's coordinate space.
|
| + // The |global_to_parent_transform| is the accumulated transform from the
|
| + // global coordinate space to the parent's coordinate space.
|
| + // Adds hit information for the node to |hits|.
|
| + // Returns true if the search was terminated by an opaque hit.
|
| + bool HitTest(const SceneContent* content,
|
| + const Snapshot* snapshot,
|
| + const SkPoint& parent_point,
|
| + const SkMatrix& global_to_parent_transform,
|
| + mojo::Array<mojo::gfx::composition::HitPtr>* hits) const;
|
| +
|
| protected:
|
| friend class base::RefCounted<NodeDef>;
|
| virtual ~NodeDef();
|
| @@ -85,10 +103,24 @@ class NodeDef : public base::RefCounted<NodeDef> {
|
| const Snapshot* snapshot,
|
| SkCanvas* canvas) const;
|
|
|
| + virtual bool HitTestInner(
|
| + const SceneContent* content,
|
| + const Snapshot* snapshot,
|
| + const SkPoint& local_point,
|
| + const SkMatrix& global_to_local_transform,
|
| + mojo::Array<mojo::gfx::composition::HitPtr>* hits) const;
|
| +
|
| private:
|
| + bool HitTestSelf(const SceneContent* content,
|
| + const Snapshot* snapshot,
|
| + const SkPoint& local_point,
|
| + const SkMatrix& global_to_local_transform,
|
| + mojo::Array<mojo::gfx::composition::HitPtr>* hits) const;
|
| +
|
| uint32_t const node_id_;
|
| mojo::TransformPtr const content_transform_;
|
| mojo::RectPtr const content_clip_;
|
| + mojo::gfx::composition::HitTestBehaviorPtr const hit_test_behavior_;
|
| Combinator const combinator_;
|
| std::vector<uint32_t> const child_node_ids_;
|
|
|
| @@ -103,6 +135,7 @@ class RectNodeDef : public NodeDef {
|
| RectNodeDef(uint32_t node_id,
|
| mojo::TransformPtr content_transform,
|
| mojo::RectPtr content_clip,
|
| + mojo::gfx::composition::HitTestBehaviorPtr hit_test_behavior,
|
| Combinator combinator,
|
| const std::vector<uint32_t>& child_node_ids,
|
| const mojo::Rect& content_rect,
|
| @@ -133,6 +166,7 @@ class ImageNodeDef : public NodeDef {
|
| ImageNodeDef(uint32_t node_id,
|
| mojo::TransformPtr content_transform,
|
| mojo::RectPtr content_clip,
|
| + mojo::gfx::composition::HitTestBehaviorPtr hit_test_behavior,
|
| Combinator combinator,
|
| const std::vector<uint32_t>& child_node_ids,
|
| const mojo::Rect& content_rect,
|
| @@ -171,6 +205,7 @@ class SceneNodeDef : public NodeDef {
|
| SceneNodeDef(uint32_t node_id,
|
| mojo::TransformPtr content_transform,
|
| mojo::RectPtr content_clip,
|
| + mojo::gfx::composition::HitTestBehaviorPtr hit_test_behavior,
|
| Combinator combinator,
|
| const std::vector<uint32_t>& child_node_ids,
|
| uint32_t scene_resource_id,
|
| @@ -191,6 +226,13 @@ class SceneNodeDef : public NodeDef {
|
| const Snapshot* snapshot,
|
| SkCanvas* canvas) const override;
|
|
|
| + bool HitTestInner(
|
| + const SceneContent* content,
|
| + const Snapshot* snapshot,
|
| + const SkPoint& local_point,
|
| + const SkMatrix& global_to_local_transform,
|
| + mojo::Array<mojo::gfx::composition::HitPtr>* hits) const override;
|
| +
|
| private:
|
| uint32_t const scene_resource_id_;
|
| uint32_t const scene_version_;
|
| @@ -206,6 +248,7 @@ class LayerNodeDef : public NodeDef {
|
| LayerNodeDef(uint32_t node_id,
|
| mojo::TransformPtr content_transform,
|
| mojo::RectPtr content_clip,
|
| + mojo::gfx::composition::HitTestBehaviorPtr hit_test_behavior,
|
| Combinator combinator,
|
| const std::vector<uint32_t>& child_node_ids,
|
| const mojo::Size& size,
|
|
|