diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-19 15:31:43 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-19 15:31:43 -0400 |
| commit | 86505b7176718f397c3be62ccf28d6a742676382 (patch) | |
| tree | 84fedf61c710491cac4ad48e99c285b9c45281d3 /src | |
| parent | 154436ab88925540f86f43c0ac885c080949aa9b (diff) | |
pke: add ui-text test scene
Diffstat (limited to 'src')
| -rw-r--r-- | src/font.cpp | 8 | ||||
| -rw-r--r-- | src/font.hpp | 6 | ||||
| -rw-r--r-- | src/game.cpp | 41 |
3 files changed, 9 insertions, 46 deletions
diff --git a/src/font.cpp b/src/font.cpp index 6d47fa9..b24ea8f 100644 --- a/src/font.cpp +++ b/src/font.cpp @@ -890,9 +890,13 @@ FontRenderHandle FontType_AddStringRender(FontTypeIndex idx_ft, const pk_cstr && } FontRender *FontType_GetFontRender(FontRenderHandle frh) { - assert(frh.index_ft < ftd.h_ft); + if (frh.index_ft >= ftd.h_ft) { + return nullptr; + } FontType *ft = &ftd.arr_ft[static_cast<FontTypeIndex_T>(frh.index_ft)]; - assert(frh.index_fr < ft->h_render); + if (frh.index_fr >= ft->h_render) { + return nullptr; + } return &ft->renders[static_cast<FontRenderIndex_T>(frh.index_fr)]; } diff --git a/src/font.hpp b/src/font.hpp index 127feec..912327e 100644 --- a/src/font.hpp +++ b/src/font.hpp @@ -57,9 +57,9 @@ struct FontGlyphChar { struct FontRenderSettings { glm::vec4 color_foreground = glm::vec4(0.4, 0.9, 0.5, 0.8); glm::vec4 color_background = glm::vec4(0.0, 0.0, 0.0, 0.0); - float char_scale; - float line_height_scale; - float char_spacing_scale; + float char_scale = 1.f; + float line_height_scale = 1.f; + float char_spacing_scale = 1.f; glm::ivec2 surface_area_size; glm::ivec2 surface_area_pos; FONT_RENDER_SURFACE_AREA_TYPE_FLAG surface_area_type_flags; // TODO diff --git a/src/game.cpp b/src/game.cpp index 5dc149f..0784ce9 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -167,47 +167,6 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) { pk_arr_append_t(&lvl->scene_instances, si); } - // TODO remove me: temp stuff for testing - /* - FontTypeIndex font_type_count; - FontRenderSettings fr_set; - FontRenderHandle fr_1; - FontRenderHandle fr_2; - fr_set.char_scale = 9 * 7.0; - fr_set.line_height_scale = 1.0; - fr_set.char_spacing_scale = 1.0; - fr_set.surface_area_size.x = 1920 - (1920 / 4.0); - fr_set.surface_area_size.y = 1080 - (1080 / 3.0); - fr_set.surface_area_pos.x = 1920 / 4.0; - fr_set.surface_area_pos.y = 1080 / 3.0; - fr_set.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_NONE; - if ((FontType_GetFonts(font_type_count)); font_type_count != FontTypeIndex{0}) { - fr_1 = FontType_AddStringRender(FontTypeIndex{0}, std::move(cstring_to_pk_cstr("012\n3456789\tThe quick\r\nbrown fox jumped over the lazy dog.")), &fr_set); - } - if ((FontType_GetFonts(font_type_count)); font_type_count > FontTypeIndex{1}) { - fr_set.surface_area_pos.y *= 2; - fr_set.surface_area_size.y = 1080 - fr_set.surface_area_pos.y; - fr_2 = FontType_AddStringRender(FontTypeIndex{1}, std::move(cstring_to_pk_cstr("+0123456\n789\tThe quick brown fox jumped over the lazy dog.")), &fr_set); - } - - // TODO remove me: temp stuff for testing - pke_ui_box *ui_box = pke_ui_box_new_root(); - ui_box->flags |= PKE_UI_BOX_FLAG_POSITION_TYPE_DYNAMIC; - ui_box->pos_top_left.x = 0.1; - ui_box->pos_top_left.y = 0.1; - ui_box->max_size.x = 0.8; - ui_box->max_size.y = 0.8; - - // TODO remove me: temp stuff for testing - pke_ui_box *c_ui_box = pke_ui_box_new_child(ui_box, PKE_UI_BOX_TYPE_TEXT); - c_ui_box->flags |= PKE_UI_BOX_FLAG_POSITION_TYPE_STATIC; - c_ui_box->pos_top_left.x = 20; - c_ui_box->pos_top_left.y = 20; - c_ui_box->max_size.x = 3000; - c_ui_box->max_size.y = 3000; - c_ui_box->type_data->text.font_render_handle = fr_1; - */ - GameTimePoint lastTimePoint = pkeSettings.steadyClock.now(); double deltaTillNextRender = pkeSettings.deltaPerFrame; GameTimePoint lastLogTimePoint = pkeSettings.steadyClock.now(); |
