Skip to content

Commit

Permalink
Closes #37
Browse files Browse the repository at this point in the history
  • Loading branch information
LLeny committed Sep 12, 2023
1 parent a8d9621 commit 0c17876
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 18 deletions.
30 changes: 17 additions & 13 deletions frontend/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,6 @@ void Config::load(App *app)
{
LOG(LOGLEVEL_ERROR) << "Config - Couldn't load config file " << filename;
}

initialize();
load_recents(app);

app->set_dimensions({(float)_store.main_window_width, (float)_store.main_window_height});
app->set_position({(float)_store.main_window_x_pos, (float)_store.main_window_y_pos});

app->gui()->_comlynx_visible = _store.comlynx_visisble;
app->gui()->_console_visible = _store.console_visible;
app->gui()->_sessionscontrol_visible = _store.sessionscontrol_visible;
Console::get_instance().set_log_level(_store.log_level);
}

void Config::save_recents(App *app)
Expand All @@ -66,7 +55,22 @@ void Config::load_recents(App *app)
}
}

void Config::initialize()
void Config::initialize(App *app)
{
load_recents(app);

app->set_dimensions({(float)_store.main_window_width, (float)_store.main_window_height});
app->set_position({(float)_store.main_window_x_pos, (float)_store.main_window_y_pos});

app->gui()->_comlynx_visible = _store.comlynx_visisble;
app->gui()->_console_visible = _store.console_visible;
app->gui()->_sessionscontrol_visible = _store.sessionscontrol_visible;
Console::get_instance().set_log_level(_store.log_level);

update_ui_settings();
}

void Config::update_ui_settings()
{
apply_theme();
// apply_font(); // https://github.com/ocornut/imgui/pull/3761
Expand Down Expand Up @@ -471,7 +475,7 @@ void Config::apply_font(float scale)

io.Fonts->Clear();

int font_size = scale * 16;
int font_size = (store().ui_scale > 0 ? store().ui_scale : scale) * 16;

ImFontConfig cfg;
cfg.MergeMode = true;
Expand Down
4 changes: 3 additions & 1 deletion frontend/gui/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ void App::close_session(std::string session_identifier)

void App::initialize()
{
Config::get_instance().load(this);

_gui = std::make_shared<GUI>();
_gui->initialize();
_gui->sessions_control().set_app(shared_from_this());
Expand All @@ -90,7 +92,7 @@ void App::initialize()

_renderer->setTitle(APP_NAME " " APP_VERSION);

Config::get_instance().load(this);
Config::get_instance().initialize(this);

if (!sound_initialize())
{
Expand Down
12 changes: 11 additions & 1 deletion frontend/gui/settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Settings::~Settings()

bool Settings::render()
{
ImGui::AlignTextToFramePadding();
ImGui::AlignTextToFramePadding();

if (ImGui::BeginTable("#settingstable", 2, ImGuiTableFlags_NoBordersInBody | ImGuiTableFlags_SizingStretchProp))
{
Expand All @@ -34,6 +34,16 @@ bool Settings::render()
Config::get_instance().store().theme = "light";
}

ImGui::TableNextColumn();
ImGui::Text("UI Scale");

ImGui::TableNextColumn();
float scale = Config::get_instance().store().ui_scale;
if (ImGui::SliderFloat("float", &scale, 0.0f, 10.0f, "%.1f"))
{
Config::get_instance().store().ui_scale = scale;
}

ImGui::TableNextColumn();
ImGui::Text("Lynx ROM");

Expand Down
5 changes: 4 additions & 1 deletion frontend/include/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ struct ConfigStore
std::string theme = "dark";
std::string last_rom_folder = ".";
std::string lynx_rom_file = "./lynxboot.img";
float ui_scale = 0;
bool break_on_undocumented_opcode = false;
int main_window_x_pos = 10, main_window_y_pos = 10;
int main_window_width = 800, main_window_height = 600;
Expand All @@ -176,6 +177,7 @@ struct ConfigStore
archive(CEREAL_NVP(last_rom_folder));
archive(CEREAL_NVP(lynx_rom_file));
archive(CEREAL_NVP(break_on_undocumented_opcode));
archive(CEREAL_NVP(ui_scale));
archive(CEREAL_NVP(main_window_x_pos));
archive(CEREAL_NVP(main_window_y_pos));
archive(CEREAL_NVP(main_window_width));
Expand Down Expand Up @@ -209,7 +211,8 @@ class Config
void apply_font(float scale);
void load_recents(App *app);
void save_recents(App *app);
void initialize();
void initialize(App *app);
void update_ui_settings();

void save_sessions(std::vector<std::shared_ptr<SessionGUI>> sessions);
void load_session(std::shared_ptr<SessionGUI> session);
Expand Down
4 changes: 2 additions & 2 deletions frontend/renderer/vk_renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL debug_callback(VkDebugUtilsMessageSeverity
}
else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT)
{
L_WARNING << messageType << ": " << pCallbackData->pMessage;
LOG(LOGLEVEL_WARN) << messageType << ": " << pCallbackData->pMessage;
}
else
{
Expand Down Expand Up @@ -731,8 +731,8 @@ void VulkanRenderer::render_ImGui(std::shared_ptr<GUI> ui)

if (ui->menu().settings().update_pending())
{
Config::get_instance().initialize();
ui->menu().settings().set_update_pending(false);
Config::get_instance().update_ui_settings();
}

ImGui_ImplVulkan_NewFrame();
Expand Down

0 comments on commit 0c17876

Please sign in to comment.