feat: Add manual object renderer for debugging in dungeon editor

- Introduced ManualObjectRenderer class to facilitate manual rendering of dungeon objects for debugging purposes.
- Integrated manual renderer initialization in DungeonEditorV2, allowing for testing and debugging of object rendering.
- Added methods for rendering simple blocks, test patterns, and debugging graphics sheets.
- Updated dungeon_editor_v2.cc and dungeon_editor_v2.h to include the new manual renderer functionality.
This commit is contained in:
scawful
2025-10-09 08:50:50 -04:00
parent 48faee6711
commit 44cabe48c9
7 changed files with 338 additions and 9 deletions

View File

@@ -14,6 +14,7 @@
#include "dungeon_object_selector.h"
#include "dungeon_room_loader.h"
#include "object_editor_card.h"
#include "manual_object_renderer.h"
#include "app/zelda3/dungeon/room.h"
#include "app/zelda3/dungeon/room_entrance.h"
#include "app/gui/editor_layout.h"
@@ -97,6 +98,9 @@ class DungeonEditorV2 : public Editor {
void DrawEntrancesListCard();
void DrawRoomGraphicsCard();
// Texture processing (critical for rendering)
void ProcessDeferredTextures();
// Room selection callback
void OnRoomSelected(int room_id);
void OnEntranceSelected(int entrance_id);
@@ -136,6 +140,7 @@ class DungeonEditorV2 : public Editor {
gui::DungeonObjectEmulatorPreview object_emulator_preview_;
gui::PaletteEditorWidget palette_editor_;
std::unique_ptr<ObjectEditorCard> object_editor_card_; // Unified object editor
std::unique_ptr<ManualObjectRenderer> manual_renderer_; // Debugging renderer
bool is_loaded_ = false;