From 8275e158f26798f218fbd60cc9791cc53aac480a Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 2 Feb 2026 09:32:47 +0100 Subject: docs: Update project status and how-to guides - Marked 3D renderer integration and procedural asset tasks as complete in PROJECT_CONTEXT.md. - Added a new 'Platform & Windowing' section to document the major refactoring, high-DPI fix, and custom resolution feature. - Updated HOWTO.md to include instructions for the new '--resolution' command-line option. --- PROJECT_CONTEXT.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'PROJECT_CONTEXT.md') 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 -- cgit v1.2.3