PrimitiveBatch is responsible for setting the vertex buffer, index buffer, and primitive topology, then issuing the final draw call. Unlike the higher level SpriteBatch helper, it does not provide shaders, set the input layout, or set any state objects. PrimitiveBatch is often used in conjunction with BasicEffect and the structures from VertexTypes.h, but it can work with any other shader or vertex formats of your own.
To initialize a PrimitiveBatch for drawing VertexPositionColor data: std::unique_ptr> primitiveBatch(new PrimitiveBatch(deviceContext));
To draw a line: basicEffect->Apply(deviceContext);
deviceContext->IASetInputLayout(inputLayout);
primitiveBatch->Begin();
primitiveBatch->DrawLine(VertexPositionColor(...), VertexPositionColor(...));
primitiveBatch->End();
PrimitiveBatch provides five drawing methods:
- DrawLine(v1, v2)
- DrawTriangle(v1, v2, v3)
- DrawQuad(v1, v2, v3, v4)
- Draw(topology, vertices, vertexCount)
- DrawIndexed(topology, indices, indexCount, vertices, vertexCount)
Source