diff --git a/tools/editor/editor_app.hpp b/tools/editor/editor_app.hpp index 9cf06874..bb98e40d 100644 --- a/tools/editor/editor_app.hpp +++ b/tools/editor/editor_app.hpp @@ -49,6 +49,7 @@ public: NpcPresets& getNpcPresets() { return npcPresets_; } AssetBrowser& getAssetBrowser() { return assetBrowser_; } rendering::TerrainRenderer* getTerrainRenderer(); + rendering::M2Renderer* getM2Renderer() { return viewport_.getM2Renderer(); } pipeline::AssetManager* getAssetManager() { return assetManager_.get(); } const std::string& getLoadedMap() const { return loadedMap_; } diff --git a/tools/editor/editor_ui.cpp b/tools/editor/editor_ui.cpp index 49b18823..c5e8daa9 100644 --- a/tools/editor/editor_ui.cpp +++ b/tools/editor/editor_ui.cpp @@ -1221,6 +1221,13 @@ void EditorUI::renderPropertiesPanel(EditorApp& app) { if (holeChunks > 0) ImGui::Text("Hole chunks: %d", holeChunks); } + // M2 render diagnostics + if (auto* m2r = app.getM2Renderer()) { + ImGui::Text("M2: %u models, %u instances, %u draws", + m2r->getModelCount(), m2r->getInstanceCount(), + m2r->getDrawCallCount()); + } + ImGui::Separator(); auto pos = app.getEditorCamera().getCamera().getPosition(); ImGui::Text("Camera: %.0f, %.0f, %.0f", pos.x, pos.y, pos.z); diff --git a/tools/editor/editor_viewport.hpp b/tools/editor/editor_viewport.hpp index b1e1546f..0c649334 100644 --- a/tools/editor/editor_viewport.hpp +++ b/tools/editor/editor_viewport.hpp @@ -61,6 +61,7 @@ public: glm::vec3 getLightDir() const { return lightDir_; } rendering::TerrainRenderer* getTerrainRenderer() { return terrainRenderer_.get(); } + rendering::M2Renderer* getM2Renderer() { return m2Renderer_.get(); } private: bool createPerFrameResources();