blob: a666de9840c512b97cd00b8de4eb9bbfe229bcd9 [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
@available(deprecated=13, removed=17, legacy=true)
type ShapeNodeArgs = struct {
@allow_deprecated_struct_defaults
unused uint32 = 0;
};
/// Characteristics:
/// - has_parent
/// - is_clip
/// - has_parts
@available(deprecated=13, removed=17, legacy=true)
type ClipNodeArgs = struct {
@allow_deprecated_struct_defaults
unused uint32 = 0;
};
/// Characteristics:
/// - has_transform
/// - has_parent
/// - has_children
/// - has_parts
/// - has_opacity
@available(deprecated=13, removed=17, legacy=true)
type OpacityNodeArgsHACK = struct {
@allow_deprecated_struct_defaults
unused uint32 = 0;
};
/// Characteristics:
/// - has_transform
/// - has_children
/// - has_parent
/// - has_parts
/// - has_clip
@available(deprecated=13, removed=17, legacy=true)
type EntityNodeArgs = struct {
@allow_deprecated_struct_defaults
unused uint32 = 0;
};