blob: e8b15e1ca2f96d15311d83d5e303df1be3fc0121 [file] [log] [blame]
// 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;
};