Esempio n. 1
0
        public virtual void generateRenderCommandLists()
        {
            preCommands.Clear();
            postCommands.Clear();

            preCommands.Add(new PushDebugMarkerCommand(String.Format("View {0}-execute", name)));


            onPreGenerateCommands();

            //reset the device so this view can update as appropriate
            preCommands.Add(new DeviceResetCommand());

            //bind the camera for the view
            preCommands.Add(new BindCameraCommand(camera));

            foreach (Pass p in myPasses)
            {
                p.generateRenderCommandLists();
            }

            onPostGenerateCommands();

            postCommands.Add(new PopDebugMarkerCommand());
        }
Esempio n. 2
0
        public override void getRenderCommands(List <RenderCommandList> renderCmdLists)
        {
            renderCmdLists.Add(preCommands);

            RenderCommandList cmds = new RenderCommandList();

            List <PostEffect> activeEffects = new List <PostEffect>();

            foreach (PostEffect e in myEffects)
            {
                if (e.enabled == true)
                {
                    activeEffects.Add(e);
                }
            }

            foreach (PostEffect e in activeEffects)
            {
                cmds.AddRange(e.getCommands());
            }

            if (activeEffects.Count > 0)
            {
                cmds.Add(new SetRenderTargetCommand(renderTarget));
                cmds.Add(new CopyFramebufferCommand(activeEffects[activeEffects.Count - 1].output, view.viewport.width, view.viewport.height));
            }

            renderCmdLists.Add(cmds);
            renderCmdLists.Add(postCommands);
        }
Esempio n. 3
0
        public virtual void generateRenderCommandLists()
        {
            preCommands.Clear();
            postCommands.Clear();

            preCommands.Add(new PushDebugMarkerCommand(String.Format("Pass {0}:{1}-execute", view.name, name)));

            if (renderTarget != null)
            {
                preCommands.Add(new SetRenderTargetCommand(renderTarget));
            }

            if (clearTarget == true)
            {
                preCommands.Add(new ClearColorCommand(clearColor));
                preCommands.Add(new ClearCommand(clearMask));
            }

            //called after setting render target so that any user commands inserted will affect (or change) the render target
            onPreGenerateCommands();

            stats.queueCount  = myRenderQueues.Count;
            stats.renderCalls = 0;
            stats.name        = name;
            stats.technique   = technique;

            //add the view specific commands for each render queue
            foreach (BaseRenderQueue rq in myRenderQueues.Values)
            {
                rq.commands.Clear();
                rq.generateRenderCommands();
            }

            onPostGenerateCommands();

            postCommands.Add(new PopDebugMarkerCommand());

            stats.renderCalls += preCommands.Count;
            stats.renderCalls += postCommands.Count;
            foreach (BaseRenderQueue rq in myRenderQueues.Values)
            {
                stats.renderCalls += rq.commands.Count;
            }
        }
Esempio n. 4
0
        public override void getRenderCommands(List <RenderCommandList> renderCmdLists)
        {
            renderCmdLists.Add(preCommands);

            RenderCommandList cmds = new RenderCommandList();

            foreach (PostEffect e in myEffects)
            {
                cmds.AddRange(e.getCommands());
            }

            if (myEffects.Count > 0)
            {
                cmds.Add(new SetRenderTargetCommand(renderTarget));
                cmds.Add(new CopyFramebufferCommand(myEffects[myEffects.Count - 1].output, view.viewport.width, view.viewport.height));
            }

            renderCmdLists.Add(cmds);

            renderCmdLists.Add(postCommands);
        }
Esempio n. 5
0
 public void addCommand(RenderCommand cmd)
 {
     commands.Add(cmd);
 }