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

@@ -67,6 +67,11 @@ absl::Status DungeonEditorV2::Load() {
// Initialize unified object editor card
object_editor_card_ = std::make_unique<ObjectEditorCard>(renderer_, rom_, &canvas_viewer_);
// Initialize manual renderer for debugging (uses canvas from canvas_viewer_)
manual_renderer_ = std::make_unique<ManualObjectRenderer>(
&canvas_viewer_.canvas(), rom_);
printf("[DungeonEditorV2] Manual renderer initialized for debugging\n");
// Wire palette changes to trigger room re-renders
palette_editor_.SetOnPaletteChanged([this](int /*palette_id*/) {
// Re-render all active rooms when palette changes
@@ -712,5 +717,11 @@ void DungeonEditorV2::DrawRoomGraphicsCard() {
graphics_card.End();
}
void DungeonEditorV2::ProcessDeferredTextures() {
// Process queued texture commands via Arena's deferred system
// This is critical for ensuring textures are actually created and updated
gfx::Arena::Get().ProcessTextureQueue(renderer_);
}
} // namespace yaze::editor