32 Commits

Author SHA1 Message Date
7968456f4f feat(mesh): add tangents to MeshPayload and compute during payload building
- Updated MeshPayload structure to include tangents.
- Modified BuildPayloadFromBspBuffer to compute tangents based on vertex normals.
- Enhanced AppendMeshPayload to handle tangents, either from mesh data or generated.
- Updated PushMeshToLua to expose tangents to Lua.
- Adjusted ReadVertexArray to read tangents from Lua.

feat(shader): implement ShaderPipelineValidator for shader validation

- Added ShaderPipelineValidator class to validate shader inputs/outputs and vertex layouts.
- Implemented methods to extract shader attributes and validate against vertex layouts.
- Added comprehensive validation checks for shader pipelines, including SPIR-V requirements.
- Created a logger interface for validation results.

test(shader): add unit tests for ShaderPipelineValidator

- Implemented extensive unit tests for shader validation, covering various scenarios.
- Tests include extraction of shader inputs/outputs, validation of vertex layout matches, stride checks, and interface matching.
- Added edge case tests for empty shaders and comments in GLSL code.
2026-01-07 23:12:45 +00:00
2eb7d632dd feat(tests): Update GPU render test expectations and remove skybox references 2026-01-07 20:24:53 +00:00
498cc56b34 feat(materialx): Refactor MaterialX shader handling to improve configuration and error handling 2026-01-07 12:47:04 +00:00
c7a5e77bea feat(materialx): Update MaterialX configuration by removing unused parameters and adding default skybox material 2026-01-07 02:07:22 +00:00
172aa1a551 Refactor shader handling: Remove Lua shader variant script and update shader path loading
- Deleted the shader_variants.lua script, which contained functions for building shader parameter overrides and shader variants.
- Updated ShaderScriptService to remove Lua integration for shader path loading, now relying solely on MaterialX configuration.
- Simplified logging and error handling in shader path loading, ensuring clarity in the absence of shader variants.
2026-01-07 01:56:06 +00:00
fb811f4460 feat: Add MaterialX support and enhance time retrieval in scripting 2026-01-07 01:38:03 +00:00
cb5b58ca9e feat(physics): Enhance physics bridge service with new functionalities
- 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.
2026-01-07 00:20:19 +00:00
7b6f2d4567 feat: Add support for loading meshes from PK3 archives
- Updated CMakeLists.txt to find and link libzip.
- Modified conanfile.py to include libzip as a dependency.
- Created a new configuration file for Quake 3 runtime settings.
- Implemented loading of Quake 3 maps from PK3 archives in mesh_service.
- Added new Lua bindings for loading meshes from archives in script_engine_service.
- Enhanced material handling in materialx_shader_generator to support vertex data blocks.
2026-01-06 17:33:43 +00:00
06e31cf536 feat: Enable MaterialX support and refactor rendering pipeline to utilize view state 2026-01-06 15:56:44 +00:00
512eced3b0 feat(materialx): Integrate MaterialX support for PBR parameters and enhance shader functionality 2026-01-06 15:29:59 +00:00
a5b47479d7 Refactor graphics service architecture and remove Vulkan-specific components
- 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.
2026-01-06 15:08:20 +00:00
1f3e48ae27 feat(atmospherics): Add sky color configuration and apply in rendering 2026-01-06 01:07:26 +00:00
01f1e94994 feat(render-graph): Implement Lua-based render graph system
- 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.
2026-01-06 00:14:00 +00:00
c910ec5dcf Implement Vulkan Graphics Backend and Interfaces
- 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.
2026-01-05 19:00:35 +00:00
081af05f72 Implement GUI Renderer with SVG Support and Enhanced Drawing Capabilities
- 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.
2026-01-05 17:24:55 +00:00
114208ab64 feat: Update GUI opacity handling and rename function for clarity 2026-01-05 16:46:23 +00:00
5d35759179 feat: Add gui_opacity configuration and apply opacity in GUI rendering 2026-01-05 16:44:10 +00:00
19450edc52 feat: Update mouse grab behavior and add gamepad state handling in InputState 2026-01-05 16:14:01 +00:00
5c5f91d5e1 feat: Add FPS toggle functionality and bind key to configuration 2026-01-05 15:04:46 +00:00
e37f9ca0eb feat: Update GUI description to clarify widget framework 2026-01-05 13:18:33 +00:00
27045a3a6a feat: Implement PBR shaders and enhance atmospheric effects in rendering 2026-01-05 09:55:38 +00:00
04b073cd28 feat: Enhance launcher metadata in config files and load games dynamically from JSON 2026-01-05 09:28:58 +00:00
844b640329 feat: Add input bindings for jump and noclip toggle, and update related configurations 2026-01-05 08:19:17 +00:00
733871e1e7 feat: Update gamepad input bindings for consistency and add logging in input service 2026-01-05 07:44:09 +00:00
e79c0ad01c feat: Add fly up and fly down input bindings and update related services 2026-01-05 07:37:59 +00:00
b8fe3acccf feat: Implement mouse grab configuration and handling in input and window services 2026-01-05 07:16:57 +00:00
ca9830b978 feat: Add input bindings configuration for keyboard and gamepad actions 2026-01-05 06:55:13 +00:00
e9b944680c feat: Enhance ScriptEngine with Shader and Scene Management
- Added ShaderManager to handle shader paths loading from Lua.
- Integrated SceneManager for managing scene objects within ScriptEngine.
- Updated ScriptEngine to utilize ShaderManager and SceneManager.
- Refactored audio command handling to use AudioManager.
- Improved error handling and Lua integration for shader and scene loading.
- Cleaned up code structure and dependencies in script_engine.hpp.
2026-01-04 00:05:05 +00:00
Richard Ward
83e8fd6d1a rewrite dev script 2025-12-19 18:26:50 +00:00
Richard Ward
36f1c5f198 json debug stuff 2025-12-19 11:07:32 +00:00
Richard Ward
302b2e49a8 gui framework 2025-12-19 02:56:59 +00:00
Richard Ward
4f31fa3725 add cli and config 2025-12-19 02:05:22 +00:00