Ejemplo n.º 1
0
        public void Render(IDX11ResourceDataRetriever sender, IPluginHost host)
        {
            if (!this.Enabled)
            {
                sender.AssignedContext = null;
                return;
            }

            this.gb.Flush();

            if (this.RenderGraphs.Count > 0)
            {
                DX11RenderContext dataRenderContext;
                //Check if we have a preffered device for that task (and check that we have render graph for it
                if (this.PreferredDataContext != null && this.RenderGraphs.ContainsKey(this.PreferredDataContext))
                {
                    dataRenderContext = this.PreferredDataContext;
                }
                else
                {
                    dataRenderContext = this.RenderGraphs.Keys.First();
                }


                this.RenderGraphs[dataRenderContext].Render(sender, host);
            }
            else
            {
                sender.AssignedContext = null;
            }
        }
Ejemplo n.º 2
0
 private void OnRenderRequest(IDX11ResourceDataRetriever sender, IPluginHost host)
 {
     if (this.RenderRequest != null)
     {
         this.RenderRequest(sender, host);
     }
 }
Ejemplo n.º 3
0
        public void Render(IDX11ResourceDataRetriever sender, IPluginHost host)
        {
            //Assign device to sender
            sender.AssignedContext = this.context;

            //Called by stuff like info
            DX11Node node = this.graph.FindNode(host);

            this.ProcessNode(node);
        }
Ejemplo n.º 4
0
 public DX11NodeInterfaces(IInternalPluginHost hoster)
 {
     this.hoster                = hoster;
     this.resourceProvider      = this.IsAssignable <IDX11ResourceProvider>() ? this.Instance <IDX11ResourceProvider>() : null;
     this.rendererProvider      = this.IsAssignable <IDX11RendererProvider>() ? this.Instance <IDX11RendererProvider>() : null;
     this.renderWindow          = this.IsAssignable <IDX11RenderWindow>() ? this.Instance <IDX11RenderWindow>() : null;
     this.multiResourceProvider = this.IsAssignable <IDX11MultiResourceProvider>() ? this.Instance <IDX11MultiResourceProvider>() : null;
     this.layerProvider         = this.IsAssignable <IDX11LayerProvider>() ? this.Instance <IDX11LayerProvider>() : null;
     this.dataRetriever         = this.IsAssignable <IDX11ResourceDataRetriever>() ? this.Instance <IDX11ResourceDataRetriever>() : null;
     this.updateBlocker         = this.IsAssignable <IDX11UpdateBlocker>() ? this.Instance <IDX11UpdateBlocker>() : null;
 }
Ejemplo n.º 5
0
        public void Render(IDX11ResourceDataRetriever sender, IPluginHost host)
        {
            this.gb.Flush();

            //TODO : Allocate new device after
            if (this.RenderGraphs.Count > 0)
            {
                DX11RenderContext onDevice = this.RenderGraphs.Keys.First();
                this.RenderGraphs[onDevice].Render(sender, host);
            }
            else
            {
                sender.AssignedContext = null;
            }
        }
Ejemplo n.º 6
0
        public void Render(IDX11ResourceDataRetriever sender, IPluginHost host)
        {
            this.gb.Flush();

            //TODO : Allocate new device after
            if (this.RenderGraphs.Count > 0)
            {
                DX11RenderContext onDevice = this.RenderGraphs.Keys.First();
                this.RenderGraphs[onDevice].Render(sender, host);
            }
            else
            {
                sender.AssignedContext = null;
            }
        }
Ejemplo n.º 7
0
        protected override bool ProcessAddedNode(INode2 node)
        {
            if (node.IsNodeAssignableFrom <N>() || node.IsNodeAssignableFrom <IDX11ResourceDataRetriever>())
            {
                DX11Node vn = new DX11Node(node.InternalCOMInterf);

                this.graph.Nodes.Add(vn);

                //If force updater, register event
                if (node.IsNodeAssignableFrom <IDX11ResourceDataRetriever>())
                {
                    IDX11ResourceDataRetriever updater = vn.Instance <IDX11ResourceDataRetriever>();
                    updater.RenderRequest += OnRenderRequest;
                }

                foreach (IPin2 p in node.Pins)
                {
                    this.ProcessAddedPin(p, true);
                }
                return(true);
            }

            return(false);
        }
Ejemplo n.º 8
0
 void graphbuilder_OnRenderRequest(IDX11ResourceDataRetriever sender, IPluginHost host)
 {
     this.rendermanager.Render(sender, host);
 }
Ejemplo n.º 9
0
        public void Render(IDX11ResourceDataRetriever sender, IPluginHost host)
        {
            //Assign device to sender
            sender.AssignedContext = this.context;

            //Called by stuff like info
            DX11Node node = this.graph.FindNode(host);

            this.ProcessNode(node);
        }
Ejemplo n.º 10
0
 void graphbuilder_OnRenderRequest(IDX11ResourceDataRetriever sender, IPluginHost host)
 {
     this.rendermanager.Render(sender, host);
 }