summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 09:32:47 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 09:32:47 +0100
commit8275e158f26798f218fbd60cc9791cc53aac480a (patch)
treecd096235709bcaafca94785d850bf95c63fed9f8
parente999a1a9efeb9d36613293b98eedb6b7ac1e291a (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.md5
-rw-r--r--PROJECT_CONTEXT.md11
2 files changed, 13 insertions, 3 deletions
diff --git a/HOWTO.md b/HOWTO.md
index 4a596db..e97380e 100644
--- a/HOWTO.md
+++ b/HOWTO.md
@@ -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