slimdx drawing a square

Started by
1 comment, last by szpaq234 11 years, 4 months ago
I'm trying to render a square in SlimDX.
Code:

public class Square
{
public Buffer vertexBuffer;
public Square(Vector3 origin, float edge, Device device)
{
DataStream Vertices;
Vertices = new DataStream(12 * 5, true, true);
Vertices.Write(new Vector3(1, 1, 0));
Vertices.Write(new Vector3(-1, 1, 0));
Vertices.Write(new Vector3(-1, -1, 0));
Vertices.Write(new Vector3(1, -1, 0));
Vertices.Write(new Vector3(1, 1, 0));
Vertices.Position = 0;
vertexBuffer = new Buffer(device, Vertices, 12 * 5, ResourceUsage.Default, BindFlags.VertexBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0);
Vertices.Close();
}
public void Draw(Device device)
{
device.ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.LineStrip;
device.ImmediateContext.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(vertexBuffer, 12, 0));
device.ImmediateContext.Draw(4, 0);
}
}

However, only first four elements of DataStream Vertices are rendered. For square, it corresponds to 3 lines. I tried other PrimitiveTopology like TriangleList, TriangleStrip or PointList, they all behave the same - load only first 4 vertices no matter how big original DataStream is. I remember to create vertexBuffer with the same size as DataStream and tried to make it bigger as well.
Advertisement
Draw(int vertexCount, int startVertexLocation)

... vertex count, not primitive count.
it was 1 am, now it's clear. Thx anyway

This topic is closed to new replies.

Advertisement