#pragma once #include "../main.h" #include "graphics.h" #include #define UNIFONT_MAX_CHAR (0xffff) #define UNIFONT_CHAR_COUNT (0xffff + 1) #define UNIFONT_CHAR_WIDTH 8 #define UNIFONT_CHAR_HEIGHT 16 extern const unsigned char unifont_Data[], unifont_Width[]; extern const unsigned char unifont_Data_End[], unifont_Width_End[]; // Past-the-end pointers for the data files static inline bool unifont_IsCharDoublewidth(uint32_t codepoint) { const unsigned char *ptr = unifont_Width + codepoint / 8; if (ptr < unifont_Width_End) return (*ptr) & (1u << (7 - codepoint % 8)); else return false; } void unifont_DrawChar(int posX, int posY, const HelosGraphics_Color *color, uint32_t codepoint); void unifont_DrawString(int posX, int posY, const HelosGraphics_Color *color, const uint32_t *codepoints, int count); void unifont_DrawStringUTF16(int posX, int posY, const HelosGraphics_Color *color, const uint16_t *codepoints, int count); void unifont_DrawStringASCII(int posX, int posY, const HelosGraphics_Color *color, const char *codepoints, int count);