Exemple #1
0
        public static void renderQuad(IDeviceContext context, IBuffer vertexBuffer)
        {
            context.SetVertexBuffer(0, vertexBuffer, 0);
            DrawAttribs draw = new DrawAttribs(false)
            {
                NumVertices = 4,
                Flags       = DrawFlags.VerifyAll
            };

            context.Draw(ref draw);
        }
Exemple #2
0
        protected void drawTriangle(IDeviceContext ic, ITextureView textureView)
        {
            ic.SetPipelineState(pipelineState);
            textureVariable.Set(textureView);
            ic.CommitShaderResources(binding);
            ic.setVertexBuffer(vertexBuffer);
            DrawAttribs draw = new DrawAttribs(false)
            {
                NumVertices = 3,
                Flags       = DrawFlags.VerifyAll
            };

            ic.Draw(ref draw);
        }
Exemple #3
0
        public void blend(IDeviceContext ic, IShaderResourceBinding source)
        {
            ic.SetPipelineState(pipelineState);
            ic.CommitShaderResources(source);
            ic.SetVertexBuffer(0, null, 0);
            DrawAttribs draw = new DrawAttribs(false)
            {
                NumVertices = 3,
                Flags       = DrawFlags.VerifyAll
            };

            // ConsoleLogger.logDebug( "BlendTextures.blend, rendering" );
            ic.Draw(ref draw);
            // ConsoleLogger.logDebug( "BlendTextures.blend, rendered" );
        }
Exemple #4
0
        public void render(IDeviceContext context, ITextureView rtv, CSize outputSize, int index)
        {
            // Setup stuff
            context.SetRenderTarget(rtv, null);
            context.setViewport(outputSize, viewport);
            context.SetPipelineState(pipelineState);
            textureVariable.Set(sourceTextures[index]);
            context.CommitShaderResources(binding);

            // Render a full-screen triangle, no vertex buffer needed
            DrawAttribs draw = new DrawAttribs(false)
            {
                NumVertices = 3,
                Flags       = DrawFlags.VerifyAll
            };

            context.Draw(ref draw);
        }
Exemple #5
0
        void iCursorRender.render(IDeviceContext context, IBuffer vertexBuffer)
        {
            context.writeBuffer(constantBuffer, ref position);
            context.SetVertexBuffer(0, vertexBuffer, 0);
            DrawAttribs draw = new DrawAttribs(false)
            {
                NumVertices = 4,
                Flags       = DrawFlags.VerifyAll
            };

            context.SetPipelineState(psoInvert);
            context.CommitShaderResources(bindingsInvert);
            context.Draw(ref draw);

            context.SetPipelineState(psoRgb);
            context.CommitShaderResources(bindingsRgb);
            context.Draw(ref draw);
        }
Exemple #6
0
        protected override void render(ITextureView swapChainRgb, ITextureView swapChainDepthStencil)
        {
            var ic = context.context;

            ic.SetRenderTarget(swapChainRgb, swapChainDepthStencil);

            // Clear the back buffer
            float[] ClearColor = new float[4] {
                0.350f, 0.350f, 0.350f, 1.0f
            };
            // Let the engine perform required state transitions
            ic.ClearRenderTarget(swapChainRgb, clearColor);
            ic.ClearDepthStencil(swapChainDepthStencil, ClearDepthStencilFlags.DepthFlag, 1.0f, 0);

            // Set the pipeline state in the immediate context
            ic.SetPipelineState(pipelineState);
            ic.CommitShaderResources(null);

            DrawAttribs drawAttrs = new DrawAttribs(true);

            drawAttrs.NumVertices = 3;             // We will render 3 vertices
            ic.Draw(ref drawAttrs);
        }