# To-Do List This file tracks the next set of immediate, actionable tasks for the project. ## Next Up - **Task #8: Implement Final Build Stripping** - [ ] Define and document a consistent set of rules for code stripping under the `STRIP_ALL` macro. - [ ] Example sub-tasks: remove unused functions, strip debug fields from structs, simplify code paths where possible. - **Task #19: Update README.md with Quick Start** - [ ] Add a top-level "Quick Start" section to `README.md` with brief build and run instructions for `demo64k`. - ** Task #?: scripts/build_win.sh is always copying MinGW DLLs file ("Copy MinGW DLLs"). Add a check on date or file size to prevent useless systematic copy. - ** Task #?: Code hygiene - [ ] make a pass on the code and make sure all useless code is protected by STRIP_ALL #ifdef's - [ ] analyze the #include and check if some standard header inclusion could be removed (, etc.) - [ ] see if all usage of std structs, container, etc. are appropriate: == is this std::map<> needed? == could we remove this std::set<>? == Can this std::vector be replaced by a simple C-like "const T*" array? == are these std::string needed or can they be replaced by some 'const char*' ? == do we need these std::cout, std::cerr, etc. instead of printf()'s? == etc. - [ ] the inclusion of gpu.h (either "gpu.h" or ) seems to be a recurring compilation and portability issue. Can we have a single inclusion of gpu.h in some platform header instead of scattered inclusion in .cc files? This would reduce the single-point-of-compilation failures during compilation and portability checks. ## Future Goals - **Task #5: Implement Spectrogram Editor** - [ ] Develop a web-based tool (`tools/editor`) for creating and editing `.spec` files visually. - [ ] The tool should support generating `.spec` files from elementary shapes (lines, curves) for extreme compression. - **Phase 2: Advanced Size Optimization** - [ ] Replace GLFW with a minimal native Windows API layer. - [ ] Investigate and implement advanced asset compression techniques (e.g., logarithmic frequency, quantization). - [ ] Explore replacing the standard C/C++ runtime with a more lightweight alternative. ## Past Tasks - Centralize generated files into `src/generated`. - Vertically compact C++ source code. - Create top-level `README.md`. - Move non-essential documentation to `doc/`. - **Bug Fixes:** Resolved high-DPI "squished" rendering by implementing dynamic resolution uniforms and explicit viewport settings. Fixed missing 3D shadows by adding PLANE support and standardizing soft shadow logic. - **Code Hygiene:** Completed a project-wide code formatting pass with `clang-format`. - **Task #4b:** Create `scripts/check_all.sh` to build and test all platform targets (macOS, Windows, Linux) to ensure stability before commits. - **Task #10:** Modify `spectool` to trim leading and trailing silent frames from `.spec` files to reduce asset size.