// Copyright (c) 2021 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include <dawn/dawn.h>
#include "../display/shader.h"
#include "../display/primitive.h"
#include "../display/gui/font.h"

/**
 * Initialize a Label UI Element.
 * @param label Label to initialize.
 */
void labelInit(label_t *label);

/**
 * Sets the text for a given label.
 * 
 * @param label Label to update.
 * @param font Font to use.
 * @param text Text to set.
 */
void labelSetText(label_t *label, font_t *font, char *text);

/**
 * Render a label UI element.
 * 
 * @param label Label to render.
 * @param shader Shader to use while rendering.
 */
void labelRender(label_t *label, shader_t *shader);

/**
 * Dispose a previously created label.
 * 
 * @param label Label to dispose.
 */
void labelDispose(label_t *label);