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

@@ -9,6 +9,8 @@
#include "Core/EventBus.h"
#include "Scripting/EditorScriptAssemblyBuilder.h"
#include "UI/BuiltInIcons.h"
#include "Utils/ProjectFileUtils.h"
#include "Utils/ProjectGraphicsSettings.h"
#include "Platform/Win32Utf8.h"
#include "Platform/WindowsProcessDiagnostics.h"
#include <XCEngine/Core/Asset/ResourceManager.h>
@@ -63,6 +65,7 @@ void Application::InitializeScriptingRuntime(const std::string& projectPath) {
". Script class discovery is disabled until the managed assemblies are built.";
logger.Warning(Debug::LogCategory::Scripting, m_scriptRuntimeStatus.statusMessage.c_str());
::XCEngine::Scripting::ScriptEngine::Get().SetRuntime(nullptr);
ProjectGraphicsSettings::ApplyCurrentSelection(projectPath);
return;
}
@@ -72,6 +75,7 @@ void Application::InitializeScriptingRuntime(const std::string& projectPath) {
"Failed to initialize editor script runtime: " + runtime->GetLastError();
logger.Warning(Debug::LogCategory::Scripting, m_scriptRuntimeStatus.statusMessage.c_str());
::XCEngine::Scripting::ScriptEngine::Get().SetRuntime(nullptr);
ProjectGraphicsSettings::ApplyCurrentSelection(projectPath);
return;
}
@@ -79,11 +83,13 @@ void Application::InitializeScriptingRuntime(const std::string& projectPath) {
m_scriptRuntimeStatus.runtimeLoaded = true;
m_scriptRuntime = std::move(runtime);
logger.Info(Debug::LogCategory::Scripting, "Editor script runtime initialized.");
ProjectGraphicsSettings::ApplyCurrentSelection(projectPath);
#else
(void)projectPath;
m_scriptRuntimeStatus.backendEnabled = false;
m_scriptRuntimeStatus.statusMessage = "This editor build does not include Mono scripting support.";
::XCEngine::Scripting::ScriptEngine::Get().SetRuntime(nullptr);
ProjectGraphicsSettings::ApplyCurrentSelection(projectPath);
#endif
}
@@ -255,7 +261,7 @@ void Application::ShutdownEditorContext() {
}
void Application::RenderEditorFrame() {
static constexpr float kClearColor[4] = { 0.22f, 0.22f, 0.22f, 1.0f };
static constexpr float kClearColor[4] = { 0.05f, 0.05f, 0.05f, 1.0f };
if (!m_windowRenderer.BeginFrame()) {
return;
}