diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-10 16:48:20 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-12 12:14:05 -0500 |
| commit | 283d1f8dff8731c7317f845a7df5f619b623a121 (patch) | |
| tree | aa2c729e51a4a7c530a6dca833fc4d414ef560e0 /editor | |
| parent | 112c9d067343d85ffc77f559683c0284381d196e (diff) | |
pke: FontType pk_bkt_arr
Diffstat (limited to 'editor')
| -rw-r--r-- | editor/editor.cpp | 60 |
1 files changed, 52 insertions, 8 deletions
diff --git a/editor/editor.cpp b/editor/editor.cpp index a1b8613..7245e22 100644 --- a/editor/editor.cpp +++ b/editor/editor.cpp @@ -1208,6 +1208,49 @@ void RecordImGuiPlayerInput() { ImGui::End(); } +void RecordImGuiFont() { + pk_iter_t<FontType> iter_ft{}; + bool b; + if (!ImGui::Begin("Fonts")) { + ImGui::End(); + return; + } + static ImGuiTableFlags tableFlags{ + ImGuiTableFlags_Borders | + ImGuiTableFlags_Resizable | + ImGuiTableFlags_RowBg + }; + + pk_bkt_arr_t<FontType> &fonts_base = *static_cast<pk_bkt_arr_t<FontType>*>(FontType_GetFonts()); + + if (ImGui::BeginTable("Font list", 3, tableFlags)) { + ImGui::TableSetupColumn("Title"); + ImGui::TableSetupColumn("MSDF settings"); + ImGui::TableSetupColumn("Spacing"); + ImGui::TableHeadersRow(); + b = pk_bkt_arr_iter_begin(&fonts_base, &iter_ft); + while(b) { + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + ImGui::Text("Title: %s", iter_ft->title.val); + ImGui::TableSetColumnIndex(1); + ImGui::Text("minimum_scale: %f", iter_ft->msdf_settings.minimum_scale); + ImGui::Text("px_range: %f", iter_ft->msdf_settings.px_range); + ImGui::TableSetColumnIndex(2); + ImGui::Text("geometry_scale: %f", iter_ft->spacing.geometry_scale); + ImGui::Text("em_size: %f", iter_ft->spacing.em_size); + ImGui::Text("ascender_y: %f", iter_ft->spacing.ascender_y); + ImGui::Text("descender_y: %f", iter_ft->spacing.descender_y); + ImGui::Text("line_height: %f", iter_ft->spacing.line_height); + ImGui::Text("underline_y: %f", iter_ft->spacing.underline_y); + ImGui::Text("underline_thickness: %f", iter_ft->spacing.underline_thickness); + b = pk_bkt_arr_iter_increment(&fonts_base, &iter_ft); + } + ImGui::EndTable(); + } + ImGui::End(); +} + void RecordImGuiCameras() { bool b; pk_bkt_arr *bkt_arr_cams; @@ -1423,10 +1466,10 @@ void RecordImGuiUITree() { selected_ui_box = box; FontRenderSettings frs{}; if (type == PKE_UI_BOX_TYPE_TEXT) { - box->type_data->text.font_type_render = FontType_AddStringRender(FontTypeIndex(0), std::move(cstring_to_pk_cstr("")), &frs, box); + box->type_data->text.font_type_render = FontType_AddStringRender(FontTypeHandle{0,0}, std::move(cstring_to_pk_cstr("")), &frs, box); } if (type == PKE_UI_BOX_TYPE_BUTTON_TEXT) { - box->type_data->button_text.font_type_render = FontType_AddStringRender(FontTypeIndex(0), std::move(cstring_to_pk_cstr("")), &frs, box); + box->type_data->button_text.font_type_render = FontType_AddStringRender(FontTypeHandle{0,0}, std::move(cstring_to_pk_cstr("")), &frs, box); } is_creating_new_box = false; is_child = false; @@ -1548,7 +1591,7 @@ void RecordImGuiUIEdit() { ImGui::Text("Type: Text"); ImGui::Separator(); FontRender fr = *FontType_GetFontRender(selected_ui_box->type_data->text.font_type_render); - ImGui::Text("FontRender: %.4hu:%.4hu", fr.fr_handle.b, fr.fr_handle.i); + ImGui::Text("FontRender: %.4hu:%.4hu", fr.font_render_handle.b, fr.font_render_handle.i); const int buffer_len = 1024; char *text_buffer = pk_new_arr<char>(buffer_len, pkeSettings.mem_bkt.game_transient); size_t len = fr.text.length; @@ -1562,14 +1605,14 @@ void RecordImGuiUIEdit() { cstr.reserved = len+1; cstr.length = len; cstr.val = s; - FontType_UpdateStringRenderText({fr.index_ft, {fr.fr_handle}}, std::move(cstr)); + FontType_UpdateStringRenderText({fr.font_type_handle, fr.font_render_handle}, std::move(cstr)); changed = true; } ImGui::SameLine(); ImGui::Text("(%.4zu/%4i)", len, buffer_len); changed_sub = RecordImGui_FontRenderSettings(fr.settings, false); if (changed_sub) { - FontType_UpdateStringRender({fr.index_ft, {fr.fr_handle}}, &fr.settings); + FontType_UpdateStringRender({fr.font_type_handle, fr.font_render_handle}, &fr.settings); } changed |= changed_sub; } @@ -1639,7 +1682,7 @@ void RecordImGuiUIEdit() { ImGui::Text("Type: Button Text"); ImGui::Separator(); FontRender fr = *FontType_GetFontRender(selected_ui_box->type_data->button_text.font_type_render); - ImGui::Text("FontRender: %.4hu:%.4hu", fr.fr_handle.b, fr.fr_handle.i); + ImGui::Text("FontRender: %.4hu:%.4hu", fr.font_render_handle.b, fr.font_render_handle.i); const int buffer_len = 1024; char *text_buffer = pk_new_arr<char>(buffer_len, pkeSettings.mem_bkt.game_transient); size_t len = fr.text.length; @@ -1653,14 +1696,14 @@ void RecordImGuiUIEdit() { cstr.reserved = len+1; cstr.length = len; cstr.val = s; - FontType_UpdateStringRenderText({fr.index_ft, {fr.fr_handle}}, std::move(cstr)); + FontType_UpdateStringRenderText({fr.font_type_handle, fr.font_render_handle}, std::move(cstr)); changed = true; } ImGui::SameLine(); ImGui::Text("(%.4zu/%4i)", len, buffer_len); changed_sub = RecordImGui_FontRenderSettings(fr.settings, false); if (changed_sub) { - FontType_UpdateStringRender({fr.index_ft, {fr.fr_handle}}, &fr.settings); + FontType_UpdateStringRender({fr.font_type_handle, fr.font_render_handle}, &fr.settings); } changed |= changed_sub; } @@ -2248,6 +2291,7 @@ void PkeEditor_RecordImGui() { RecordImGuiEntityTypes(); RecordImGuiAssets(); RecordImGuiPlayerInput(); + RecordImGuiFont(); } } |
