| Index: mojo/services/gfx/composition/interfaces/hit_tests.mojom
|
| diff --git a/mojo/services/gfx/composition/interfaces/hit_tests.mojom b/mojo/services/gfx/composition/interfaces/hit_tests.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d18d868d63c481f534c3aced72d4b30bbea680a8
|
| --- /dev/null
|
| +++ b/mojo/services/gfx/composition/interfaces/hit_tests.mojom
|
| @@ -0,0 +1,49 @@
|
| +// 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.
|
| +
|
| +[DartPackage="mojo_services"]
|
| +module mojo.gfx.composition;
|
| +
|
| +import "mojo/services/geometry/interfaces/geometry.mojom";
|
| +import "mojo/services/gfx/composition/interfaces/scene_token.mojom";
|
| +
|
| +// Indicates that hit testing is not needed for a given node.
|
| +const uint32 kHitIdNone = 0;
|
| +
|
| +// Provides information about the point of intersection of a hit test with
|
| +// a node in a scene graph.
|
| +struct Hit {
|
| + // The scene token of the scene which was hit.
|
| + SceneToken scene_token;
|
| +
|
| + // The version of the scene which was consulted as part of evaluating the
|
| + // hit test.
|
| + uint32 scene_version;
|
| +
|
| + // The node id of the node which was hit.
|
| + uint32 node_id;
|
| +
|
| + // The hit test id of the node which was hit.
|
| + uint32 hit_id;
|
| +
|
| + // The coordinates of the hit within the node's content space.
|
| + mojo.Point intersection;
|
| +};
|
| +
|
| +// The result of a hit test operation.
|
| +struct HitTestResult {
|
| + // A sorted list of hits in dispatch order from the top-most hit node
|
| + // to the nodes underneath it and containing it, or an empty array if none.
|
| + // Omits nodes for which the hit_id was |kHitIdNone|.
|
| + array<Hit> hits;
|
| +};
|
| +
|
| +// A hit testing service for scene graphs.
|
| +interface HitTester {
|
| + // Performs a hit test on the specified point.
|
| + //
|
| + // TODO(jeffbrown): Specify a timestamp to allow for hit-tests of geometry
|
| + // as it appeared in the recent past.
|
| + HitTest(mojo.Point point) => (HitTestResult result);
|
| +};
|
|
|