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()); }
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); }
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; } }
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); }
public void addCommand(RenderCommand cmd) { commands.Add(cmd); }