43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "label.h"
|
|
|
|
void labelInit(label_t *label) {
|
|
label->fontSize = FONT_SIZE_DEFAULT;
|
|
label->font = NULL;
|
|
label->maxWidth = -1;
|
|
label->primitive.verticeCount = 0;
|
|
}
|
|
|
|
void labelSetText(label_t *label, font_t *font, char *text) {
|
|
if(label->primitive.verticeCount != 0) {
|
|
primitiveDispose(&label->primitive);
|
|
label->primitive.verticeCount = 0;
|
|
}
|
|
|
|
label->font = font;
|
|
fontTextBuffer(
|
|
font, &label->primitive, &label->info, text,
|
|
label->maxWidth, label->fontSize
|
|
);
|
|
}
|
|
|
|
void labelRender(
|
|
label_t *label, shader_t *shader,
|
|
shaderuniform_t uniformModel, shaderuniform_t uniformTexture,
|
|
float x, float y
|
|
) {
|
|
if(label->primitive.verticeCount == 0) return;
|
|
shaderUsePosition(shader, uniformModel, x,y,0, 0,0,0);
|
|
shaderUseTexture(shader, uniformTexture, &label->font->texture);
|
|
primitiveDraw(&label->primitive, 0, -1);
|
|
}
|
|
|
|
void labelDispose(label_t *label) {
|
|
primitiveDispose(&label->primitive);
|
|
} |