diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-02 09:32:47 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-02 09:32:47 +0100 |
| commit | 8275e158f26798f218fbd60cc9791cc53aac480a (patch) | |
| tree | cd096235709bcaafca94785d850bf95c63fed9f8 | |
| parent | e999a1a9efeb9d36613293b98eedb6b7ac1e291a (diff) | |
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.
| -rw-r--r-- | HOWTO.md | 5 | ||||
| -rw-r--r-- | PROJECT_CONTEXT.md | 11 |
2 files changed, 13 insertions, 3 deletions
@@ -19,6 +19,11 @@ cmake --build build ./build/demo64k --fullscreen ``` +To run in a specific resolution, use the `--resolution` option: +```bash +./build/demo64k --resolution 1024x768 +``` + Keyboard Controls: * `Esc`: Exit the demo. * `F`: Toggle fullscreen mode. 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 |
