//No function in monogame to draw without vb it seems... /* * struct VertexShaderInput * { * float2 Position : POSITION0; * }; * * VertexShaderOutput VertexShaderFunction(VertexShaderInput input, uint id:SV_VERTEXID) * { * VertexShaderOutput output; * output.Position = float4(input.Position, 0, 1); * output.TexCoord.x = (float)(id / 2) * 2.0; * output.TexCoord.y = 1.0 - (float)(id % 2) * 2.0; * * return output; * } * */ public FullScreenTriangle(GraphicsDevice graphics) { FullScreenQuadVertex[] vertices = new FullScreenQuadVertex[3]; vertices[0] = new FullScreenQuadVertex(new Vector2(-1, -1)); vertices[1] = new FullScreenQuadVertex(new Vector2(-1, 3)); vertices[2] = new FullScreenQuadVertex(new Vector2(3, -1)); vertexBuffer = new VertexBuffer(graphics, FullScreenQuadVertex.VertexDeclaration, 3, BufferUsage.WriteOnly); vertexBuffer.SetData(vertices); }
public FullScreenQuadRenderer(GraphicsDevice graphics) { FullScreenQuadVertex[] vertexBufferTemp = new FullScreenQuadVertex[4]; vertexBufferTemp[0] = new FullScreenQuadVertex(new Vector2(-1, 1)); vertexBufferTemp[1] = new FullScreenQuadVertex(new Vector2(1, 1)); vertexBufferTemp[2] = new FullScreenQuadVertex(new Vector2(-1, -1)); vertexBufferTemp[3] = new FullScreenQuadVertex(new Vector2(1, -1)); short[] indexBufferTemp = new short[] { 0, 3, 2, 0, 1, 3 }; _vertexBuffer = new VertexBuffer(graphics, FullScreenQuadVertex.VertexDeclaration, 4, BufferUsage.WriteOnly); _indexBuffer = new IndexBuffer(graphics, IndexElementSize.SixteenBits, 6, BufferUsage.WriteOnly); _vertexBuffer.SetData(vertexBufferTemp); _indexBuffer.SetData(indexBufferTemp); }