diff options
Diffstat (limited to 'PROJECT_CONTEXT.md')
| -rw-r--r-- | PROJECT_CONTEXT.md | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md index 569683c..30a24d8 100644 --- a/PROJECT_CONTEXT.md +++ b/PROJECT_CONTEXT.md @@ -57,11 +57,11 @@ Incoming tasks in no particular order: - Hybrid normal calculation (Analytical + Numerical) (Done). - Bump mapping with procedural noise (Done). - Periodic texture generation (Done). -- 16. Integrate 3D Renderer into Main Demo: +- [x] 16. Integrate 3D Renderer into Main Demo: - Update `main.cc` / `gpu.cc` to use `Renderer3D`. - Apply Gaussian Blur and Chromatic Aberration post-processing. -* **17. Implement Asset Manager Caching & Procedural Generation** +* **[x] 17. Implement Asset Manager Caching & Procedural Generation** * 17a. **(Task a)** Implemented array-based caching in `asset_manager.cc` for `GetAsset` (Done). * 17b. **(Task b)** Modify `asset_packer` to parse a new `PROC(function_name)` compression method. This will generate a record mapping an Asset ID to the procedural function's name. * 17c. **(Task b)** Implement a runtime dispatcher in `GetAsset`. When a `PROC` asset is requested, the dispatcher will look up the function by its name and execute it. The result will then be cached. @@ -171,4 +171,9 @@ To maintain a single codebase while supporting different `wgpu-native` versions * **Impact:** This aims to achieve better compression while retaining fine frequency resolution relevant to human perception. It will primarily affect the code responsible for saving to and reading from `.spec` files, requiring conversions between the new format and the linear float format used internally by the audio engine. ### Development Workflow: -- **Testing**: Comprehensive test suite including `AssetManagerTest`, `SynthEngineTest`, `HammingWindowTest`, and `SpectoolEndToEndTest`. All tests are verified before committing.
\ No newline at end of file +- **Testing**: Comprehensive test suite including `AssetManagerTest`, `SynthEngineTest`, `HammingWindowTest`, and `SpectoolEndToEndTest`. All tests are verified before committing. + +### Platform & Windowing +- **High-DPI Fix**: Resolved a long-standing issue on high-DPI (Retina) displays where the viewport would be 'squished' in a corner. The platform layer now correctly queries framebuffer dimensions in pixels instead of window dimensions in points. +- **Stateless Refactor**: The entire platform layer (`platform.h`, `platform.cc`) was refactored to be stateless. All global variables were encapsulated into a `PlatformState` struct, which is now passed to all platform functions (`platform_init`, `platform_poll`, etc.). This improves modularity and removes scattered global state. +- **Custom Resolution**: Added a `--resolution WxH` command-line option to allow specifying a custom window size at startup (e.g., `./build/demo64k --resolution 1024x768`). This feature is disabled in `STRIP_ALL` builds to save space.
\ No newline at end of file |
