From ee9c18edd3e59414dba1fb408443c6c5900a6d6a Mon Sep 17 00:00:00 2001 From: Nanako <469449812@qq.com> Date: Fri, 12 Jul 2024 07:55:12 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E5=86=85=E5=AD=98?= =?UTF-8?q?=E6=B1=A0=202.=20=E5=BB=B6=E8=BF=9F=E8=A1=A5=E5=81=BF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E6=88=90=203.=20=E4=BC=98=E5=8C=96=E5=86=85?= =?UTF-8?q?=E5=AD=98=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Arona/src/arona_application.cpp | 9 ++++----- Arona/src/widget/widgets.cpp | 7 ++++--- Arona/src/widget/widgets.h | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Arona/src/arona_application.cpp b/Arona/src/arona_application.cpp index 1885e04..2273d03 100644 --- a/Arona/src/arona_application.cpp +++ b/Arona/src/arona_application.cpp @@ -2,6 +2,7 @@ #include "window/window_manager.h" #include "imgui.h" +#include "imgui_main.h" #include "widget/widgets.h" #include "audio/plugin_host/plugin_host_manager.h" #include "audio/plugin_host/plugin_host.h" @@ -17,9 +18,7 @@ void configure_imgui(ImGuiIO& io) { io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows - io.ConfigViewportsNoAutoMerge = true; - // io.ConfigFlags |= ImGuiConfigFlags_DpiEnableScaleFonts; // Enable DPI scaling - // io.ConfigFlags |= ImGuiConfigFlags_DpiEnableScaleViewports; // Enable DPI scaling + io.ConfigViewportsNoAutoMerge = false; // Setup Dear ImGui style ImGui::StyleColorsClassic(); @@ -29,7 +28,7 @@ void configure_imgui(ImGuiIO& io) { // ImGui::StyleColorsDark(); //ImGui::StyleColorsLight(); // get dpi scale - float dpi_scale = 1.5f; + float dpi_scale = get_dpi_scale(); // Load Fonts // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. @@ -46,7 +45,7 @@ void configure_imgui(ImGuiIO& io) { //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f); //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, nullptr, io.Fonts->GetGlyphRangesJapanese()); //IM_ASSERT(font != nullptr); - auto font = io.Fonts->AddFontFromFileTTF("resources/GenJyuuGothic-Normal-2.ttf", 18.f * dpi_scale); + io.Fonts->AddFontFromFileTTF("resources/GenJyuuGothic-Normal-2.ttf", 18.f * dpi_scale); } void draw_imgui(float delta_time) { diff --git a/Arona/src/widget/widgets.cpp b/Arona/src/widget/widgets.cpp index 131f49b..71ef320 100644 --- a/Arona/src/widget/widgets.cpp +++ b/Arona/src/widget/widgets.cpp @@ -59,7 +59,7 @@ void draw_mixer_track(mixer_track* track) { ImGui::BeginGroup(); window->DC.CurrLineTextBaseOffset = 0; - ImGui::Text(track_label.c_str()); + ImGui::Text("%s", track_label.c_str()); float widget_height = ImGui::GetContentRegionAvail().y; const ImVec2 slider_size = ImGui::CalcItemSize(ImVec2(25, widget_height), 25, widget_height); @@ -68,7 +68,7 @@ void draw_mixer_track(mixer_track* track) { track->set_volume(volume); } ImGui::SameLine(); - draw_volume_bar(track->get_uid(), widget_height, track->get_ui_buffers()); + draw_volume_bar(track->get_uid(), widget_height, track->get_ui_buffer()); ImGui::EndGroup(); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) { get_mixer()->selected_track = track; @@ -279,7 +279,8 @@ bool vertical_volume_slider(const char* id, ImVec2 size, float* volume, float mi void draw_mixer_track_effect_list(mixer_track* track) { ImGui::Begin("TrackEffects"); if (track) { - for (auto effect: track->effects) { + const auto& effects = track->get_effects(); + for (auto effect : effects) { draw_mixer_track_effect(effect); ImGui::SameLine(); draw_volume_bar(effect->get_uid(), 100, *effect->ui_buffers); diff --git a/Arona/src/widget/widgets.h b/Arona/src/widget/widgets.h index 28e9ec0..8def106 100644 --- a/Arona/src/widget/widgets.h +++ b/Arona/src/widget/widgets.h @@ -13,6 +13,7 @@ class plugin_host; inline float volume_bar_peak_duration = 1.0f; inline float volume_bar_peak_decay = 0.2f; inline constexpr float volume_bar_inf = 0.0001f; +inline mixer_track* selected_track = nullptr; inline float mapping(float value, float in_min, float in_max, float out_min, float out_max) { return (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;