Added texture support.
This commit is contained in:
53
src/engine/display/primitives/quad.c
Normal file
53
src/engine/display/primitives/quad.c
Normal 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;
|
||||
}
|
Reference in New Issue
Block a user