diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-04-10 11:41:29 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-04-10 11:41:29 -0400 |
| commit | a066448effaa9a56c049136067a73ba0156f65d3 (patch) | |
| tree | 7eee2f9db2f23d1847d53f67874d7af0d80732e0 /src/font.hpp | |
| parent | 3fbf01b3466bb94a730cc94fea72ea661ffb9759 (diff) | |
pke: ui box type text cleanup
Diffstat (limited to 'src/font.hpp')
| -rw-r--r-- | src/font.hpp | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/font.hpp b/src/font.hpp index 56977de..0396e8d 100644 --- a/src/font.hpp +++ b/src/font.hpp @@ -10,22 +10,31 @@ TypeSafeInt_H(FontTypeIndex, uint16_t, 0xFFFF); TypeSafeInt_H(FontRenderIndex, uint16_t, 0xFFFF); -enum FONT_GLYPH_CHAR_FLAGS : uint8_t { - FONT_GLYPH_CHAR_FLAGS_NONE = (0 << 0), - FONT_GLYPH_CHAR_FLAGS_CONTROL = (1 << 0), - FONT_GLYPH_CHAR_FLAGS_WHITESPACE = (1 << 1), - FONT_GLYPH_CHAR_FLAGS_ALIGN_ADVANCE = (1 << 2), - FONT_GLYPH_CHAR_FLAGS_NEW_LINE = (1 << 3), -}; +TypeSafeInt_H(FONT_GLYPH_CHAR_FLAG, uint8_t, 0xFF); +TypeSafeInt_H(FONT_RENDER_SURFACE_AREA_TYPE_FLAG, uint8_t, 0xFF); -enum FONT_RENDER_SURFACE_AREA_TYPE_FLAGS : uint8_t { - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_NONE = 0, - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_GROW_VERTICAL = (1 << 0), - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_GROW_HORIZONTAL = (1 << 1), +constexpr FONT_GLYPH_CHAR_FLAG FONT_GLYPH_CHAR_FLAGS_NONE + = FONT_GLYPH_CHAR_FLAG((0 << 0)); +constexpr FONT_GLYPH_CHAR_FLAG FONT_GLYPH_CHAR_FLAGS_CONTROL + = FONT_GLYPH_CHAR_FLAG((1 << 0)); +constexpr FONT_GLYPH_CHAR_FLAG FONT_GLYPH_CHAR_FLAGS_WHITESPACE + = FONT_GLYPH_CHAR_FLAG((1 << 1)); +constexpr FONT_GLYPH_CHAR_FLAG FONT_GLYPH_CHAR_FLAGS_ALIGN_ADVANCE + = FONT_GLYPH_CHAR_FLAG((1 << 2)); +constexpr FONT_GLYPH_CHAR_FLAG FONT_GLYPH_CHAR_FLAGS_NEW_LINE + = FONT_GLYPH_CHAR_FLAG((1 << 3)); - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_STATIC = 0, - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_FLUID = (1 << 0) | (1 << 1), -}; +constexpr FONT_RENDER_SURFACE_AREA_TYPE_FLAG FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_NONE + = FONT_RENDER_SURFACE_AREA_TYPE_FLAG(0); +constexpr FONT_RENDER_SURFACE_AREA_TYPE_FLAG FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_GROW_VERTICAL + = FONT_RENDER_SURFACE_AREA_TYPE_FLAG((1 << 0)); +constexpr FONT_RENDER_SURFACE_AREA_TYPE_FLAG FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_GROW_HORIZONTAL + = FONT_RENDER_SURFACE_AREA_TYPE_FLAG((1 << 1)); + +constexpr FONT_RENDER_SURFACE_AREA_TYPE_FLAG FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_STATIC + = FONT_RENDER_SURFACE_AREA_TYPE_FLAG(0); +constexpr FONT_RENDER_SURFACE_AREA_TYPE_FLAG FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_FLUID + = FONT_RENDER_SURFACE_AREA_TYPE_FLAG((1 << 0) | (1 << 1)); struct FontRenderHandle { FontTypeIndex index_ft; @@ -38,7 +47,7 @@ struct FontGlyphChar { glm::vec2 sprite_region_max; glm::dvec4 plane_bounds; uint32_t unicode; - FONT_GLYPH_CHAR_FLAGS flags; + FONT_GLYPH_CHAR_FLAG flags; }; struct FontRenderSettings { float char_scale; @@ -46,7 +55,7 @@ struct FontRenderSettings { float char_spacing_scale; glm::ivec2 surface_area_size; // TODO glm::ivec2 surface_area_pos; - FONT_RENDER_SURFACE_AREA_TYPE_FLAGS surface_area_type_flags; // TODO + FONT_RENDER_SURFACE_AREA_TYPE_FLAG surface_area_type_flags; // TODO }; struct FontRender { FontRenderHandle handle; |
