- Added SetGravity method to adjust the gravity in the physics world.
- Introduced AddSphereRigidBody method for creating sphere rigid bodies.
- Implemented RemoveRigidBody method to delete existing rigid bodies.
- Added SetRigidBodyTransform method to update the position and rotation of rigid bodies.
- Included ApplyForce and ApplyImpulse methods for applying forces and impulses to rigid bodies.
- Added SetLinearVelocity method to set the linear velocity of rigid bodies.
- Enhanced StepSimulation method to accept a maxSubSteps parameter.
- Implemented GetBodyCount method to retrieve the number of rigid bodies in the world.
- Added Clear method to remove all rigid bodies from the physics world.
- Updated the script engine service to bind new physics methods to Lua.
- Enhanced material configuration handling in shader script service.
- Introduced MaterialXMaterialConfig structure for better material management.
- Added texture binding support in ShaderPaths structure.
- Included stb_image implementation for image loading support.
- Introduced IPlatformService interface with methods for retrieving platform information, current video driver, and available video/render drivers.
- Implemented PlatformService to gather and log detailed system information, including CPU capabilities, environment variables, and SDL video driver support.
- Updated BgfxGraphicsBackend to utilize IPlatformService for platform-specific data.
- Enhanced SdlWindowService to log system information upon window creation.
- Added utility functions for string formatting and feature value retrieval.
- Deleted VulkanGuiService and associated interfaces to streamline GUI rendering.
- Removed RenderGraphConfig and GraphicsBackendConfig, replacing them with BgfxConfig.
- Eliminated unused render graph structures and interfaces to simplify codebase.
- Updated IConfigService and IGraphicsBackend interfaces to reflect new configurations.
- Removed Vulkan device and buffer service interfaces to reduce complexity.
- Enhanced error handling and validation across Vulkan initialization and resource management.
- Updated unit tests to remove references to the obsolete render graph functionality.
- Added support for FreeType font rendering in GuiRenderer, including glyph loading and text rendering capabilities.
- Introduced GuiFontConfig structure to manage font settings through configuration.
- Updated JsonConfigService to parse and provide GUI font settings from JSON configuration.
- Implemented MaterialX shader generation capabilities with a new MaterialXShaderGenerator class.
- Enhanced ShaderScriptService to utilize MaterialX for shader generation based on configuration.
- Added NullGuiService as a placeholder implementation for GUI service.
- Extended IConfigService interface to include methods for retrieving graphics backend, MaterialX, and GUI font configurations.
- Updated RuntimeConfig structure to include graphics backend and MaterialX configurations.
- Added tests to ensure proper integration of new configuration settings and shader generation functionality.
- Added render graph configuration to JSON files and runtime settings.
- Introduced RenderGraphScriptService to load and manage render graph definitions from Lua.
- Updated GraphicsService to handle render graph definitions.
- Enhanced cube_logic.lua with a sample render graph function.
- Modified various services and interfaces to support render graph functionality.
- Improved logging for render graph operations and configurations.
- Added VulkanGraphicsBackend class for Vulkan rendering implementation.
- Created IGraphicsBackend interface for abstracted rendering operations.
- Introduced GraphicsConfig structure for graphics service configuration.
- Updated graphics_types.hpp with new configuration options.
- Implemented Vulkan backend initialization, device management, and rendering methods.
- Added tests for GXM Graphics Backend to validate functionality.
- Refactored existing graphics service interface to support backend-agnostic design.
- Added a new GUI renderer implementation in gui_renderer_old.cpp.
- Introduced functionality to parse SVG files and extract circle elements.
- Implemented drawing methods for rectangles, text, and SVG graphics.
- Added clipping functionality to restrict drawing to specified areas.
- Enhanced pixel blending for transparency handling in the rendering process.
- Created a staging buffer for efficient pixel transfer to the GPU.
- Implemented resizing and clearing of the canvas for dynamic GUI updates.
- Added error handling for file operations and parsing.
- Added mouse delta tracking to InputState for improved mouse movement feedback.
- Introduced FPS mode toggle in GUI demo, allowing for relative mouse movement and cursor visibility control.
- Implemented input service methods for mouse position, delta, wheel, and key/action state checks.
- Updated SDL input service to handle relative mouse mode and mouse grabbing more effectively.
- Enhanced window service with methods to manage mouse grabbing and cursor visibility.
- Updated interface definitions for IInputService and IWindowService to include new functionalities.
- Added detailed logging to the ScriptEngineService to trace initialization status.
- Improved logging in SdlAudioService to track audio operations including initialization, shutdown, and playback functions.
- Enhanced SdlInputService with logging for key and mouse events, as well as state retrieval.
- Updated SdlWindowService to log window creation, destruction, and event polling.
- Added logging to ShaderScriptService for shader path loading and Lua state retrieval.
- Implemented logging in SwapchainService for swapchain operations, including creation, cleanup, and querying support details.
- Enhanced VulkanDeviceService with logging for device creation, shutdown, and memory type queries.
- Improved VulkanGuiService with logging for GUI initialization, frame preparation, and rendering operations.
- Updated MeshService to use MeshPayload directly instead of script::MeshPayload.
- Enhanced SceneScriptService with detailed logging and error handling for Lua interactions.
- Introduced ILogger dependency in SceneScriptService and ShaderScriptService for better traceability.
- Implemented Lua state management in ScriptEngineService, allowing direct access to Lua functions.
- Added new types for mesh and scene management, including MeshPayload and SceneObject.
- Refactored shader loading logic in ShaderScriptService to utilize Lua for shader path retrieval.
- Created GuiInputSnapshot and GuiCommand structures for GUI input handling.
- Updated input and GUI script services to use new types and improved interfaces.
- Enhanced test_cube_script to validate new service implementations and Lua interactions.
- Removed core/platform.hpp and core/vulkan_utils.cpp, integrating their functionality into new platform_service implementations.
- Updated service registrations to utilize IPlatformService for improved modularity.
- Refactored event bus usage across services to leverage IEventBus interface.
- Enhanced buffer management in BufferService with detailed logging and error handling.
- Updated GUI rendering services to utilize buffer service for resource management.
- Cleaned up includes and improved overall code organization for better maintainability.
- Removed the LuaScriptService implementation and interface as it was redundant.
- Updated ShaderManager and ScriptEngine to utilize ILogger for improved logging.
- Enhanced SdlAudioService with detailed logging for audio operations and error handling.
- Refactored physics bridge service to include logging for physics operations.
- Updated interfaces to remove IScriptService and adjust dependencies accordingly.
- Cleaned up includes and organized namespaces for better code clarity.
- Deleted sdl3_app_render.cpp and sdl3_app_swapchain.cpp files, which contained the rendering and swapchain management logic for the SDL3 application.
- Removed associated header files and macros that were no longer needed.
- Eliminated the Vulkan API wrapper functions and the script service implementation, streamlining the codebase.
- This cleanup reduces complexity and potential maintenance overhead for the SDL3 application.