summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
5 daysremove demo_all.tgzskal
5 daysChore: Apply clang-format to the codebaseskal
5 daysRefactor: Move common GPU fields to base Effect classesskal
Moved WGPUDevice, WGPUQueue, and GpuBuffer uniforms_ into the base Effect and PostProcessEffect classes. Updated all derived effect classes to use these inherited members and refactored their constructors. Also fixed associated compilation errors in test files and adjusted a printf statement.
5 daysRefactor: Split demo effects and shaders into individual filesskal
Split src/gpu/demo_effects.cc into individual .cc files for each effect and created separate files for post-processing helpers and WGSL shaders. Updated src/gpu/demo_effects.h to be a central header for all effect-related declarations and adjusted CMakeLists.txt accordingly.
5 daysformat shader codeskal
5 daysclang-formatskal
5 daysupdate coding rulesskal
5 daysrefactor(cmake): Consolidate and simplify CMakeLists.txtskal
- Unified dependency and include configurations. - Grouped common source files into variables for cleaner executable definitions. - Introduced function to abstract asset generation logic. - Improved readability by reorganizing sections and removing redundant comments. - Verified all build configurations and tests for macOS and Windows successfully compile and pass.
5 daysfix(build): resolve cross-platform build configuration errorsskal
- Corrected signature in for macOS native builds to match the 5-parameter definition. - Conditionally compiled assignments in for native builds and removed the definition for Windows from , resolving 'no member named ' errors in Windows cross-compilation. - Verified all macOS native build configurations (Debug, Size-Optimized, Final/Strip, Developer/All Options, Tests Only, Tools Only) and the Windows cross-compilation build are now compiling successfully.
5 daysstyle: add vertical compression rules to clang-formatskal
- Enabled AllowShortFunctionsOnASingleLine: All - Enabled AllowShortBlocksOnASingleLine: Always - Enabled AllowShortIfStatementsOnASingleLine: Always - Enabled AllowShortLoopsOnASingleLine: true - Set MaxEmptyLinesToKeep: 1 - Applied formatting to all source files.
5 daysfix(build): correct generated timeline path in test_sequenceskal
- Updated test_sequence target to use the new generated timeline path in src/generated/. - Verified clean build and successful test execution.
5 daysrefactor: move generated asset files to src/generated/skal
- Updated CMakeLists.txt to generate assets.h and assets_data.cc in src/generated/. - Updated scripts/gen_assets.sh to reflect the new output location. - Modified asset_packer.cc to generate correct include paths in assets_data.cc. - Updated source files (main.cc, asset_manager.cc, test_assets.cc) to include headers from the 'generated/' subdirectory. - Ensured all targets have correct include paths to find generated headers. - Removed stale generated files from src/.
5 daysfix(gpu): resolve multiple WebGPU validation and runtime errorsskal
- Fixed 'Invalid sample count 0' and 'Invalid anisotropic clamp: 0' by ensuring explicit pipeline and sampler states. - Resolved WGSL parsing errors by replacing swizzle assignments in compute shaders. - Fixed 'Texture destroyed' error in render_frame by reordering command submission and resource presentation/release. - Added WGPU_DEPTH_SLICE_UNDEFINED for Windows compatibility and ensured consistent resolveTarget initialization. - Cleaned up PassthroughEffect bind group layout mismatch and redundant string helper definitions. - Verified all tests pass and applied consistent formatting.
5 daysfix seq-compiler help messageskal
5 daysfix: Resolve all remaining linking and include errors for Sequence/Effect testsskal
Corrects CMakeLists.txt to properly link test_sequence against GLFW and WGPU_LIBRARY. Ensures correct include paths for wgpu headers. Updates demo_effects.cc stub implementations. Finalizes test suite for sequence/effect system.
5 daysadd testing for sequenceskal
5 daysfix: Resolve all build/linking errors for Sequence/Effect testsskal
Adds missing source files and libraries for test_sequence target in CMakeLists.txt. Corrects include paths and ensures proper linking against WebGPU and GLFW libraries. All test suites now compile and pass.
5 daystest: Finalize sequence/effect system testsskal
Refines tests for the sequence and effect system to focus on logic (init, start, end calls) rather than GPU output, as full GPU mocking is complex. Updates HOWTO.md to reflect this.
5 daysstyle: Enforce vertically compact code formattingskal
Updated .clang-format to favor vertical compactness by setting AllowShortFunctionsOnASingleLine: None and AlwaysBreakBeforeMultilineStrings: true. Verified codebase adherence via clang-format.
5 daystools: Improve seq_compiler usage with example commandskal
Adds a copy-pasteable example line to the seq_compiler usage message when run without arguments.
5 daysfix: Cross-compilation and style complianceskal
Fixes seq_compiler build for Windows cross-compilation. Moves common WebGPU compatibility shims to gpu.h. Applies project-wide coding style via clang-format. Verified on both macOS (native) and Windows (cross-compile).
5 daysfeat: Full implementation of post-processing pipeline and new effectsskal
Completes the multi-pass rendering engine and implements all requested effects: MovingEllipse, ParticleSpray, GaussianBlur, Solarize, Distort, and ChromaAberration. Includes WGSL shaders for all effects and logic for time-varying parameters via uniforms.
5 daysfeat: Multi-pass rendering architecture and effect stubsskal
Implements a post-processing pipeline using offscreen framebuffers. Adds stubs for MovingEllipse, ParticleSpray, GaussianBlur, Solarize, Distort, and ChromaAberration effects. Updates MainSequence to orchestrate the scene pass and post-processing chain.
5 daysupdate instructionsskal
5 daysdocs: Capture Sequence system and debugging protocolsskal
Updates HOWTO.md with instructions for the --seek flag and assets/demo.seq editing. Updates CONTRIBUTING.md with the protocol for adding and registering new visual effects.
5 daysfeat: Implement Sequence Compiler for data-driven choreographyskal
Adds a 'seq_compiler' tool that converts a text-based timeline (assets/demo.seq) into a generated C++ file. This allows editing effect sequences and timing without modifying engine code. Replaces manual sequence creation with a generated 'LoadTimeline' function.
5 daysopt: Guard debug/seek features with STRIP_ALLskal
Ensures that code related to the --seek command line option (simulation loops, silent audio rendering) is completely compiled out when the DEMO_STRIP_ALL build option is enabled, preserving the 64k size constraint.
5 daysfeat: Add --seek command line option for fast-forward debuggingskal
This feature allows developers to jump to a specific time in the demo sequence (e.g., './demo64k --seek 10.5'). It simulates the game logic, audio state (rendering silent buffers), and visual physics (compute shaders) from t=0 up to the target time before starting real-time playback. Audio initialization is refactored to separate device init and start.
5 daysfeat: Implement Sequence and Effect system for demo choreographyskal
Refactors the rendering pipeline into a modular Sequence/Effect system. 'MainSequence' manages the final frame rendering and a list of 'Sequence' layers. 'Sequence' manages a timeline of 'Effect' objects (start/end/priority). Concrete effects (Heptagon, Particles) are moved to 'demo_effects.cc'. Updates main loop to pass beat and aspect ratio.
5 daysbuild: Add pack_source target to create complete source archiveskal
Adds a 'pack_source' CMake target that creates 'demo_all.tgz' using tar. This includes all source files, third-party dependencies (even those ignored by git), and submodules, ensuring a self-contained offline build package.
5 daysbuild: Add DEMO_ALL_OPTIONS to activate all build flags at onceskal
This adds a single CMake toggle to enable tools, tests, size optimizations, and code stripping, simplifying the development and verification workflow.
5 daysadd spec assetsskal
5 daysupdate session with mix fixesskal
5 daysdocs: Update contributing guidelines to mandate Windows build verificationskal
Expands the pre-commit policy to require verifying the Windows build (stripped and packed) if mingw-w64 is present, in addition to the standard native build and tests.
5 daysfix: Resolve macOS build breakage and restore tools audio supportskal
Updates gpu.cc to handle modern wgpu-native callback signatures (5 args) for macOS while maintaining Windows compatibility. Modifies audio.cc and CMakeLists.txt to ensure miniaudio encoding features are only stripped from the demo binary, not the tools (spectool/tests).
5 daysopt: Disable unused audio formats (FLAC, WAV, MP3) and encoding in miniaudioskal
Reduces Windows binary size from 461KB to 356KB (UPX packed) by stripping unused decoders and encoders from the runtime build. Tools (spectool) retain WAV/MP3 support.
5 daysupdate state in .md filesskal
5 daysFinalize Windows port with size analysis reporting and updated docsskal
5 daysAdd Windows cross-compilation support (MinGW) and emulation (Wine)skal
6 daysChore: Add missing newlines at end of source filesskal
6 daysChore: Remove trailing whitespaces across the codebaseskal
6 daysImplement procedural audio generation, spectral effects, and WebGPU particle ↵skal
system
6 daysadd notesskal
6 daysenforce code styleskal
6 daysmore style rulesskal
6 daysadd mini_math.h header-only vector libskal
8 daysremove shader.wgslskal
8 dayssimplify shaderskal
8 daysfix the audioskal
8 daysfix the spec editor a bitskal