Commit Graph

102 Commits

Author SHA1 Message Date
scawful
bac03ee08e Refactor Performance Monitoring System for Unified Functionality
- Merged the old PerformanceMonitor interface into gfx::PerformanceProfiler, providing a unified performance monitoring system.
- Updated header files to maintain backward compatibility with aliases for PerformanceMonitor and ScopedTimer.
- Removed legacy timer methods and integrated memory pool for efficient data handling in performance profiling.
- Enhanced PerformanceDashboard to utilize the new profiler, including controls for enabling monitoring and clearing data.
- Improved performance reporting with detailed statistics and memory usage insights.
2025-09-29 19:21:31 -04:00
scawful
7a14612f0e Refactor Tile16Editor and Bitmap palette handling for improved accuracy and stability
- Updated Tile16Editor to utilize a fixed height for the scrollable child window, enhancing user interface consistency.
- Simplified pixel data handling by removing unnecessary remapping for the display tile, ensuring accurate palette representation.
- Enhanced Bitmap palette application logic to directly use the specified index for 8-color palettes, preventing errors in color mapping.
- Improved error handling for palette length validation and ensured the complete palette is retained for compatibility with other editors.
2025-09-29 15:32:37 -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
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
41adb1b70e Enhance testing framework and UI integration for YAZE
- Added a comprehensive testing framework with support for unit, integration, and UI tests, improving overall test coverage and reliability.
- Integrated ImGui Test Engine for UI testing, allowing for real-time feedback and visualization of test results.
- Updated CMake configuration to conditionally include testing components based on build options, enhancing flexibility for developers.
- Introduced a new command in the CLI for running asset loading tests on ROMs, providing a straightforward way to validate functionality.
- Enhanced error handling and resource management during testing, ensuring stability and clarity in test execution.
- Improved user interface with a dedicated test dashboard for monitoring test progress and results, enhancing developer experience.
2025-09-25 13:26:56 -04:00
scawful
223544fa01 Add copy and move constructors to Bitmap class for better resource management
- Implemented a copy constructor and copy assignment operator to enable deep copying of Bitmap objects.
- Added move constructor and move assignment operator to optimize resource handling and prevent unnecessary data duplication.
- Introduced SetPixel method for modifying individual pixels in the bitmap.
- Added Resize method to adjust bitmap dimensions while preserving existing pixel data, enhancing flexibility in bitmap manipulation.
2025-09-23 22:01:06 -04:00
scawful
7cc808918d Enhance Bitmap class with error handling and code improvements
- Introduced BitmapError class for more specific error handling in the Bitmap class.
- Updated data checks to use `empty()` for clarity and consistency.
- Improved pixel data handling by ensuring proper type usage and modifying loop constructs for better performance.
- Refactored constructor and method implementations for improved readability and maintainability.
2025-05-18 16:44:15 -04:00
scawful
ceab496226 Refactor Bitmap class for improved data handling
- Removed unused data_size_ member and updated size() method to return the size of data_ directly.
- Simplified data size checks in Create method to enhance clarity.
- Updated UpdateTexture method to use memcpy for pixel data assignment, improving performance.
- Ensured WriteToPixel method updates both pixel_data_ and data_ for consistency in modifications.
2025-05-15 23:01:03 -04:00
scawful
5167bb7206 Refactor bitmap handling and remove unused functions for improved clarity
- Simplified pixel format handling by removing the 2BPP format and adjusting related cases.
- Eliminated unused texture tracking variables from the Bitmap class.
- Removed the ExtractTile8Bitmaps function to streamline bitmap processing and reduce complexity.
2025-05-08 19:42:20 -04:00
scawful
1710430c2e Remove unused methods and comments from Bitmap class for improved clarity and maintainability. This includes the removal of surface saving, initialization, cleanup, and palette management functions that are no longer needed. 2025-05-02 12:14:04 -04:00
scawful
4f8d765c48 Refactor Bitmap class to utilize Arena for surface and texture management
Replace custom surface and texture allocation methods with Arena's allocation, improving memory management. Update related methods to work with raw pointers instead of smart pointers, enhancing performance and reducing overhead. Clean up unused code and comments for better clarity.
2025-04-30 18:00:44 -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
a267e18f46 Refactor Bitmap class to improve texture management and memory tracking; implement custom allocators for SDL_Surface and SDL_Texture, enhance bitmap constructors, and add utility functions for tile extraction and pixel manipulation. 2025-04-16 22:35:47 -04:00
scawful
95df0b5d8b Refactor Bitmap class: remove deprecated constructor and update Initialize method signature 2025-03-20 18:17:45 -04:00
scawful
c99a4b0bc4 rename ApplyPalette with SetPalette 2025-03-02 17:06:46 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
Justin Scofield
cf13d6bf9e Update Bitmap and add Initialize function 2025-01-05 20:55:36 -05:00
scawful
92d6738a5c remove cached converted surface from Bitmap class 2025-01-01 16:08:43 -05:00
scawful
d711a84ed3 refactor Bitmap class: rename ConvertSurfaceToPNG to ConvertSurfaceToPng and streamline GetPngData method 2025-01-01 15:53:17 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
4da4a48aed Refactor tile data access in Bitmap and update color writing in WriteColor method 2024-12-08 08:09:36 -05:00
scawful
7798d769a5 Refactor bitmap update methods to remove unnecessary parameters; simplify texture updating in Renderer and Bitmap classes 2024-11-13 09:16:16 -05:00
scawful
160a9c4c47 Refactor bitmap and compression headers to remove unused includes for clarity 2024-11-13 08:51:32 -05:00
scawful
744ad03be3 Refactor bitmap and tilesheet classes: improve variable naming, remove unused methods, and add tile data mirroring functionality for enhanced clarity and maintainability 2024-11-10 09:52:58 -05:00
scawful
6465486443 Refactor Bitmap class to use shared_ptr for SDL_Surface objects 2024-08-25 14:22:52 -04:00
scawful
49611d4944 big cleanup, replace Bytes alias with std::vector<uint8_t> to reduce ambiguity 2024-08-20 12:02:47 -04:00
scawful
abc3ed3685 chore: Add error handling and precondition checks to ApplyPaletteWithTransparent method 2024-08-17 12:16:55 -04:00
scawful
f4d33e5a9f fix bitmap bug 2024-08-13 19:32:06 -04:00
scawful
327985b1c9 gfx cleanup 2024-08-13 18:04:41 -04:00
scawful
f1f2a7a25f gfx housekeeping 2024-08-13 00:50:39 -04:00
scawful
9f9edc9666 add YAZE_LIB_PNG if directives 2024-08-13 00:32:02 -04:00
scawful
feaee62462 add png_internal, YAZE_LIB_PNG definition 2024-08-13 00:30:14 -04:00
scawful
d94735baf5 add SDL_RETURN_IF_ERROR, refactor bitmap 2024-08-13 00:26:10 -04:00
scawful
59321aa777 reuse Create with format in Bitmap 2024-08-13 00:11:28 -04:00
scawful
579a7a9607 move SDL_Surface_Deleter and SDL_Texture_Deleter 2024-08-09 19:16:09 -04:00
scawful
7488551335 add BitmapFormat enum, update Reformat 2024-08-06 18:01:24 -04:00
scawful
0d1fda488e housekeeping 2024-08-06 01:57:16 -04:00
scawful
988f89a9cc refactor bitmap 2024-08-04 21:03:57 -04:00
scawful
bf0379edc4 add Create and Reformat with GetSnesPixelFormat 2024-07-24 01:40:37 -04:00
scawful
f2b2bb17a5 add GetSnesPixelFormat and SNES_PIXELFORMAT_XBPP constants 2024-07-24 01:40:15 -04:00
scawful
0660f60cde remove old transparent color code in bitmap 2024-07-18 19:54:18 -04:00
scawful
01b8441573 fix palette update pointer semantics 2024-07-14 19:34:33 -04:00
scawful
00e82140e0 cleanup bitmap class 2024-05-28 23:49:45 -04:00
scawful
b48af5313b put png callback code back 2024-05-28 23:13:41 -04:00
scawful
c85da49230 add data size to create bitmap 2024-05-28 23:12:52 -04:00
scawful
3272037f72 cleanup bitmap class 2024-05-28 23:10:15 -04:00
scawful
03a38fc712 Add error handling to SnesPalette and SnesColor member fns 2024-04-07 12:07:47 -04:00