Enhance graphics editor performance with batch processing and profiling

- Integrated performance profiling using ScopedTimer in GraphicsEditor and ScreenEditor for better timing insights.
- Implemented batch texture updates in GraphicsEditor and ScreenEditor to reduce individual texture update calls, improving rendering efficiency.
- Enhanced tile rendering in ScreenEditor with pre-allocated vectors for batch operations, optimizing drawing performance.
- Added safety checks and validation in various components to prevent crashes and ensure data integrity during rendering operations.
- Updated Bitmap and Arena classes to support improved texture management and synchronization, enhancing overall graphics performance.
This commit is contained in:
scawful
2025-09-29 09:04:10 -04:00
parent 22297402fc
commit 4bf4a13dae
12 changed files with 600 additions and 229 deletions

View File

@@ -633,13 +633,13 @@ absl::Status Overworld::LoadExits() {
uint16_t px = (uint16_t)((rom_data[OWExitXPlayer + (i * 2) + 1] << 8) +
rom_data[OWExitXPlayer + (i * 2)]);
util::logf(
"Exit: %d RoomID: %d MapID: %d VRAM: %d YScroll: %d XScroll: "
"%d YPlayer: %d XPlayer: %d YCamera: %d XCamera: %d "
"ScrollModY: %d ScrollModX: %d DoorType1: %d DoorType2: %d",
i, exit_room_id, exit_map_id, exit_vram, exit_y_scroll, exit_x_scroll,
py, px, exit_y_camera, exit_x_camera, exit_scroll_mod_y,
exit_scroll_mod_x, exit_door_type_1, exit_door_type_2);
// util::logf(
// "Exit: %d RoomID: %d MapID: %d VRAM: %d YScroll: %d XScroll: "
// "%d YPlayer: %d XPlayer: %d YCamera: %d XCamera: %d "
// "ScrollModY: %d ScrollModX: %d DoorType1: %d DoorType2: %d",
// i, exit_room_id, exit_map_id, exit_vram, exit_y_scroll, exit_x_scroll,
// py, px, exit_y_camera, exit_x_camera, exit_scroll_mod_y,
// exit_scroll_mod_x, exit_door_type_1, exit_door_type_2);
exits.emplace_back(exit_room_id, exit_map_id, exit_vram, exit_y_scroll,
exit_x_scroll, py, px, exit_y_camera, exit_x_camera,