From dc63808a65d11f0db17945da33a2a767c38a6793 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Wed, 25 Mar 2026 16:20:21 +0800 Subject: [PATCH] Rename Impl classes to follow Unity naming convention - SelectionManagerImpl -> SelectionManager - EditorContextImpl -> EditorContext - Removed unused SceneManagerImpl and ISceneManager The Impl suffix was inconsistent with Unity naming conventions. --- Editor重构计划.md | 4 ++ editor/src/Application.cpp | 4 +- .../{EditorContextImpl.h => EditorContext.h} | 10 ++-- editor/src/Core/ISceneManager.h | 44 -------------- editor/src/Core/SceneManagerImpl.h | 59 ------------------- ...ectionManagerImpl.h => SelectionManager.h} | 4 +- editor/src/Layers/EditorLayer.cpp | 4 +- editor/src/panels/InspectorPanel.cpp | 2 +- .../src/RHI/D3D12/D3D12CommandAllocator.cpp | 5 +- 9 files changed, 18 insertions(+), 118 deletions(-) rename editor/src/Core/{EditorContextImpl.h => EditorContext.h} (80%) delete mode 100644 editor/src/Core/ISceneManager.h delete mode 100644 editor/src/Core/SceneManagerImpl.h rename editor/src/Core/{SelectionManagerImpl.h => SelectionManager.h} (94%) diff --git a/Editor重构计划.md b/Editor重构计划.md index 5801c4f9..28ad2a5a 100644 --- a/Editor重构计划.md +++ b/Editor重构计划.md @@ -473,12 +473,16 @@ private: - `editor/src/Core/SelectionManagerImpl.h` - 选择管理器实现 - `editor/src/Core/IEditorContext.h` - 编辑器上下文接口 - `editor/src/Core/EditorContextImpl.h` - 编辑器上下文实现 +- `editor/src/Core/EditorConsoleSink.h/cpp` - Editor 专用日志 Sink **2026-03-25 更新**: - `editor/src/panels/HierarchyPanel.h/cpp` - 已迁移至 IEditorContext - `editor/src/panels/InspectorPanel.h/cpp` - 已迁移至 IEditorContext + EventBus - 移除了所有 Panel 中的 `SelectionManager::Get()` 和 `EditorSceneManager::Get()` 单例调用 - SceneManager::RenameEntity 实现已添加 +- **日志系统统一**:删除了独立的 LogSystem 单例,Editor 和 Engine 共用 Debug::Logger +- ConsolePanel 改用 EditorConsoleSink 从 Logger 读取日志 +- 删除了 `editor/src/Managers/LogSystem.h/cpp` 和 `editor/src/Core/LogEntry.h` ### 阶段二:核心功能(第 3-4 周) diff --git a/editor/src/Application.cpp b/editor/src/Application.cpp index a163137c..e8ca8ea1 100644 --- a/editor/src/Application.cpp +++ b/editor/src/Application.cpp @@ -1,6 +1,6 @@ #include "Application.h" #include "Layers/EditorLayer.h" -#include "Core/EditorContextImpl.h" +#include "Core/EditorContext.h" #include "Core/EditorConsoleSink.h" #include #include @@ -118,7 +118,7 @@ bool Application::Initialize(HWND hwnd) { m_srvHeap->GetCPUDescriptorHandleForHeapStart(), m_srvHeap->GetGPUDescriptorHandleForHeapStart()); - m_editorContext = std::make_shared(); + m_editorContext = std::make_shared(); m_editorContext->SetProjectPath(exeDir); m_editorLayer = new EditorLayer(); diff --git a/editor/src/Core/EditorContextImpl.h b/editor/src/Core/EditorContext.h similarity index 80% rename from editor/src/Core/EditorContextImpl.h rename to editor/src/Core/EditorContext.h index 2ea2c432..d0f5295e 100644 --- a/editor/src/Core/EditorContextImpl.h +++ b/editor/src/Core/EditorContext.h @@ -2,7 +2,7 @@ #include "IEditorContext.h" #include "EventBus.h" -#include "SelectionManagerImpl.h" +#include "SelectionManager.h" #include "Managers/SceneManager.h" #include #include @@ -10,11 +10,11 @@ namespace XCEngine { namespace Editor { -class EditorContextImpl : public IEditorContext { +class EditorContext : public IEditorContext { public: - EditorContextImpl() + EditorContext() : m_eventBus(std::make_unique()) - , m_selectionManager(std::make_unique(*m_eventBus)) + , m_selectionManager(std::make_unique(*m_eventBus)) , m_sceneManager(std::make_unique()) { m_sceneManager->SetSelectionManager(m_selectionManager.get()); } @@ -45,7 +45,7 @@ public: private: std::unique_ptr m_eventBus; - std::unique_ptr m_selectionManager; + std::unique_ptr m_selectionManager; std::unique_ptr m_sceneManager; std::string m_projectPath; }; diff --git a/editor/src/Core/ISceneManager.h b/editor/src/Core/ISceneManager.h deleted file mode 100644 index 9a6bbbc3..00000000 --- a/editor/src/Core/ISceneManager.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace XCEngine { -namespace Editor { - -using GameObjectID = uint64_t; - -class IGameObject { -public: - virtual ~IGameObject() = default; - virtual GameObjectID GetID() const = 0; - virtual const std::string& GetName() const = 0; - virtual void SetName(const std::string& name) = 0; - virtual IGameObject* GetParent() const = 0; - virtual void SetParent(IGameObject* parent) = 0; - virtual size_t GetChildCount() const = 0; - virtual IGameObject* GetChild(size_t index) const = 0; - virtual void DetachFromParent() = 0; - virtual const std::vector& GetChildren() const = 0; -}; - -class ISceneManager { -public: - virtual ~ISceneManager() = default; - - virtual IGameObject* CreateEntity(const std::string& name, IGameObject* parent = nullptr) = 0; - virtual void DeleteEntity(GameObjectID id) = 0; - virtual void RenameEntity(GameObjectID id, const std::string& newName) = 0; - virtual void CopyEntity(GameObjectID id) = 0; - virtual GameObjectID PasteEntity(GameObjectID parent = 0) = 0; - virtual GameObjectID DuplicateEntity(GameObjectID id) = 0; - virtual void MoveEntity(GameObjectID id, GameObjectID newParent) = 0; - virtual IGameObject* GetEntity(GameObjectID id) = 0; - virtual const std::vector& GetRootEntities() const = 0; - virtual bool HasClipboardData() const = 0; - virtual void CreateDemoScene() = 0; -}; - -} -} diff --git a/editor/src/Core/SceneManagerImpl.h b/editor/src/Core/SceneManagerImpl.h deleted file mode 100644 index 65154d60..00000000 --- a/editor/src/Core/SceneManagerImpl.h +++ /dev/null @@ -1,59 +0,0 @@ -#pragma once - -#include "ISceneManager.h" -#include -#include -#include -#include -#include -#include - -namespace XCEngine { -namespace Editor { - -class MathVector3 { -public: - float x, y, z; -}; - -class MathQuaternion { -public: - float x, y, z, w; -}; - -class SceneManagerImpl : public ISceneManager { -public: - SceneManagerImpl(); - - IGameObject* CreateEntity(const std::string& name, IGameObject* parent = nullptr) override; - void DeleteEntity(GameObjectID id) override; - void RenameEntity(GameObjectID id, const std::string& newName) override; - void CopyEntity(GameObjectID id) override; - GameObjectID PasteEntity(GameObjectID parent = 0) override; - GameObjectID DuplicateEntity(GameObjectID id) override; - void MoveEntity(GameObjectID id, GameObjectID newParent) override; - IGameObject* GetEntity(GameObjectID id) override; - const std::vector& GetRootEntities() const override; - bool HasClipboardData() const override; - void CreateDemoScene() override; - -private: - struct ClipboardData { - std::string name; - MathVector3 localPosition = {0, 0, 0}; - MathQuaternion localRotation = {0, 0, 0, 1}; - MathVector3 localScale = {1, 1, 1}; - std::vector children; - }; - - ClipboardData CopyEntityRecursive(GameObjectID id); - GameObjectID PasteEntityRecursive(const ClipboardData& data, GameObjectID parent); - IGameObject* CastToIGameObject(GameObject* go); - - GameObjectID m_nextId = 1; - std::vector m_rootEntities; - std::optional m_clipboard; -}; - -} -} diff --git a/editor/src/Core/SelectionManagerImpl.h b/editor/src/Core/SelectionManager.h similarity index 94% rename from editor/src/Core/SelectionManagerImpl.h rename to editor/src/Core/SelectionManager.h index 8f817816..67659ecd 100644 --- a/editor/src/Core/SelectionManagerImpl.h +++ b/editor/src/Core/SelectionManager.h @@ -9,9 +9,9 @@ namespace XCEngine { namespace Editor { -class SelectionManagerImpl : public ISelectionManager { +class SelectionManager : public ISelectionManager { public: - explicit SelectionManagerImpl(EventBus& eventBus) : m_eventBus(eventBus) {} + explicit SelectionManager(EventBus& eventBus) : m_eventBus(eventBus) {} void SetSelectedEntity(uint64_t entityId) override { if (m_selectedEntities.empty()) { diff --git a/editor/src/Layers/EditorLayer.cpp b/editor/src/Layers/EditorLayer.cpp index 7559124f..33395dce 100644 --- a/editor/src/Layers/EditorLayer.cpp +++ b/editor/src/Layers/EditorLayer.cpp @@ -7,7 +7,7 @@ #include "panels/ConsolePanel.h" #include "panels/ProjectPanel.h" #include "Core/IEditorContext.h" -#include "Core/EditorContextImpl.h" +#include "Core/EditorContext.h" #include #include @@ -22,7 +22,7 @@ void EditorLayer::SetContext(std::shared_ptr context) { void EditorLayer::onAttach() { if (!m_context) { - m_context = std::make_shared(); + m_context = std::make_shared(); } m_menuBar = std::make_unique(); diff --git a/editor/src/panels/InspectorPanel.cpp b/editor/src/panels/InspectorPanel.cpp index 04881e82..e73dc801 100644 --- a/editor/src/panels/InspectorPanel.cpp +++ b/editor/src/panels/InspectorPanel.cpp @@ -1,5 +1,5 @@ #include "InspectorPanel.h" -#include "Core/EditorContextImpl.h" +#include "Core/EditorContext.h" #include "Managers/SceneManager.h" #include "UI/UI.h" #include diff --git a/engine/src/RHI/D3D12/D3D12CommandAllocator.cpp b/engine/src/RHI/D3D12/D3D12CommandAllocator.cpp index a1b1833e..d8a1fcea 100644 --- a/engine/src/RHI/D3D12/D3D12CommandAllocator.cpp +++ b/engine/src/RHI/D3D12/D3D12CommandAllocator.cpp @@ -19,9 +19,8 @@ bool D3D12CommandAllocator::Initialize(ID3D12Device* device, CommandQueueType ty ToD3D12(type), IID_PPV_ARGS(&m_commandAllocator)); if (FAILED(hResult)) { - char buf[256]; - sprintf(buf, "[D3D12CommandAllocator] CreateCommandAllocator failed: hr=0x%08X\n", hResult); - OutputDebugStringA(buf); + FILE* f = fopen("D:\\Xuanchi\\Main\\XCEngine\\debug_rhi.log", "a"); + if (f) { fprintf(f, "[D3D12CommandAllocator] CreateCommandAllocator failed: hr=0x%08X\n", hResult); fclose(f); } } return SUCCEEDED(hResult); }