Пример #1
0
        public BaseRenderQueue createRenderQueue(PipelineState pipeline)
        {
            BaseRenderQueue rq = new BaseRenderQueue(pipeline);

            myRenderQueues[pipeline.id] = rq;
            return(rq);
        }
Пример #2
0
        //       public override void preparePerPassFinalize(Pass p) { }
        //       public override void prepareFrameFinalize() { }
        #endregion

        #region generate command phase
        //       public override void generateRenderCommandsBegin(BaseRenderQueue q) { }
        public override void generateRenderCommand(RenderInfo r, BaseRenderQueue q)
        {
            ParticleSystemInfo psi = r as ParticleSystemInfo;

            q.addCommand(new SetRenderStateCommand(r.renderState));
            q.addCommand(new DrawArraysCommand(PrimitiveType.Points, 0, psi.count));
        }
Пример #3
0
        //public override void generateCommandsBegin(BaseRenderQueue q) { }

        public override void generateRenderCommand(RenderInfo r, BaseRenderQueue q)
        {
            StaticModelInfo smi = r as StaticModelInfo;

            q.addCommand(new SetRenderStateCommand(r.renderState));
            q.addCommand(new DrawIndexedCommand(PrimitiveType.Triangles, smi.indexCount, smi.indexOffset, DrawElementsType.UnsignedShort));
        }
Пример #4
0
        //public override void preparePerPassFinalize(Pass p) { }
        //public override void preparePerView(Renderable r, View v) { }
        //public override void prepareFrameFinalize() { }

        #endregion

        #region generate command phase
        //public override void generateCommandsBegin(BaseRenderQueue q) { }

        public override void generateRenderCommand(RenderInfo r, BaseRenderQueue q)
        {
            SkyboxRenderInfo skyInfo = r as SkyboxRenderInfo;

            q.addCommand(new SetRenderStateCommand(r.renderState));
            q.addCommand(new DrawIndexedCommand(PrimitiveType.Triangles, 36, 0, DrawElementsType.UnsignedShort));
        }
Пример #5
0
 public virtual void registerQueue(BaseRenderQueue rq)
 {
     if (myRenderQueues.ContainsKey(rq.myPipeline.id) == false)
     {
         myRenderQueues[rq.myPipeline.id] = rq;
     }
 }
Пример #6
0
        public virtual BaseRenderQueue findRenderQueue(UInt64 pipelineId)
        {
            BaseRenderQueue rq = null;

            myRenderQueues.TryGetValue(pipelineId, out rq);
            return(rq);
        }
Пример #7
0
        public void executeRenderQueue(BaseRenderQueue rq)
        {
            bindPipeline(rq.myPipeline);

            foreach (RenderCommand rc in rq.commands)
            {
                rc.execute();
            }
        }
Пример #8
0
        public DebugPass(RenderTarget rt = null)
            : base("Debug", "debug")
        {
            renderTarget = rt;

            PipelineState ps = new PipelineState();

            ps.blending.enabled          = true;
            ps.shaderState.shaderProgram = DebugRenderer.canvas.myShader;
            ps.vaoState.vao = DebugRenderer.canvas.myVao;
            ps.generateId();

            myRenderQueue      = Renderer.device.createRenderQueue(ps);
            myRenderQueue.name = "debug";
            registerQueue(myRenderQueue);
        }
Пример #9
0
 public virtual void generateRenderCommandsFinalize(BaseRenderQueue q)
 {
 }
Пример #10
0
 public virtual void generateRenderCommand(RenderInfo r, BaseRenderQueue q)
 {
 }
Пример #11
0
 //generate command phase phase
 public virtual void generateRenderCommandsBegin(BaseRenderQueue q)
 {
 }