summaryrefslogtreecommitdiff
path: root/editor/editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor.cpp')
-rw-r--r--editor/editor.cpp60
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();
}
}