feat(editor): persist graphics settings and shadow overrides

This commit is contained in:
2026-04-19 00:01:49 +08:00
parent 9ca7960346
commit 8257403036
31 changed files with 1233 additions and 134 deletions

View File

@@ -22,10 +22,6 @@ constexpr float kRunToolbarButtonExtent = 24.0f;
constexpr float kRunToolbarButtonSpacing = 8.0f;
constexpr float kRunToolbarIconInset = 3.0f;
constexpr ImVec2 kMainMenuFramePadding(6.0f, 2.0f);
constexpr ImVec4 kMainMenuTextColor(0.08f, 0.08f, 0.08f, 1.0f);
constexpr ImVec4 kMainMenuItemHoveredColor(0.88f, 0.88f, 0.88f, 1.0f);
constexpr ImVec4 kMainMenuItemActiveColor(0.82f, 0.82f, 0.82f, 1.0f);
constexpr ImVec4 kRunToolbarBackgroundColor(0.1f, 0.1f, 0.1f, 1.0f);
std::string BuildRunToolbarIconPath(const char* fileName) {
const std::filesystem::path exeDir(
@@ -113,11 +109,14 @@ void MenuBar::RenderChrome() {
Actions::HandleMenuBarShortcuts(*m_context);
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, kMainMenuFramePadding);
ImGui::PushStyleColor(ImGuiCol_Text, kMainMenuTextColor);
ImGui::PushStyleColor(ImGuiCol_Header, kMainMenuItemActiveColor);
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, kMainMenuItemHoveredColor);
ImGui::PushStyleColor(ImGuiCol_HeaderActive, kMainMenuItemActiveColor);
Actions::DrawMainMenuBar(*m_context, m_aboutPopup);
ImGui::PushStyleColor(ImGuiCol_Text, UI::MenuTextColor());
ImGui::PushStyleColor(ImGuiCol_Header, UI::MenuSurfaceActiveColor());
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, UI::MenuSurfaceHoverColor());
ImGui::PushStyleColor(ImGuiCol_HeaderActive, UI::MenuSurfaceActiveColor());
Actions::DrawMainMenuBar(
*m_context,
m_aboutPopup,
m_projectGraphicsSettingsPopup);
ImGui::PopStyleColor(4);
ImGui::PopStyleVar();
RenderRunToolbar();
@@ -128,7 +127,10 @@ void MenuBar::RenderOverlays() {
return;
}
Actions::DrawMainMenuOverlays(m_context, m_aboutPopup);
Actions::DrawMainMenuOverlays(
m_context,
m_aboutPopup,
m_projectGraphicsSettingsPopup);
}
void MenuBar::RenderRunToolbar() {
@@ -150,7 +152,7 @@ void MenuBar::RenderRunToolbar() {
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(12.0f, 1.0f));
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleColor(ImGuiCol_WindowBg, kRunToolbarBackgroundColor);
ImGui::PushStyleColor(ImGuiCol_WindowBg, UI::ToolbarBackgroundColor());
const bool open =
ImGui::BeginViewportSideBar("##MainRunToolbar", viewport, ImGuiDir_Up, kRunToolbarHeight, kWindowFlags);
ImGui::PopStyleColor();