summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md25
1 files changed, 10 insertions, 15 deletions
diff --git a/TODO.md b/TODO.md
index 5ecd4bf..10e9394 100644
--- a/TODO.md
+++ b/TODO.md
@@ -2,37 +2,32 @@
This file tracks prioritized tasks with detailed attack plans.
-## Priority 1: Platform & Code Hygiene (Task #20)
+## Priority 1: Build System Consolidation (Task #25)
+**Goal:** Modularize the project and simplify CMake maintenance.
+- [ ] **Attack Plan - Subsystem Libraries:** Group source files into static libraries (`audio`, `gpu`, `3d`, `util`) to reduce link line complexity.
+- [ ] **Attack Plan - CMake Macros:** Implement `add_demo_library` and `add_demo_executable` macros to handle platform-specific definitions and warnings uniformly.
+- [ ] **Attack Plan - Host Tool Helpers:** Consolidate code generation targets into a single CMake helper.
+
+## Priority 2: Platform & Code Hygiene (Task #20)
**Goal:** Clean up the codebase for easier cross-platform maintenance and CRT replacement.
- [ ] **Attack Plan - Header Consolidation:** Move all `#ifdef` logic for WebGPU headers and platform-specific shims into `src/platform.h`.
- [ ] **Attack Plan - Refactor platform_init:** Change `void platform_init(PlatformState* state, ...)` to `PlatformState platform_init(...)`.
- [ ] **Attack Plan - Unified Poll:** Incorporate `platform_get_time()` and `platform_get_aspect_ratio()` updates into `platform_poll()`.
- [ ] **Attack Plan - Standard Container Removal:** Replace `std::map`, `std::string`, and `std::vector` in performance-critical or size-sensitive paths with simpler C-style alternatives.
-## Priority 2: 3D System Enhancements (Task #18)
+## Priority 3: 3D System Enhancements (Task #18)
**Goal:** Establish a pipeline for importing complex 3D scenes to replace hardcoded geometry.
- [ ] **Attack Plan - Blender Exporter:** Create a Python script (`tools/blender_export.py`) to export meshes/cameras/lights to a binary asset format.
- [ ] **Attack Plan - Asset Ingestion:** Update `asset_packer` to handle the new 3D binary format.
- [ ] **Attack Plan - Runtime Loader:** Implement a minimal C++ parser to load the scene data into the ECS/Renderer.
-## Priority 3: Shader Optimization (Task #21)
-**Goal:** Improve GPU performance and reduce shader source bloat.
-- [ ] **Attack Plan - Normal Factorization:** Create a standard WGSL helper for normal calculation to avoid duplicate code in every effect.
-- [ ] **Attack Plan - Tri-planar Mapping:** Implement bi/tri-planar mapping for procedural textures to improve visual quality on complex SDFs.
-
## Future Goals
+- [ ] **Task #21: Shader Optimization**: Normal factorization and Tri-planar mapping.
- [ ] **Task #5: Spectrogram Editor**: Web-based visual tool for extreme audio compression.
-- [ ] **Task #18-B: GPU BVH**: Optimize scene queries with a GPU-based BVH for the new 3D system.
- [ ] **Task #22: Windows Native Platform**: Replace GLFW with direct Win32 API calls for the final 64k push.
- [ ] **Task #23: Shader Performance Analysis**: Analyze shader performance using Xcode Metal debugger on macOS.
-## Phase 2: Advanced Size Optimization
-- [ ] **Task #22**: Windows Native Platform (Win32 API)
-
## Recently Completed
+- [x] **Asset System Robustness**: Fixed static initialization order issues by wrapping the asset table in a singleton-style getter (`GetAssetRecordTable()`).
- [x] **Shader Asset Integration (Task #24)**: Extracted hardcoded shaders to `.wgsl` assets, updated `asset_packer` for string safety, and refactored C++ code to use `GetAsset`.
- [x] **WebGPU Stability & macOS Fixes**: Resolved surface creation failures by adding `GLFW_EXPOSE_NATIVE_COCOA` and fixed validation errors in surface configuration and render pass attachments.
-- [x] **Final Build Stripping (Task #8)**: Implemented `STRIP_ALL` macro to remove CLI parsing and debug info. Optimized macOS linker flags (`-dead_strip`).
-- [x] **Tracker Asset Sample Integration**: Modified `assets/music.track` for `SAMPLE ASSET_NAME` syntax, updated `tools/tracker_compiler.cc` for parsing and code generation, and finalized `src/audio/tracker.cc` for unified asset sample pasting.
-- [x] **Minimal Audio Tracker**: Implemented a pattern and score-based audio tracker system. Details in `doc/TRACKER.md`.
-- [x] **WGSL Library (Task 21.1)**: Implemented ShaderComposer for modular WGSL snippet management.