Commit Graph

125 Commits

Author SHA1 Message Date
scawful
100fc23a2e Remove PerformanceMonitor and update references to PerformanceProfiler
- Deleted the PerformanceMonitor implementation and header files as functionality has been fully integrated into gfx::PerformanceProfiler.
- Updated all relevant source files to replace PerformanceMonitor and ScopedTimer with their gfx counterparts, ensuring consistent performance monitoring across the application.
2025-09-29 20:30:31 -04:00
scawful
4bf4a13dae 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.
2025-09-29 09:04:10 -04:00
scawful
2d10437888 Remove clipboard functionality and enhance performance monitoring features
- Deleted clipboard-related files (clipboard.cc, clipboard.h, clipboard.mm) to streamline the codebase.
- Added a performance dashboard in the EditorManager to monitor performance metrics and improve user experience.
- Integrated performance monitoring capabilities across various editors, allowing for detailed timing of critical operations.
- Updated the graphics system with batch processing for texture updates, significantly improving rendering performance.
- Introduced a memory pool allocator for efficient memory management during graphics operations.
2025-09-28 23:30:32 -04:00
scawful
ce31906c93 Enhance performance profiling and tile caching mechanisms
- Introduced a new PerformanceProfiler class for detailed timing and performance measurement across graphics operations.
- Implemented a smart tile cache with LRU eviction in the TileCache structure to optimize memory usage and improve tile rendering efficiency.
- Updated various graphics components to utilize the new caching system, reducing redundant texture updates and enhancing overall performance.
- Added dirty region tracking in Bitmap for efficient texture updates, minimizing the area that needs to be refreshed during rendering.
- Enhanced existing methods to leverage performance monitoring, providing insights into operation durations and potential bottlenecks.
2025-09-28 23:13:12 -04:00
scawful
5915391467 add comments for gfx classes and editors 2025-09-28 23:00:32 -04:00
scawful
f210cd85b4 Integrate performance monitoring across various editors
- Added performance monitoring capabilities using ScopedTimer in the DungeonEditor, PaletteEditor, ScreenEditor, MessageEditor, MusicEditor, SpriteEditor, and SettingsEditor classes to track loading times.
- Enhanced the Load methods in each editor to include timing for critical operations, improving performance analysis and optimization.
- Removed unnecessary debug output in the Sprite class to clean up the codebase.
2025-09-28 22:32:07 -04:00
scawful
cb107ae69c Remove PNG and ZLIB support from the project
- Eliminated all references to PNG and ZLIB dependencies in CMake configuration and project files.
- Updated documentation to reflect the removal of PNG support and related functionalities.
- Adjusted build scripts and source files to remove unused code related to PNG handling, ensuring a cleaner codebase.
2025-09-28 12:03:29 -04:00
scawful
d0ff581412 Add PNG support handling in GraphicsEditor and include <cstring> in file_dialog
- Introduced conditional compilation for PNG clipboard operations in graphics_editor.cc, providing user feedback when PNG support is disabled.
- Added <cstring> header in file_dialog.cc to support string manipulation functions, enhancing functionality.
2025-09-25 10:57:47 -04:00
scawful
350d26ceb8 Add PNG support for clipboard operations
- Implemented conditional compilation for image copy and retrieval functions in clipboard.cc, clipboard.h, and clipboard.mm, enabling PNG support when YAZE_LIB_PNG is defined.
- Updated graphics_editor.cc and overworld_editor.cc to handle PNG data copying to the clipboard, including error handling for cases when PNG support is disabled.
- Enhanced user feedback by providing alternative actions when PNG export is unavailable, improving overall user experience.
2025-09-25 10:03:54 -04:00
scawful
8da8014170 Implement dungeon map screen drawing functionality in ScreenEditor
- Added DrawDungeonMapScreen method to encapsulate the logic for rendering the dungeon map, improving code organization and readability.
- Refactored DrawDungeonMapsTabs to utilize the new DrawDungeonMapScreen method, reducing code duplication.
- Updated various drawing operations for better clarity and efficiency, including adjustments to tile rendering and grid display.
- Removed commented-out code to clean up the implementation.
2025-09-23 21:38:54 -04:00
scawful
fdda77c172 Refactor ROM handling and remove SharedRom singleton for improved architecture
- Eliminated the SharedRom class to enhance modularity and reduce global state management.
- Updated various classes to directly manage ROM instances, improving clarity and encapsulation.
- Added new functions for loading messages and colors from ROM, enhancing functionality.
- Refactored Canvas and Editor classes to utilize direct ROM references, streamlining interactions.
- Improved documentation and comments for better code understanding and maintainability.
2025-08-03 17:52:02 -04:00
scawful
b5f6930d38 Refactor window management and renderer integration for improved structure
- Replaced platform backend references with a dedicated Window class for better encapsulation of window and audio device management.
- Updated various files to include the new window header, enhancing clarity and reducing dependencies on the platform backend.
- Removed obsolete platform backend code to streamline the codebase and improve maintainability.
- Refactored controller and editor classes to utilize the new window management system, ensuring consistent handling of window creation and rendering.
2025-08-03 16:09:51 -04:00
scawful
095b3df27e Refactor graphics loading and decompression for consistency
- Updated various graphics loading functions to ensure consistent use of semicolons in ASSIGN_OR_RETURN statements.
- Changed set_filename method in Rom class to accept std::string_view for improved efficiency.
- Enhanced code readability and maintainability across multiple files by standardizing syntax.
2025-05-19 17:15:15 -04:00
scawful
a682ea9553 Port ScreenEditor to use Tilemap, remove Tilesheet class 2025-05-18 16:46:04 -04:00
scawful
0863b7c606 Refactor graphics editor and screen editor tab handling
- Updated tab item handling in GraphicsEditor and ScreenEditor to ensure proper opening and closing of tab items.
- Improved layout management by replacing deprecated macros with ImGui table functions for better readability and maintainability.
- Adjusted palette display function signature in color handling to return a boolean for success status instead of absl::Status.
- Enhanced tile rendering functions for consistency and clarity in the graphics editing workflow.
2025-05-13 17:30:18 -04:00
scawful
11504ca4c1 Refactor Renderer access and enhance graphics loading functionality
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Updated various rendering methods to streamline bitmap updates and enhance performance.
- Removed unused includes and comments to improve code clarity and maintainability.
2025-05-08 19:37:48 -04:00
scawful
43bf1e04c5 Refactor PaletteEditor to enhance color management and UI functionality
- Removed unused methods and streamlined color handling in the PaletteEditor.
- Introduced a quick access tab for palette categories and improved custom palette editing with context menus.
- Enhanced color picker functionality and added recently used colors feature for better user experience.
- Updated palette drawing methods to improve clarity and maintainability.
2025-05-05 16:17:39 -04:00
scawful
d6551f84d2 Refactor graphics handling to utilize Arena for graphics sheets management
Update various editors to replace instances of GraphicsSheetManager with gfx::Arena for accessing graphics sheets. This change enhances memory management and performance by centralizing graphics data handling within the Arena class. Clean up related code for improved clarity and maintainability.
2025-05-02 12:06:46 -04:00
scawful
718a14ca62 Refactor OverworldEditor and Tile16Editor to use Tilemap instead of array of Bitmap 2025-04-29 00:26:16 -04:00
scawful
9d2cb918b9 Update Tile16Editor to accept a pointer for tile16_individual; adjust OverworldEditor initialization accordingly for improved memory management. 2025-04-20 17:44:51 -04:00
scawful
44e13cf4bb Refactor bitmap palette management across various components to streamline palette setting and improve error handling; remove unnecessary status checks and enhance consistency in palette application methods. 2025-04-17 21:49:47 -04:00
scawful
97788fc033 Refactor canvas drawing methods to remove unnecessary bitmap parameters in context menu and bitmap drawing functions; update inventory and graphics editors to use new method signatures for improved consistency and clarity. 2025-04-16 21:44:07 -04:00
scawful
a1a48e9057 message editor housekeeping 2025-04-12 13:23:46 -04:00
scawful
37b8b1cd3f Refactor Tile16Editor to enhance functionality with clipboard and scratch space features; implement methods for copying, pasting, saving, and loading Tile16 graphics. Update UI layout for improved editing experience and organization. 2025-04-12 11:56:36 -04:00
scawful
1d64846a37 initialize blank editor set in EditorManager; update overworld initialization to use Rom pointers; add Clear and CleanupUnusedTextures methods in OverworldEditor. 2025-04-12 11:33:03 -04:00
scawful
d8826739bf Refactor editor classes to accept a ROM pointer in constructors, enhancing dependency management and initialization across all editor types. 2025-04-11 16:54:47 -04:00
scawful
12d2d212fd Refactor Tile16Editor 2025-03-13 09:26:39 -04:00
scawful
e7720019fd Implement Save method in various editor classes with unimplemented error 2025-03-12 15:16:32 -04:00
scawful
806885824a Refactor loading methods in EditorManager and OverworldEditor for improved clarity and consistency; add checks for loaded ROM in GfxGroupEditor and MessageEditor 2025-03-12 14:28:53 -04:00
scawful
412e617ce7 Add Load method to editor classes and update corresponding headers 2025-03-08 10:07:18 -05:00
scawful
9919677e43 Refactor editor UI components: streamline button handling in graphics and music editors, remove unused macros, and improve table setup in assembly editor. 2025-03-08 00:58:47 -05:00
scawful
6714f77514 Implement Initialize method in Editor class and override in derived editors 2025-03-08 00:31:30 -05:00
scawful
7a7d52353f Refactor Tile16Editor: rename InitBlockset to Initialize and update palette application methods for consistency 2025-03-02 17:06:58 -05:00
scawful
c99a4b0bc4 rename ApplyPalette with SetPalette 2025-03-02 17:06:46 -05:00
scawful
7d77c51a27 Refactor NotifyValue: optimize value setting and modification tracking with move semantics and improved method names 2025-02-28 01:13:16 -05:00
scawful
4dc09ad5fc Refactor graphics loading: simplify function calls by removing namespace prefixes and improve header organization in scad_format 2025-02-28 00:46:39 -05:00
scawful
26cda69d44 Refactor common functionality into zelda3 namespace; remove references to core::common 2025-01-22 13:53:01 -05:00
scawful
43fc52dec7 Refactor SnesToPc and PcToSnes functions for improved readability and consistency; remove redundant core:: namespace usage 2025-01-22 13:45:58 -05:00
scawful
a5b94ab173 Refactor folder item management and move NotifyValue to a new utility header 2025-01-22 13:32:45 -05:00
scawful
50c9223a53 Add hex utility functions and refactor usage in editors 2025-01-22 13:28:21 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
scawful
339df53674 Refactor ROM loading methods 2025-01-18 12:33:33 -05:00
scawful
c8883a1e54 Remove unused includes and clean up header files 2025-01-16 03:44:37 -05:00
scawful
e13cdcbf4b Add DrawDungeonMapsRoomGfx 2025-01-06 21:39:27 -05:00
scawful
40a09f17e9 re-render graphics injected into tile16 editor 2025-01-06 21:38:59 -05:00
scawful
6bf8b62d64 Merge remote-tracking branch 'refs/remotes/origin/master'
Merge changes made on visual studio repo.
2025-01-06 11:13:29 -05:00
Justin Scofield
f625fc94b3 Updated GraphicsEditor and Tile16Editor to use std::array instead of std::vector for better performance. 2025-01-05 20:54:19 -05:00
Justin Scofield
fe0dbd3642 Refactor graphics sheet management with singleton class
Refactor the handling of graphics sheets by introducing a singleton class `GraphicsSheetManager`. This centralizes the management of graphics sheets, replacing direct access through the `Rom` object. Key changes include:

- Updated various methods across multiple classes to use `GraphicsSheetManager::GetInstance()` for accessing and manipulating graphics sheets.
- Introduced standalone functions `LoadLinkGraphics`, `LoadAllGraphicsData`, and `SaveAllGraphicsData` for loading and saving graphics data.
- Refactored the `Rom` class to remove methods and member variables related to graphics sheet management.
- Updated `OverworldEditor` to use `std::array` for `maps_bmp_` and added error handling for `std::bad_alloc` exceptions.
- Improved code modularity and error handling throughout the application.
2025-01-04 20:04:00 -05:00
scawful
698b5a43fa update editors based on namespace changes 2025-01-02 10:16:50 -05:00
scawful
4a250a35cb refactor Tile16Editor: improve LoadTile8 method with asynchronous tile data loading 2025-01-01 15:53:42 -05:00