| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.ui.gfx; |
| |
| /// These are the types of nodes that can be created within a Scenic `Session`. |
| /// |
| /// All nodes have an associated transform, which distinguishes them from mere |
| /// resources. Nodes may also have one or more node Characteristics: |
| /// |
| /// These are characteristics that each type of `Node` either has or doesn't. |
| /// These constrain operations that reference nodes; violations will cause the |
| /// `Session` connection to be closed. For example, `NodeAddChildOp` must target |
| /// a node with the "has_children" characteristic. These characteristics are not |
| /// explicitly reflected in the Session API; instead, they must be enforced by |
| /// implementations of the API. |
| /// - has_children: The node can contain other nodes as children. |
| /// - has_parent: The node can be a child of another node. If this is false, |
| /// the node can only be a direct descendant of its containing scene. |
| /// - has_parts: The node can contain other nodes as parts. All parts must be |
| /// from the same session as their parent. |
| /// - has_clip: The node can contain a clip node as a child. |
| /// - is_clip: The node can clip other nodes. |
| /// - has_shape: The node can contain ShapeNodes as children. |
| /// - has_material: The node can have a Material resource applied to it. |
| |
| /// Characteristics: |
| /// - has_parent |
| /// - has_shape |
| /// - has_material |
| struct ShapeNodeArgs { |
| // TODO(SCN-694): Clean up dummy args. |
| uint32 unused = 0; |
| }; |
| |
| /// Characteristics: |
| /// - has_parent |
| /// - is_clip |
| /// - has_parts |
| struct ClipNodeArgs { |
| // TODO(SCN-694): Clean up dummy args. |
| uint32 unused = 0; |
| }; |
| |
| /// Characteristics: |
| /// - has_transform |
| /// - has_parent |
| /// - has_children |
| /// - has_parts |
| /// - has_opacity |
| struct OpacityNodeArgsHACK { |
| uint32 unused = 0; |
| }; |
| |
| /// Characteristics: |
| /// - has_transform |
| /// - has_children |
| /// - has_parent |
| /// - has_parts |
| /// - has_clip |
| struct EntityNodeArgs { |
| // TODO(SCN-694): Clean up dummy args. |
| uint32 unused = 0; |
| }; |