// 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 Mozart |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 OpacityNodeArgs {
|
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;
|
};
|