Refactor editor rendering contracts

This commit is contained in:
2026-04-28 02:57:49 +08:00
parent 3bc0cfcf08
commit b1ae6c462d
47 changed files with 798 additions and 377 deletions

View File

@@ -1,5 +1,5 @@
#include "HierarchyPanel.h"
#include "Assets/BuiltInIcons.h"
#include "Assets/EditorIconService.h"
#include <XCEditor/Foundation/UIEditorPanelInputFilter.h>
#include <XCEditor/Foundation/UIEditorTheme.h>
#include "EditorSceneRuntime.h"
@@ -15,13 +15,13 @@ using ::XCEngine::UI::UIColor;
inline constexpr float kDragThreshold = 4.0f;
inline constexpr UIColor kDragPreviewColor(0.92f, 0.92f, 0.92f, 0.42f);
::XCEngine::UI::UITextureHandle ResolveGameObjectIcon(const BuiltInIcons* icons);
::XCEngine::UI::UITextureHandle ResolveGameObjectIcon(const EditorIconService* icons);
} // namespace XCEngine::UI::Editor::App
namespace XCEngine::UI::Editor::App {
::XCEngine::UI::UITextureHandle ResolveGameObjectIcon(const BuiltInIcons* icons) {
::XCEngine::UI::UITextureHandle ResolveGameObjectIcon(const EditorIconService* icons) {
return icons != nullptr
? icons->Resolve(BuiltInIconKind::GameObject)
: ::XCEngine::UI::UITextureHandle {};
@@ -80,7 +80,7 @@ void HierarchyPanel::SetCommandFocusService(
m_commandFocusService = commandFocusService;
}
void HierarchyPanel::SetBuiltInIcons(const BuiltInIcons* icons) {
void HierarchyPanel::SetIconService(const EditorIconService* icons) {
m_icons = icons;
RebuildItems();
}

View File

@@ -20,8 +20,8 @@
namespace XCEngine::UI::Editor::App {
class BuiltInIcons;
class EditorCommandFocusService;
class EditorIconService;
class EditorSceneRuntime;
class HierarchyPanel final : public EditorEditCommandRoute {
@@ -44,7 +44,7 @@ public:
void Initialize();
void SetSceneRuntime(EditorSceneRuntime* sceneRuntime);
void SetCommandFocusService(EditorCommandFocusService* commandFocusService);
void SetBuiltInIcons(const BuiltInIcons* icons);
void SetIconService(const EditorIconService* icons);
void SetTextMeasurer(const ::XCEngine::UI::Editor::UIEditorTextMeasurer* textMeasurer);
void ResetInteractionState();
void Update(
@@ -90,7 +90,7 @@ private:
const std::vector<Widgets::UIEditorTreeViewItem>& GetPresentedTreeItems() const;
const ::XCEngine::UI::Widgets::UIExpansionModel& GetPresentedExpansionModel() const;
const BuiltInIcons* m_icons = nullptr;
const EditorIconService* m_icons = nullptr;
EditorCommandFocusService* m_commandFocusService = nullptr;
EditorSceneRuntime* m_sceneRuntime = nullptr;
HierarchyModel m_model = {};