Commit Graph

64 Commits

Author SHA1 Message Date
scawful
9f0b503ada feat: Enhance DungeonCanvasViewer with Debugging Features and Canvas Configuration
- Added detailed comments to clarify the canvas coordinate system and scaling model for dungeon rendering.
- Implemented persistent debug overlays for room and texture information, allowing real-time visibility of room properties and texture states.
- Introduced a context menu with options for debugging, including toggling visibility of room info, texture info, and object bounds.
- Updated canvas drawing methods to ensure correct handling of unsized dimensions and scaling, improving rendering accuracy.
- Refactored coordinate conversion functions to return unsized pixel coordinates, preventing double-scaling issues.
2025-10-10 00:45:59 -04:00
scawful
6c331f1fd0 epic: refactor SDL2_Renderer usage to IRenderer and queued texture rendering
- Updated the testing guide to clarify the testing framework's organization and execution methods, improving user understanding.
- Refactored CMakeLists to include new platform-specific files, ensuring proper integration of the rendering backend.
- Modified main application files to utilize the new IRenderer interface, enhancing flexibility in rendering operations.
- Implemented deferred texture management in various components, allowing for more efficient graphics handling and improved performance.
- Introduced new methods for texture creation and updates, streamlining the rendering process across the application.
- Enhanced logging and error handling in the rendering pipeline to facilitate better debugging and diagnostics.
2025-10-07 17:15:11 -04:00
scawful
af2b698dbd refactor: Enhance OverworldEditor with Dynamic Context Menu and Tile Selector Widget
- Replaced static context menu setup in OverworldEditor with dynamic configuration based on the current map state, improving usability and responsiveness.
- Introduced TileSelectorWidget for better tile selection management, allowing for a more intuitive user experience when selecting tiles.
- Updated canvas controls to include zoom in and zoom out functionalities, enhancing the editor's navigation capabilities.
- Cleaned up legacy context menu code and improved overall organization for better maintainability and clarity.
2025-10-05 22:53:33 -04:00
scawful
6c0e7a96a5 refactor: Update GUI components and integrate new palette widget
- Removed references to the old `EnhancedPaletteEditor` and replaced it with the new `PaletteWidget` across various files, including canvas and context menu implementations.
- Updated CMake configurations to include the new `palette_widget` source files, ensuring proper integration into the build system.
- Refactored GUI code to enhance modularity and maintainability, improving the overall user experience in palette management and editing functionalities.
- Introduced new UI components for background rendering and editor selection dialogs, enhancing the application's graphical interface.
2025-10-04 23:59:08 -04:00
scawful
c3eaace72c feat: Implement modular build system for Yaze
- Added option to enable modular build with `YAZE_USE_MODULAR_BUILD`.
- Updated CMake configuration to support modular libraries for core, editor, graphics, GUI, and emulator functionalities.
- Refactored existing libraries to separate concerns and improve build times.
- Introduced new utility library `yaze_util` for low-level utilities.
- Adjusted CI and release workflows to accommodate the new build system.
- Updated various source files to reflect new include paths and modular structure.
- Enhanced YAML configuration handling in the agent component.
2025-10-03 18:32:51 -04:00
scawful
f461fb63d1 Add comprehensive Canvas guide and refactor documentation
- Introduced a new `CANVAS_GUIDE.md` file detailing the Canvas system, including core concepts, usage patterns, and features such as tile painting, selection, and custom overlays.
- Created `CANVAS_REFACTORING_STATUS.md` to summarize the current state of refactoring efforts, including completed tasks and outstanding issues.
- Enhanced `overworld_editor` functionality by implementing critical fixes for rectangle selection and painting, ensuring proper handling of large map boundaries.
- Updated `canvas_utils.h` to include configuration options for rectangle clamping, preventing wrapping issues during tile selection.
- Refactored `canvas.cc` and `canvas.h` to improve method signatures and documentation, facilitating better understanding and usage of the Canvas API.
- Improved overall documentation structure for clarity and ease of access, consolidating multiple files into focused references.
2025-09-30 16:24:25 -04:00
scawful
991366113e Update canvas system with enhanced interaction and performance tracking features
- Introduced a new CanvasInteractionHandler for managing tile interactions, including painting and selection modes.
- Added CanvasContextMenu for improved user interaction with context-specific options.
- Implemented CanvasPerformanceIntegration to monitor and report performance metrics during canvas operations.
- Developed CanvasUsageTracker to track user interactions and usage patterns within the canvas.
- Refactored existing canvas utilities and integrated new modal systems for enhanced user experience.
- Updated CMake configuration to include new canvas components and ensure proper linking with existing libraries.
2025-09-30 13:10:32 -04:00
scawful
9e0f614ce8 Add BPP format management and optimization features
- Introduced BPPFormatManager for handling various bitmap formats (2BPP, 3BPP, 4BPP, 8BPP) with conversion capabilities.
- Enhanced AtlasRenderer to support bitmap addition with BPP format optimization and added methods for optimized rendering.
- Implemented GraphicsOptimizer for analyzing and optimizing graphics sheets based on BPP formats, including memory and performance considerations.
- Developed BppFormatUI for user interface interactions related to BPP format selection and conversion previews.
- Integrated BPP format management into the canvas system, allowing for format selection and conversion within the GUI.
- Updated CMake configuration to include new source files related to BPP management and optimization.
2025-09-29 21:21:49 -04:00
scawful
89396b1b57 Enhance Overworld Editor with v3 features and unified settings management
- Implemented full support for ZSCustomOverworld v3, including complex transition calculations and interactive overlays.
- Introduced a new unified settings table in OverworldEditorManager for streamlined management of toolsets and properties.
- Enhanced scratch space functionality with selection transfer capabilities between overworld and scratch slots.
- Removed the outdated ZEML system in favor of a pure ImGui layout for improved performance and maintainability.
- Updated changelog to reflect significant new features and improvements in the Overworld Editor.
2025-09-27 17:33:18 -04:00
scawful
a9ead0a45c Refactor EditorManager and OverworldEditor for enhanced functionality and error handling
- Updated EditorManager to improve welcome screen logic, ensuring it only displays in truly empty states and not when a ROM is loaded but current_rom_ is null.
- Enhanced error handling in EditorManager by routing editor errors to the toast manager for better user feedback.
- Improved OverworldEditor with enhanced tile interaction detection and added scratch space functionality for better layout management.
- Introduced a new ScratchSpaceSlot structure in OverworldEditor to manage scratch space for tile16 layouts, allowing for more flexible editing and selection.
- Added utility functions in canvas_utils for grid alignment and effective scaling, improving overall canvas interaction.
- Implemented an enhanced palette editor with ROM integration, providing users with tools for color analysis and palette management.
2025-09-27 15:24:58 -04:00
scawful
6f906a020d Enhance Overworld and Tile16 editors with new features and UI improvements
- Added context-aware options in the EditorManager for refreshing overworld and dungeon data, improving user interaction.
- Streamlined the OverworldEditor by removing redundant menu bars and integrating refresh options directly into the context menu.
- Improved the Tile16Editor by scaling tile displays for better visibility and enhancing the blockset canvas functionality.
- Introduced new bitmap property dialogs in the Canvas class, allowing users to view and edit bitmap and palette properties directly from the context menu.
- Refactored various UI elements for consistency and clarity, enhancing overall user experience.
2025-09-25 15:51:34 -04:00
scawful
8b1b058fea Add MapPropertiesSystem for enhanced overworld map management
- Introduced MapPropertiesSystem class to manage map properties, including settings for area size, graphics, palettes, and overlays.
- Implemented UI components for drawing map properties, allowing users to customize map settings through a dedicated panel.
- Enhanced OverworldEditor to integrate map properties functionality, providing quick access to map settings via context menus and UI interactions.
- Added support for custom background colors and overlays, improving the overall customization experience for users.
2025-09-24 17:01:48 -04:00
scawful
12bb5dc3d5 Enhance OverworldEditor with new customization features
- Updated OverworldEditor to include new table columns for CopyMap, MapLock, CustomBG, and Overlay, improving user interaction and customization options.
- Implemented DrawCustomBackgroundColorEditor and DrawOverlayEditor methods for managing custom background colors and overlay settings, respectively.
- Added context menu functionality for map locking and quick access to map properties, enhancing usability.
- Refactored OverworldMap to support new features related to animated graphics and subscreen overlays, ensuring compatibility with ZScreamCustomOverworld v3.
2025-09-24 15:58:46 -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
d97824c575 Update DrawTileSelector to support variable tile height
- Modified DrawTileSelector function to accept an additional parameter for tile height, defaulting to the original size if not provided.
- Adjusted the logic for calculating the second point in the tile selection to use the new height parameter, improving flexibility in tile rendering.
2025-05-10 11:00:08 -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
718a14ca62 Refactor OverworldEditor and Tile16Editor to use Tilemap instead of array of Bitmap 2025-04-29 00:26:16 -04:00
scawful
131f0485c6 Add context menu options for editable palette in Canvas; implement BeginCanvas and EndCanvas functions for improved canvas management. 2025-04-23 20:16:38 -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
Justin Scofield
02a86c41da Refactored EditorManager to consolidate popup drawing methods into a single DrawPopups method and added a DrawMenuBar method. Replaced DrawYazeMenu with DrawHomepage for displaying a welcome message and options for opening a ROM. Introduced a LoadRom method to handle ROM loading and updated related methods to set the current_rom_ pointer. Added settings_editor_ to the list of active editors. 2025-01-05 20:54:02 -05:00
Justin Scofield
f1f6df829f controller and canvas houskeeping 2025-01-05 06:17:09 -05:00
Justin Scofield
54a5be8d3a housekeeping 2024-12-31 20:45:43 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
253dfff2a3 Fix tile ID calculation to account for global scale 2024-11-28 11:50:47 -05:00
scawful
731eb456ab Refactor editor includes and update source files for improved organization 2024-11-18 14:05:08 -05:00
scawful
f3555b49ba Add SaveDungeonMapTile16 function to handle saving dungeon map tile data and enhance tile editing UI 2024-11-10 15:07:52 -05:00
scawful
a288dd8933 add DrawCustomHighlight to Canvas 2024-08-20 11:05:49 -04:00
scawful
7c708519ac standardize imgui headers as user instead of system 2024-07-30 23:33:12 -04:00
scawful
90ed9e1b86 add Canvas::DrawInfoGrid for custom labeled grids 2024-07-28 11:31:13 -04:00
scawful
8e9f5d345b move pipeline functions into respective gui files 2024-07-24 09:31:42 -04:00
scawful
50589dc82c add palette controls to Canvas context menu if Bitmap ptr is passed 2024-07-21 11:39:31 -04:00
scawful
f2d582c9c6 housekeeping 2024-07-19 22:32:47 -04:00
scawful
f10eaf0877 add canvas id and context id to Canvas 2024-07-19 15:50:36 -04:00
scawful
f0c4ae798f rearrange canvas methods 2024-07-19 14:12:40 -04:00
scawful
aad061ef65 cleanup Canvas 2024-07-19 10:41:21 -04:00
scawful
2ff79816ee remove unused canvas update routines 2024-07-18 22:58:26 -04:00
scawful
4b4fe33dc6 housekeeping 2024-05-24 19:53:06 -04:00
scawful
08ad521b74 Update OverworldEditor documentation and others 2024-04-14 10:33:18 -05:00
scawful
012eee1525 add more comments to gfx classes and canvas 2024-04-14 00:11:50 -05:00
scawful
aed54f1493 fix hyrule magic decompression memory leak, misc housekeeping 2024-02-03 00:04:21 -05:00
scawful
14e60b248f Update referenes to SnesColor members 2024-01-31 23:58:35 -05:00
scawful
51b4c167d5 Canvas DrawSelectRect + DrawBitmapGroup for Tile16 selection 2024-01-30 23:55:23 -05:00
scawful
6791fa03e5 Overworld updates, Tile16 and large map fixes 2024-01-29 22:58:39 -05:00
scawful
e006702df1 OverworldMap sprite entities, canvas drawing updates 2024-01-28 12:04:52 -05:00
scawful
df1cdb22f5 housekeeping and todos 2024-01-26 23:18:26 -05:00
scawful
c3e616e60f Tile16 Editor updates (big commit) 2024-01-23 22:37:23 -05:00
scawful
db51acd12a Canvas constructor improvements and housekeeping 2024-01-23 10:14:12 -05:00
scawful
9f137559c3 Fix DungeonMap tile16 copy IDs being used, update yaze version num 2024-01-22 20:24:44 -05:00
scawful
6f80f328a8 Add Tilesheet class, update ScreenEditor for DungeonMaps 2024-01-22 03:30:55 -05:00
scawful
0c2d724373 Add hihglight tile id feature to Canvas 2024-01-18 20:06:10 -05:00