e5cb79f3ce
chore: sync workspace state
2026-03-29 01:36:53 +08:00
eb5de3e3d4
Add backpack editor startup scene
2026-03-28 19:26:08 +08:00
a519fdab7d
fix: correct scene view fly and pan controls
2026-03-28 18:37:18 +08:00
569f8ef725
feat: add scene view fly controls
2026-03-28 18:28:11 +08:00
af2f30dad6
refactor: align scene view camera controls with unity
2026-03-28 18:21:18 +08:00
da486075e1
fix: remove scene view orbit roll
2026-03-28 18:02:09 +08:00
001e45bf6b
feat: add scene view grid overlay
2026-03-28 17:50:54 +08:00
3cc823aebd
feat: add scene view editor camera controls
2026-03-28 17:40:14 +08:00
3c45a051a2
feat: refine editor color picker UI
2026-03-28 17:24:48 +08:00
2b255751b6
fix: avoid editor viewport resize deadlock
2026-03-28 17:16:25 +08:00
3b652ac1db
feat: add editor viewport host service
2026-03-28 17:04:14 +08:00
6fcb6ac8fb
refactor: back editor host rendering with engine rhi
2026-03-28 16:50:04 +08:00
1fa97dc246
feat: add editor project switching workflow
2026-03-28 16:19:15 +08:00
4717b595c4
feat: update editor ui framework and assets
2026-03-28 15:07:19 +08:00
b77615569c
Polish shared editor tree context behavior
2026-03-28 00:03:20 +08:00
291d1a7e41
Add persistent shared editor tree interactions
2026-03-27 23:21:43 +08:00
37a90b39e2
Extract shared editor tree view
2026-03-27 22:05:05 +08:00
a51e0f6f88
Unify editor divider and splitter chrome
2026-03-27 21:55:14 +08:00
4b9a63098e
Refine editor action shell and add regression tests
2026-03-27 12:06:24 +08:00
c97510ed5b
Extract hierarchy and project drag semantics
2026-03-27 00:30:11 +08:00
6ec5f05601
Refactor main menu action shell
2026-03-27 00:15:38 +08:00
3ebad63874
Unify inspector and console panel actions
2026-03-27 00:08:46 +08:00
31675e00c8
Refactor editor shell host layers
2026-03-26 23:52:05 +08:00
f87bc53875
Extract editor edit action router
2026-03-26 22:31:22 +08:00
5735e769b0
Route editor actions by active target
2026-03-26 22:10:43 +08:00
f6286d432c
Extract editor interaction states
2026-03-26 21:30:46 +08:00
6467d87b81
Refactor editor UI architecture
2026-03-26 21:18:33 +08:00
45842e961e
Refactor editor dock and panel chrome styling
2026-03-26 16:43:06 +08:00
491fef940d
Refine inspector layout and fix header labels
2026-03-26 15:26:46 +08:00
d018a4c82c
feat(editor): unify component registration pipeline
2026-03-26 02:24:11 +08:00
5c3566774b
docs: 更新 containers 和 threading 模块文档
...
- containers: 更新 string 类的多个方法文档
- threading: 更新 mutex 和 task-group 方法文档
2026-03-26 01:59:14 +08:00
0651666d8c
Fix editor scene persistence and XC scene workflow
2026-03-26 01:26:26 +08:00
b0d0576763
Fix editor selection system: SelectionManager ID types and Scene lookup
...
- SelectionManager now implements ISelectionManager interface with uint64_t IDs
- Remove SelectionManager/SceneManager circular dependency via EventBus
- Add Scene::FindByID() for proper ID-based entity lookup
- SceneManager::GetEntity() now uses FindByID instead of name-based Find
- Fix editor CMakeLists.txt XCEngine.lib path
- EventBus now thread-safe with shared_mutex
2026-03-25 17:51:15 +08:00
621a135ef7
Make HierarchyPanel use EventBus for selection changes
...
- Subscribe to SelectionChangedEvent via EventBus in OnAttach
- Unsubscribe in destructor
- Added m_selectionHandlerId and m_needsRefresh members
- HierarchyPanel now properly receives selection change notifications
2026-03-25 16:41:21 +08:00
605d086bcc
Create ISceneManager interface and fix GetSceneManager return type
...
- Created ISceneManager interface with Editor需要的 SceneManager 方法
- SceneManager now implements ISceneManager
- IEditorContext::GetSceneManager() now returns ISceneManager& instead of void*
- Removed SceneManager::GetSceneManagerConcrete() method
- Updated HierarchyPanel and InspectorPanel to use ISceneManager interface
2026-03-25 16:39:15 +08:00
d4c94907ba
Migrate ProjectManager to dependency injection
...
- Created IProjectManager interface
- ProjectManager now implements IProjectManager
- Removed ProjectManager::Get() singleton
- Added IEditorContext::GetProjectManager()
- ProjectPanel now uses m_context->GetProjectManager() instead of singleton
- EditorContext owns ProjectManager instance
2026-03-25 16:25:55 +08:00
dc63808a65
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.
2026-03-25 16:20:21 +08:00
16e2065c6c
Unified logging: Replace LogSystem with EditorConsoleSink
...
- Created EditorConsoleSink (implements ILogSink interface)
- EditorConsoleSink stores logs in memory buffer (max 1000 entries)
- Added to Debug::Logger in Application::Initialize()
- ConsolePanel now reads from EditorConsoleSink via static GetInstance()
- Removed separate LogSystem singleton
- Removed editor/src/Core/LogEntry.h (no longer needed)
Now Editor and Engine share the same Debug::Logger, with ConsolePanel
displaying logs via EditorConsoleSink.
2026-03-25 16:13:02 +08:00
b08f682e5c
Migrate InspectorPanel to use IEditorContext and EventBus
...
- Replace SelectionManager::Get() singleton with m_context->GetSelectionManager()
- Use EventBus for selection change events instead of direct subscription
- Store entity ID (uint64_t) instead of GameObject* pointer
- Resolve entity ID to GameObject* via SceneManager::GetEntity()
- Remove direct includes of SelectionManager.h
2026-03-25 15:54:22 +08:00
008fb98dee
refactor(editor): Complete architecture refactoring
...
- SceneManager: remove singleton, use dependency injection via EditorContext
- SelectionManager: already interface-based via ISelectionManager
- Panel: now receives IEditorContext for accessing managers
- HierarchyPanel: migrated to use IEditorContext instead of singletons
- Add ISceneManager interface and SceneManagerImpl
- EditorContextImpl: holds all editor subsystems
Architecture now follows dependency injection pattern:
Application -> EditorContext -> SceneManager/SelectionManager
EditorLayer -> Panels (receive context via SetContext)
All Manager singletons removed: EditorSceneManager::Get(), SelectionManager::Get()
2026-03-25 15:51:27 +08:00
56ec2e9b85
refactor(editor): Phase 1 architecture refactoring
...
- Decouple Panel from Core::Layer (P0 issue resolved)
- Add EventBus with type-safe event system
- Add ISelectionManager interface with SelectionManagerImpl
- Add IEditorContext for dependency injection
- Update EditorLayer to use new architecture
- Update Application to create and inject EditorContext
New files:
- editor/src/Core/EventBus.h
- editor/src/Core/EditorEvents.h
- editor/src/Core/ISelectionManager.h
- editor/src/Core/SelectionManagerImpl.h
- editor/src/Core/IEditorContext.h
- editor/src/Core/EditorContextImpl.h
This enables future improvements: Undo/Redo, serialization, component extensibility.
2026-03-25 15:35:00 +08:00
cad6f586fb
Editor: Fix InspectorPanel AddComponent popup crash
...
- Remove SeparatorText which causes PopStyleVar mismatch in ImGui
- Add stderr redirection for better error capture
- Add debug logging to InspectorPanel
- Fix EditorLayer commented out undefined functions
2026-03-25 12:56:51 +08:00
0834ccb7aa
Editor: Add crash exception filter to InspectorPanel AddComponent
...
- Add Windows structured exception handling to catch crashes during component addition
- Log crashes to file and stderr for debugging
2026-03-25 12:30:35 +08:00
0948e0fdbe
docs: Update RHI test refactoring status
...
- Mark P0-1 (Shader) and P0-2 (PipelineState) as completed
- Update test coverage matrix
- Add changelog v1.1
2026-03-25 12:30:05 +08:00
c9e459c179
Editor: UI panels and GameObject updates
2026-03-25 01:23:08 +08:00
9fae910854
Editor: 更新编辑器面板和UI控件系统
...
- 添加新的UI控件系统(Core.h, ScalarControls.h, VectorControls.h, UI.h)
- 更新SceneManager支持场景层级管理
- 优化SelectionManager选择管理
- 改进InspectorPanel/GameViewPanel/HierarchyPanel等面板
- 更新RHI文档说明Vulkan实现计划
2026-03-24 20:02:38 +08:00
135fe9145b
refactor(editor): 重构 Editor 使用 Engine 的 Component/Scene 系统
...
- Editor CMakeLists.txt 链接 XCEngine 库
- 删除 editor/src/Core/GameObject.h (简化版)
- SelectionManager 使用 Engine::Components::GameObject*
- SceneManager 使用 Engine::Scene
- HierarchyPanel 使用 Engine GameObject API
- InspectorPanel 使用 Engine TransformComponent
注意: Engine RHI Shader 接口有编译错误需要修复
2026-03-24 18:38:01 +08:00
c66ba2feb3
refactor(RHI): complete PipelineState Unity SRP style refactoring
...
- Fix Chinese character encoding issues causing MSVC C4819 warnings
- Add m_rootSignature member to D3D12PipelineState for PSO creation
- All integration tests pass: OpenGL 4/4, D3D12 4/4
- All RHI unit tests pass: 158/158
2026-03-24 18:33:16 +08:00
ac5c98584a
refactor: rename ui_editor to editor for consistency
2026-03-24 16:23:04 +08:00