Namespace Unity.DataFlowGraph | Data Flow Graph | 0.11.10-preview
docs.unity3d.com
    Show / Hide Table of Contents

    Namespace Unity.DataFlowGraph

    Classes

    DSLHandler<TDSLInterface>

    Connection handler for DSLInput<TNodeDefinition, TDSLDefinition, IDSL> and DSLOutput<TNodeDefinition, TDSLDefinition, IDSL> port types. The implementation is invoked whenever connections on DSL ports tied to this handler are made or broken.

    InvalidNodeDefinitionException

    ManagedAttribute

    Use this to tag your INodeData as being managed, meaning it will be possible to store non-blittable data on the type (like references).

    MemoryInputSystem<TTag, TBufferToMove>

    Abstract base for a system that ticks a NodeSet by calling its Update() in OnUpdate(JobHandle). If a conjunction of NodeMemoryInput<TTag> and exists on an entity, it will specify a shallow buffer memory mapping from ECS to the NodeSet. Thus, every frame this holds the ECS buffer will be directly available on the input port specified in NodeMemoryInput<TTag>.

    The system will verify that target node input ports are of type of Buffer<T> of (see NativeAllowReinterpretationAttribute).

    To provide memory mappings for different node sets in a pipeline, subclass this system with different concrete types of .

    NativeAllowReinterpretationAttribute

    Optional attribute for INodeMemoryInputTag indicating that should relax its requirement for an exact match between the source ECS buffer type and the destination NodeSet of Buffer<T> type. Instead, The types need only match in size and alignment.

    NodeDefinition<TNodeData>

    Helper class for defining a simulation-only node, with a empty simulation port definition. NodeFunctionality

    NodeDefinition<TNodeData, TSimulationPortDefinition>

    Helper class for defining a simulation-only node. NodeFunctionality

    NodeDefinition<TNodeData, TKernelData, TKernelPortDefinition, TKernel>

    Helper class for defining a combined simulation / rendering node, without a simulation port definition. NodeFunctionality

    NodeDefinition<TNodeData, TSimulationportDefinition, TKernelData, TKernelPortDefinition, TKernel>

    Helper class for defining a combined simulation / rendering node. NodeFunctionality

    NodeFunctionality

    Base class for all node definition declarations. Provides helper functionality and base implementations around INodeFunctionality.

    A NodeFunctionality instance exists per existing NodeSet.

    NodeFunctionality<TSimulationPortDefinition>

    Base class for a simulation-only node. NodeFunctionality

    NodeFunctionality<TSimulationPortDefinition, TKernelPortDefinition>

    Base class for a combined simulation / rendering node. NodeFunctionality

    NodeSet

    A node set is a set of instantiated user nodes connected together in some particular way, although not necessarily completely connected. Nodes can communicate through flowing data or messages, and the execution pattern is defined from the connections you establish. NodeDefinition<TNodeData> Create<TDefinition>() Connect(NodeHandle, OutputPortID, NodeHandle, InputPortID) Update()

    NodeTraits<TNodeData, TSimPorts>

    NodeTraits<TNodeData, TSimPorts, TKernelData, TKernelPortDefinition, TKernel>

    NodeTraitsBase

    Structs

    Buffer<T>

    An array data type to be used inside of a DataInput<TDefinition, TType> or DataOutput<TDefinition, TType>.

    DataInput<TDefinition, TType>

    Declaration of a specific data input connection port for a given node type.

    These are used as fields within an IKernelPortDefinition struct implementation (see ).

    Connections and data appearing on these types of ports is only available in the node's implementation of Execute(RenderContext, TKernelData, ref TKernelPortDefinition) and accessible via the given RenderContext instance.

    DataOutput<TDefinition, TType>

    Declaration of a specific data output connection port for a given node type.

    These are used as fields within an IKernelPortDefinition struct implementation (see ).

    Data from these ports can only be produced in the node's implementation of Execute(RenderContext, TKernelData, ref TKernelPortDefinition) by filling out the instance accessible via the given RenderContext.

    DSLHandler<TDSLInterface>.ConnectionInfo

    DSLInput<TNodeDefinition, TDSLDefinition, IDSL>

    Declaration of a specific DSL input connection port for a given node type.

    These are used as fields within an ISimulationPortDefinition struct implementation (see ).

    DSLOutput<TNodeDefinition, TDSLDefinition, IDSL>

    Declaration of a specific DSL output connection port for a given node type.

    These are used as fields within an ISimulationPortDefinition struct implementation (see ).

    GraphValue<T>

    A simple handle structure identifying a tap point in the graph.

    GraphValueResolver

    A graph value resolver can resolve the state of an output port pointed to by a GraphValue<T>. It can be burst compiled, used concurrently on a job or on the main thread, so long as the dependencies are resolved.

    API on this object is a subset of what is available on RenderContext

    InitContext

    A unique initialization context provided to a node on instantiation that allows it to internally configure its specific instance. Allows forwarding port declarations to another node instance on a port of the same type. The effect is that any external connection made to those forwarded ports are converted into a direct connection between the 3rd party and the the node forwarded to. This is invisible to anyone external to the node, and handled transparently by the node set. This system allows a node to create sub graphs that appear as single node to everyone else. Init(InitContext)

    InputPortID

    Weakly typed identifier for a given input port of a node.

    Message

    MessageContext

    A context provided to a node's OnMessage<T>(MessageContext, T) implementation which is invoked when a node receives a message on one of their MessageInputs.

    MessageInput<TDefinition, TMsg>

    Declaration of a specific message input connection port for a given node type.

    These are used as fields within an ISimulationPortDefinition struct implementation (see ).

    MessageOutput<TDefinition, TMsg>

    Declaration of a specific message output connection port for a given node type.

    These are used as fields within an ISimulationPortDefinition struct implementation (see ).

    NodeAdapter

    NodeAdapter<TDefinition>

    NodeDefinition<TNodeData>.SimPorts

    NodeDefinition<TNodeData, TKernelData, TKernelPortDefinition, TKernel>.SimPorts

    NodeHandle

    An untyped handle to any type of node instance. A handle can be thought of as a reference or an ID to an instance, and you can use with the various APIs in NodeSet to interact with the node.

    A valid handle is guaranteed to not be equal to a default initialized node handle. After a handle is destroyed, any handle with this value will be invalid.

    Use Exists(NodeHandle) to test whether the handle (still) refers to a valid instance. Create<TDefinition>() Destroy(NodeHandle)

    NodeHandle<TDefinition>

    A strongly typed version of a NodeHandle.

    A strongly typed version can automatically decay to an untyped NodeHandle, but the other way around requires a cast.

    Strongly typed handles are pre-verified and subsequently can be a lot more efficient in usage, as no type checks need to be performed internally.

    CastHandle<TDefinition>(NodeHandle)

    NodeInterfaceLink<TInterface>

    NodeInterfaceLink<TInterface, TDefinition>

    NodeMemoryInput<TTag>

    OutputPortID

    Weakly typed identifier for a given output port of a node.

    PortArray<TInputPort>

    Declaration of an array of ports (used within an ISimulationPortDefinition or IKernelPortDefinition). Used when a node requires an array of input ports with a size that can be changed dynamically.

    PortDescription

    Runtime type information about node ports as returned by GetPortDescription(NodeHandle).

    PortDescription.InputPort

    PortDescription.OutputPort

    RenderContext

    Helper which is strictly only available inside a node's Execute(RenderContext, TKernelData, ref TKernelPortDefinition) implementation allowing it to resolve its data ports to actual instance data.

    RenderContext.ResolvedPortArray<TDefinition, TType>

    A resolved PortArray<TInputPort> (see Resolve<TNodeDefinition, TType>(ref DataOutput<TNodeDefinition, TType>)).

    Interfaces

    IDSLHandler

    IGraphKernel<TKernelData, TKernelPortDefinition>

    Interface to be implemented on a struct which represents the functor responsible for processing a node's DataInput<TDefinition, TType>s and filling out its DataOutput<TDefinition, TType>s each time Update() is invoked. The functor is tied to a given node type by specifying it in the NodeDefinition<TNodeData, TSimulationportDefinition, TKernelData, TKernelPortDefinition, TKernel>.

    Any fields which exist in the struct are preserved between invocations of Execute(RenderContext, TKernelData, ref TKernelPortDefinition) and represent the ongoing state of the node's kernel.

    Implementing structs may be tagged with the to take advantage of improved performance.

    IIndexableInputPort

    IKernelData

    Interface tag to be implemented on a struct, that will contain instance data on your node that is read/write accessible on the simulation-side (see GetKernelData(NodeHandle)) and made available read-only in the node's kernel on the rendering-side (see Execute(RenderContext, TKernelData, ref TKernelPortDefinition)).

    IKernelPortDefinition

    Interface tag to be implemented on a struct, that will contain the the node definition's kernel port declarations. DataInput<TDefinition, TType> DataOutput<TDefinition, TType>

    IMsgHandler<TMsg>

    Interface to be implemented by NodeDefinition<TNodeData, TSimulationPortDefinition> or other variant which includes an ISimulationPortDefinition that contains MessageInput<TDefinition, TMsg> fields. This interface is used to handle messages which arrive on those MessageInput<TDefinition, TMsg> ports.

    INodeData

    Interface tag to be implemented on a struct, that will contain the simulation-side contents of your node's instance data.

    INodeDefinition

    INodeFunctionality

    Base interface of all nodes. NodeFunctionality

    INodeMemoryInputTag

    Base common interface for unique type tag used by MemoryInputSystem<TTag, TBufferToMove> and NodeMemoryInput<TTag>.

    ISimulationPortDefinition

    Interface tag to be implemented on a struct, that will contain the the node definition's simulation port declarations. MessageInput<TDefinition, TMsg> MessageOutput<TDefinition, TMsg> DSLInput<TNodeDefinition, TDSLDefinition, IDSL> DSLOutput<TNodeDefinition, TDSLDefinition, IDSL>

    ITaskPort<TTask>

    ITaskPortMsgHandler<TTask, TMessage>

    Enums

    RenderExecutionModel

    Usage

    Describes the category of a port.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023