From ab2e2bcc9ae8a9a18fc1ea52ea2bd18fdd140650 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 2 Feb 2026 12:25:18 +0100 Subject: docs: Incorporate PHASE2_COMPRESSION.md and update README - Moved PHASE2_COMPRESSION.md into the doc/ directory. - Updated README.md to list and describe the new documentation file. --- PHASE2_COMPRESSION.md | 18 ------------------ README.md | 1 + doc/PHASE2_COMPRESSION.md | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 18 deletions(-) delete mode 100644 PHASE2_COMPRESSION.md create mode 100644 doc/PHASE2_COMPRESSION.md diff --git a/PHASE2_COMPRESSION.md b/PHASE2_COMPRESSION.md deleted file mode 100644 index 3c83fa4..0000000 --- a/PHASE2_COMPRESSION.md +++ /dev/null @@ -1,18 +0,0 @@ -# Phase 2 – Compression & Size Reduction - -This document tracks ideas and strategies for the final optimization phase to reach the <=64k goal. - -## Executable Size - -### Windows -- **Replace GLFW**: For the final build, replace the statically linked GLFW library with a minimal "tiny" implementation using native Windows API (`CreateWindow`, `PeekMessage`, etc.). This is expected to yield significant savings. - - *Status*: Deferred until feature completion. -- **CRT Replacement**: Consider replacing the standard C runtime (CRT) with a minimal startup code (e.g., `tiny_crt` or similar) to avoid linking heavy standard libraries. -- **Import Minimization**: Dynamically load functions via `GetProcAddress` hash lookup to reduce the Import Address Table (IAT) size. - -### General -- **Shader Compression**: Minify WGSL shaders (remove whitespace, rename variables). -- **Asset Compression**: - - Store spectrograms with logarithmic frequency bins. - - Quantize spectral values to `uint16_t` or `uint8_t`. - - Use a custom packer/compressor for the asset blob. \ No newline at end of file diff --git a/README.md b/README.md index aff5251..bfeaf6f 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ This is a C++ project aiming to create a cross-platform (Windows, macOS, Linux) - `CONTRIBUTING.md`: Guidelines for contributing, including coding style and commit policies. - `FETCH_DEPS.md`: Information on third-party dependencies. - `HOWTO.md`: General instructions for running and interacting with the demo. +- `PHASE2_COMPRESSION.md`: Details on future asset compression strategies. - `PROCEDURAL.md`: Details on the procedural texture generation system. - `PROJECT_CONTEXT.md`: A comprehensive overview of the project's architecture, features, and current state. - `SPEC_EDITOR.md`: Plans for a future web-based spectrogram editor tool. diff --git a/doc/PHASE2_COMPRESSION.md b/doc/PHASE2_COMPRESSION.md new file mode 100644 index 0000000..3c83fa4 --- /dev/null +++ b/doc/PHASE2_COMPRESSION.md @@ -0,0 +1,18 @@ +# Phase 2 – Compression & Size Reduction + +This document tracks ideas and strategies for the final optimization phase to reach the <=64k goal. + +## Executable Size + +### Windows +- **Replace GLFW**: For the final build, replace the statically linked GLFW library with a minimal "tiny" implementation using native Windows API (`CreateWindow`, `PeekMessage`, etc.). This is expected to yield significant savings. + - *Status*: Deferred until feature completion. +- **CRT Replacement**: Consider replacing the standard C runtime (CRT) with a minimal startup code (e.g., `tiny_crt` or similar) to avoid linking heavy standard libraries. +- **Import Minimization**: Dynamically load functions via `GetProcAddress` hash lookup to reduce the Import Address Table (IAT) size. + +### General +- **Shader Compression**: Minify WGSL shaders (remove whitespace, rename variables). +- **Asset Compression**: + - Store spectrograms with logarithmic frequency bins. + - Quantize spectral values to `uint16_t` or `uint8_t`. + - Use a custom packer/compressor for the asset blob. \ No newline at end of file -- cgit v1.2.3