Editor: 更新编辑器面板和UI控件系统

- 添加新的UI控件系统(Core.h, ScalarControls.h, VectorControls.h, UI.h)
- 更新SceneManager支持场景层级管理
- 优化SelectionManager选择管理
- 改进InspectorPanel/GameViewPanel/HierarchyPanel等面板
- 更新RHI文档说明Vulkan实现计划
This commit is contained in:
2026-03-24 20:02:38 +08:00
parent cab290b17d
commit 9fae910854
36 changed files with 757 additions and 148 deletions

View File

@@ -3,14 +3,15 @@
#include "Core/LogEntry.h"
#include <imgui.h>
namespace UI {
namespace XCEngine {
namespace Editor {
ConsolePanel::ConsolePanel() : Panel("Console") {
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Info, "Engine initialized successfully");
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Info, "Loading default scene...");
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Warning, "Missing material on object 'Cube'");
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Error, "Failed to load texture: 'Assets/Textures/missing.png'");
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Info, "Scene loaded successfully");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Info, "Engine initialized successfully");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Info, "Loading default scene...");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Warning, "Missing material on object 'Cube'");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Error, "Failed to load texture: 'Assets/Textures/missing.png'");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Info, "Scene loaded successfully");
}
void ConsolePanel::Render() {
@@ -21,15 +22,15 @@ void ConsolePanel::Render() {
}
ImGui::SameLine();
if (ImGui::Button("Info")) {
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Info, "Test info message");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Info, "Test info message");
}
ImGui::SameLine();
if (ImGui::Button("Warn")) {
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Warning, "Test warning message");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Warning, "Test warning message");
}
ImGui::SameLine();
if (ImGui::Button("Error")) {
LogSystem::Get().AddLog(XCEngine::Debug::LogLevel::Error, "Test error message");
LogSystem::Get().AddLog(::XCEngine::Debug::LogLevel::Error, "Test error message");
}
ImGui::Separator();
@@ -41,15 +42,15 @@ void ConsolePanel::Render() {
const char* prefix;
switch (log.level) {
case XCEngine::Debug::LogLevel::Info:
case ::XCEngine::Debug::LogLevel::Info:
color = ImVec4(0.7f, 0.7f, 0.7f, 1.0f);
prefix = "[Info] ";
break;
case XCEngine::Debug::LogLevel::Warning:
case ::XCEngine::Debug::LogLevel::Warning:
color = ImVec4(1.0f, 0.8f, 0.0f, 1.0f);
prefix = "[Warn] ";
break;
case XCEngine::Debug::LogLevel::Error:
case ::XCEngine::Debug::LogLevel::Error:
color = ImVec4(1.0f, 0.3f, 0.3f, 1.0f);
prefix = "[Error]";
break;
@@ -67,4 +68,5 @@ void ConsolePanel::Render() {
ImGui::End();
}
}
}