예제 #1
0
        private Pipeline CreatePipeline()
        {
            // describe the render pipeline
            var pipelineDesc = new PipelineDescriptor
            {
                Shader = _shader
            };

            pipelineDesc.Layout.Attribute(0).Format = PipelineVertexAttributeFormat.Float3;
            pipelineDesc.Layout.Attribute(1).Format = PipelineVertexAttributeFormat.Float4;

            // create the pipeline resource from the descriptor
            return(GraphicsDevice.CreatePipeline(ref pipelineDesc));
        }
예제 #2
0
        /// <summary>
        /// SERIALIZATION: Creates a NodeGraphView from a Pipeline Descriptor
        /// </summary>
        /// <param name="p_Pipeline">Pipeline descriptor</param>
        /// <param name="p_Panel">the panel that will contain this NodeGraphView</param>
        public NodeGraphView(PipelineDescriptor p_Pipeline, NodeGraphPanel p_Panel)
        {
            //System.Globalization.CultureInfo v_IntlCultureInfo = new System.Globalization.CultureInfo("en-us");
            this.m_oPanel = p_Panel;
            this.ViewX    = 0;
            this.ViewY    = 0;
            this.ViewZoom = 1.0f;

            this.m_NodeCollection = new List <NodeGraphNode>();

            foreach (var module in p_Pipeline.modules)
            {
                this.m_NodeCollection.Add(NodeGraphNode.FromModuleDescriptor(module, this));
            }

            m_NodeConnectorCollection = new List <NodeGraphConnector>();

            foreach (var endpoint in p_Pipeline.inputEndpoints)
            {
                this.m_NodeConnectorCollection.Add(new NodeGraphConnector(endpoint, this, ConnectorType.InputConnector));
            }

            foreach (var endpoint in p_Pipeline.outputEndpoints)
            {
                this.m_NodeConnectorCollection.Add(new NodeGraphConnector(endpoint, this, ConnectorType.OutputConnector));
            }

            this.m_Links = new List <NodeGraphLink>();

            foreach (var connection in p_Pipeline.connections)
            {
                this.m_Links.Add(NodeGraphLink.FromConnectionDescriptor(connection, this));
            }

            for (int i = 0; i < this.m_NodeCollection.Count; i++)
            {
                //! TODO : normal algorythm for module placement
                this.m_NodeCollection[i].X = i * 100;
                this.m_NodeCollection[i].Y = i * 100;
                this.m_NodeCollection[i].UpdateHitRectangle();
            }

            this.m_SelectedItems = new List <NodeGraphNode>();
        }
예제 #3
0
        /// <summary>
        /// Set blueprint that should be added to the Conveyor.
        /// </summary>
        /// <param name="descriptor"></param>
        /// <returns></returns>
        public ConveyorContract WithBlueprint(PipelineDescriptor descriptor)
        {
            if (descriptor == null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }
            var blueprintWrapper = new PipelineBlueprintWrapper
            {
                BuilderType     = descriptor.BuilderType,
                Pipeline        = new Pipeline(descriptor.Blueprint),
                QueueProvider   = mQueueManager.CreateQueue($"{descriptor.Blueprint.Name}_queue"),
                ConcurrentLines = descriptor.ConcurrentLinesNumber,
                RoutingName     =
                    descriptor.ForType ? descriptor.Blueprint.SeedType.AssemblyQualifiedName : descriptor.Blueprint.Name
            };

            BlueprintsMap.Add(blueprintWrapper.RoutingName, blueprintWrapper);
            return(this);
        }