Generating some sample vertex data
struct Vector3;
struct Vector4;
struct Vertex
{
Vector3 position;
Vector4 color;
}
{
Vertex vertexData[] = {
{ Vector3(0, 0, 0), Vector4(1, 0, 0, 1) },
{ Vector3(1, 0, 0), Vector4(0, 1, 0, 1) },
{ Vector3(1, 1, 0), Vector4(0, 0, 1, 1) },
};
...
}
Describing our vertex data
When loading vertex data to the graphics device it is necessary to describe the properties of the data so it may be interpreted correctly by the input assembler.
#include <Rendering/VertexFormat.h>
{
VertexElement positionElement = {
0,
DataFormat::Float,
3,
ElementSemantic::Position,
0
};
VertexElement colorElement = {
3 * sizeof(float),
DataFormat::Float,
4,
ElementSemantic::Color,
0
};
vertexFormat.elements.push_back(positionElement);
vertexFormat.elements.push_back(colorElement);
...
}
Loading the vertex data.
#include <Rendering/IBuffers.h>
{
...
auto buffers = device->getBuffers();
auto vertexBufferHandle = buffers->loadVertexBuffer(
vertexData,
3,
vertexFormat
);
if (HandleIsValid(vertexBufferHandle)) {
}
...
}