Added texture support.

This commit is contained in:
2021-03-18 21:46:51 +11:00
parent 85b5332649
commit b5c2651202
10 changed files with 247 additions and 32 deletions

View File

@ -0,0 +1,53 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "quad.h"
void quadBuffer(primitive_t *primitive,
float x0, float y0, float u0, float v0,
float x1, float y1, float u1, float v1,
int32_t verticeStart, int32_t indiceStart
) {
vertice_t *vertices = malloc(sizeof(vertice_t) * 4);
indice_t *indices = malloc(sizeof(indice_t) * 6);
vertices[0].x = x0, vertices[0].y = y0, vertices[0].z = 0;
vertices[0].u = u0, vertices[0].v = v0;
vertices[1].x = x1, vertices[1].y = y0, vertices[1].z = 0;
vertices[1].u = u1, vertices[1].v = v0;
vertices[2].x = x0, vertices[2].y = y1, vertices[2].z = 0;
vertices[2].u = u0, vertices[2].v = v1;
vertices[3].x = x1, vertices[3].y = y1, vertices[3].z = 0;
vertices[3].u = u1, vertices[3].v = v1;
indices[0] = (indice_t)0, indices[1] = (indice_t)1, indices[2] = (indice_t)2;
indices[3] = (indice_t)1, indices[4] = (indice_t)2, indices[5] = (indice_t)3;
primitiveBufferVertices(primitive, verticeStart, 4, vertices);
primitiveBufferIndices(primitive, indiceStart, 6, indices);
free(vertices);
free(indices);
}
primitive_t * quadCreate(
float x0, float y0, float u0, float v0,
float x1, float y1, float u1, float v1
) {
primitive_t *primitive = primitiveCreate(4, 6);
quadBuffer(primitive,
x0, y0, u0, v0,
x1, y1, u1, v1,
0, 0
);
return primitive;
}