diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-03 09:19:16 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-03 09:19:16 +0100 |
| commit | 04e1c8800f81d7f01e7f52546c75fc39779f72ae (patch) | |
| tree | e3a6adc0e5b647f636d99312ff24f0cb58eed9d4 /PROJECT_CONTEXT.md | |
| parent | 249ee6e8de55b2313c86299d66b1d51abcaec130 (diff) | |
refactor(build): Modularize build system with static libraries
Completed the first part of Task #25. Created static libraries for each subsystem (audio, gpu, 3d, util, procedural) and refactored all executables to link against them. This improves modularity and simplifies the build process. Also fixed linker errors related to glfw, wgpu, and miniaudio.
Diffstat (limited to 'PROJECT_CONTEXT.md')
| -rw-r--r-- | PROJECT_CONTEXT.md | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md index 2f1333b..27b7ed9 100644 --- a/PROJECT_CONTEXT.md +++ b/PROJECT_CONTEXT.md @@ -28,36 +28,35 @@ Style: ## Project Roadmap ### Next Up -- ** Task #?: Build system - - [ ] collect the sub-system code under (static and dynamic) libraries - - [ ] consolidate CMakeList.txt content to use more macro for declaration, to avoid long repetitives lines and clauses +- **Task #25: Build System Consolidation**: + - [ ] Create static/dynamic libraries for subsystems (audio, gpu, 3d, util) to improve modularity. + - [ ] Refactor `CMakeLists.txt` using macros to reduce boilerplate and repetitive clauses. + - [ ] Consolidate host-tool build logic (asset_packer, etc.) into a unified helper. - **Task #20: Code & Platform Hygiene** - [ ] Gather all cross-compile and platform-specific conditional code into `platform.h`. - [ ] Refactor `platform_init()` and `platform_poll()` for cleaner abstraction. - [ ] Consolidate WebGPU header inclusions. - - [ ] Remove `std::map`/`std::vector` from hot paths. + - [ ] Remove `std::map`/`std::vector` from hot paths to prepare for CRT replacement. - **Task #18: 3D System Enhancements** - [ ] **Blender Exporter**: Create script to export scenes to internal binary format. - [ ] **Asset Pipeline**: Update `asset_packer` and runtime loader for 3D scenes. -- **Task #21: Shader Optimization** - - [ ] Use macros or code generation to factorize common WGSL code (normals, bump, lighting). - - [ ] Implement Tri-planar mapping for better procedural textures. - ### Future Goals - **Task #5: Implement Spectrogram Editor** - [ ] Develop a web-based tool (`tools/editor`) for creating and editing `.spec` files visually. -- **Task #18: 3D System Enhancements** - - [ ] **Blender Exporter**: Convert Blender scenes to internal asset format. - - [ ] **GPU BVH & Shadows**: Optimize scene queries with a GPU-based BVH. +- **Task #21: Shader Optimization** + - [ ] Use macros or code generation to factorize common WGSL code (normals, bump, lighting). + - [ ] Implement Tri-planar mapping for better procedural textures. +- **Task #18-B: GPU BVH & Shadows**: Optimize scene queries with a GPU-based BVH. - **Phase 2: Advanced Size Optimization** - [ ] Replace GLFW with minimal native Windows API. - [ ] Quantize spectrograms to logarithmic frequency and uint16_t. - [ ] CRT replacement investigation. ### Recently Completed +- **Asset System Robustness**: Resolved "static initialization order fiasco" by wrapping the asset table in a "Construct On First Use" getter (`GetAssetRecordTable()`), ensuring assets are available during dynamic global initialization (e.g., shader strings). - **Shader Asset Integration (Task #24)**: Extracted all hardcoded WGSL strings into `.wgsl` assets, registered them in `demo_assets.txt`, and updated `Renderer3D`, `VisualDebug`, and `Effects` to use `GetAsset` and `ShaderComposer`. - **WebGPU Stabilization**: Resolved `WGPUSurface` creation failures on macOS by adding platform-specific `GLFW_EXPOSE_NATIVE_COCOA` definitions and fixed validation errors in the render pass configuration. - **Final Build Stripping (Task #8)**: Implemented the `STRIP_ALL` macro to remove non-essential code (CLI parsing, debug labels, iostream) and refined size optimization flags (`-dead_strip`) for macOS. |
