コード例 #1
0
 public InputDeclaration(SimpleType type, int patchOffset, InputPortID portNumber, bool isArray)
 {
     Type        = type;
     PatchOffset = patchOffset;
     PortNumber  = portNumber;
     IsArray     = isArray;
 }
コード例 #2
0
 /// <summary>
 /// Overload of <see cref="NodeMemoryInput{TTag,TBufferToMove}(NodeHandle, InputPortID)"/>
 /// targeting a port array with an index parameter.
 /// </summary>
 public NodeMemoryInput(NodeHandle node, InputPortID portArray, int arrayIndex)
 {
     Node                = node;
     InternalPort        = new InputPortArrayID(portArray, arrayIndex);
     ResolvedDestination = default;
     WasCreatedStrongly  = false;
 }
コード例 #3
0
 internal InputPortArrayID(InputPortID portId, int arrayIndex)
 {
     if ((uint)arrayIndex >= NonArraySentinel)
     {
         throw new InvalidOperationException("Invalid array index.");
     }
     PortID       = portId;
     m_ArrayIndex = (ushort)arrayIndex;
 }
コード例 #4
0
        public int FindInputDataPortNumber(InputPortID port)
        {
            for (int p = 0; p < Inputs.Count; ++p)
            {
                if (Inputs[p].PortNumber == port)
                {
                    return(p);
                }
            }

            throw new InternalException("Matching input port not found");
        }
コード例 #5
0
 internal DataInput(void *ptr, InputPortID port)
 {
     Ptr  = ptr;
     Port = port;
 }
コード例 #6
0
 internal InputPortArrayID(InputPortID portId)
 {
     PortID       = portId;
     m_ArrayIndex = NonArraySentinel;
 }
コード例 #7
0
 public ref /*readonly */ InputDeclaration FindInputDataPort(InputPortID port)
 => ref Inputs[FindInputDataPortNumber(port)];
コード例 #8
0
 public static Unchecked Input(InputPortID originPortID, NodeHandle replacement, InputPortID replacedPortID)
 {
     return(new Unchecked(true, originPortID.Port, replacement, replacedPortID.Storage));
 }
コード例 #9
0
 PortArray(void *ptr, ushort size, InputPortID port)
 {
     Ptr  = ptr;
     Size = size;
     Port = port;
 }
コード例 #10
0
 void CommonChecks <TDefinition>(NodeHandle replacedNode, InputPortID originPort)
     where TDefinition : NodeDefinition
 {
     CommonChecks <TDefinition>(replacedNode, true, originPort.Storage.DFGPortIndex);
 }
コード例 #11
0
        public void Disconnect(NodeSet set, NodeHandle source, OutputPortID sourcePort, NodeHandle destination, InputPortID destinationPort)
        {
            var srcNodeFunc  = set.GetDefinition(source);
            var destNodeFunc = set.GetDefinition(destination);

            var srcNodeDSL  = set.GetDefinition(source) as TDSLInterface;
            var destNodeDSL = set.GetDefinition(destination) as TDSLInterface;

            if (srcNodeDSL == null || destNodeDSL == null)
            {
                throw new InvalidCastException();
            }

            Disconnect(
                new ConnectionInfo
            {
                Handle       = source,
                Interface    = srcNodeDSL,
                DSLPortIndex = GetDSLPortIndex(
                    sourcePort,
                    srcNodeFunc.GetPortDescription(source).Outputs.Cast <PortDescription.IPort <OutputPortID> >()
                    )
            },
                new ConnectionInfo
            {
                Handle       = destination,
                Interface    = destNodeDSL,
                DSLPortIndex = GetDSLPortIndex(
                    destinationPort,
                    destNodeFunc.GetPortDescription(destination).Inputs.Cast <PortDescription.IPort <InputPortID> >()
                    )
            });
        }