/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "asset/asset.h" #include "display/texture.h" #include "display/tileset/tileset_minogram.h" #define UI_TEXT_CHAR_START '!' /** * Draws a single character at the specified position. * * @param x The x-coordinate to draw the character at. * @param y The y-coordinate to draw the character at. * @param c The character to draw. * @param color The color to draw the character in. * @param tileset Font tileset to use for rendering. * @param texture Texture containing the font tileset image. */ void uiTextDrawChar( const float_t x, const float_t y, const char_t c, const color_t color, const tileset_t *tileset, texture_t *texture ); /** * Draws a string of text at the specified position. * * @param x The x-coordinate to draw the text at. * @param y The y-coordinate to draw the text at. * @param text The null-terminated string of text to draw. * @param color The color to draw the text in. * @param tileset Font tileset to use for rendering. * @param texture Texture containing the font tileset image. */ void uiTextDraw( const float_t x, const float_t y, const char_t *text, const color_t color, const tileset_t *tileset, texture_t *texture ); /** * Measures the width and height of the given text string when rendered. * * @param text The null-terminated string of text to measure. * @param tileset Font tileset to use for measurement. * @param outWidth Pointer to store the measured width in pixels. * @param outHeight Pointer to store the measured height in pixels. */ void uiTextMeasure( const char_t *text, const tileset_t *tileset, int32_t *outWidth, int32_t *outHeight );