summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/DemoSourceLists.cmake4
-rw-r--r--cmake/Validation.cmake18
-rw-r--r--doc/CNN_DEBUG.md4
-rw-r--r--doc/CNN_EFFECT.md4
-rw-r--r--doc/CNN_FLATTEN_ANALYSIS.md2
-rw-r--r--doc/CNN_V2.md12
-rw-r--r--doc/CNN_V2_BINARY_FORMAT.md2
-rw-r--r--doc/EFFECT_WORKFLOW.md22
-rw-r--r--doc/RECIPE.md6
-rw-r--r--doc/WORKSPACE_SYSTEM.md2
-rw-r--r--src/3d/renderer.cc2
-rw-r--r--src/3d/renderer_pipelines.cc2
-rw-r--r--src/app/test_demo.cc8
-rw-r--r--src/effects/chroma_aberration_effect.cc (renamed from src/gpu/effects/chroma_aberration_effect.cc)2
-rw-r--r--src/effects/circle_mask_effect.cc (renamed from src/gpu/effects/circle_mask_effect.cc)4
-rw-r--r--src/effects/circle_mask_effect.h (renamed from src/gpu/effects/circle_mask_effect.h)2
-rw-r--r--src/effects/cnn_effect.cc (renamed from src/gpu/effects/cnn_effect.cc)8
-rw-r--r--src/effects/cnn_effect.h (renamed from src/gpu/effects/cnn_effect.h)0
-rw-r--r--src/effects/cnn_v2_effect.cc (renamed from src/gpu/effects/cnn_v2_effect.cc)4
-rw-r--r--src/effects/cnn_v2_effect.h (renamed from src/gpu/effects/cnn_v2_effect.h)0
-rw-r--r--src/effects/distort_effect.cc (renamed from src/gpu/effects/distort_effect.cc)0
-rw-r--r--src/effects/fade_effect.cc (renamed from src/gpu/effects/fade_effect.cc)4
-rw-r--r--src/effects/fade_effect.h (renamed from src/gpu/effects/fade_effect.h)2
-rw-r--r--src/effects/flash_cube_effect.cc (renamed from src/gpu/effects/flash_cube_effect.cc)2
-rw-r--r--src/effects/flash_cube_effect.h (renamed from src/gpu/effects/flash_cube_effect.h)0
-rw-r--r--src/effects/flash_effect.cc (renamed from src/gpu/effects/flash_effect.cc)4
-rw-r--r--src/effects/flash_effect.h (renamed from src/gpu/effects/flash_effect.h)0
-rw-r--r--src/effects/gaussian_blur_effect.cc (renamed from src/gpu/effects/gaussian_blur_effect.cc)2
-rw-r--r--src/effects/heptagon_effect.cc (renamed from src/gpu/effects/heptagon_effect.cc)0
-rw-r--r--src/effects/hybrid_3d_effect.cc (renamed from src/gpu/effects/hybrid_3d_effect.cc)2
-rw-r--r--src/effects/hybrid_3d_effect.h (renamed from src/gpu/effects/hybrid_3d_effect.h)0
-rw-r--r--src/effects/moving_ellipse_effect.cc (renamed from src/gpu/effects/moving_ellipse_effect.cc)2
-rw-r--r--src/effects/particle_spray_effect.cc (renamed from src/gpu/effects/particle_spray_effect.cc)2
-rw-r--r--src/effects/particles_effect.cc (renamed from src/gpu/effects/particles_effect.cc)2
-rw-r--r--src/effects/passthrough_effect.cc (renamed from src/gpu/effects/passthrough_effect.cc)0
-rw-r--r--src/effects/rotating_cube_effect.cc (renamed from src/gpu/effects/rotating_cube_effect.cc)6
-rw-r--r--src/effects/rotating_cube_effect.h (renamed from src/gpu/effects/rotating_cube_effect.h)0
-rw-r--r--src/effects/scene1_effect.cc (renamed from src/gpu/effects/scene1_effect.cc)0
-rw-r--r--src/effects/scene1_effect.h (renamed from src/gpu/effects/scene1_effect.h)0
-rw-r--r--src/effects/solarize_effect.cc (renamed from src/gpu/effects/solarize_effect.cc)0
-rw-r--r--src/effects/theme_modulation_effect.cc (renamed from src/gpu/effects/theme_modulation_effect.cc)6
-rw-r--r--src/effects/theme_modulation_effect.h (renamed from src/gpu/effects/theme_modulation_effect.h)2
-rw-r--r--src/effects/vignette_effect.cc (renamed from src/gpu/effects/vignette_effect.cc)2
-rw-r--r--src/gpu/demo_effects.cc4
-rw-r--r--src/gpu/demo_effects.h28
-rw-r--r--src/gpu/effect.h2
-rw-r--r--src/gpu/gpu.cc9
-rw-r--r--src/gpu/pipeline_builder.h2
-rw-r--r--src/gpu/post_process_helper.cc (renamed from src/gpu/effects/post_process_helper.cc)4
-rw-r--r--src/gpu/post_process_helper.h (renamed from src/gpu/effects/post_process_helper.h)0
-rw-r--r--src/gpu/shader_composer.cc (renamed from src/gpu/effects/shader_composer.cc)2
-rw-r--r--src/gpu/shader_composer.h (renamed from src/gpu/effects/shader_composer.h)0
-rw-r--r--src/gpu/shaders.cc (renamed from src/gpu/effects/shaders.cc)4
-rw-r--r--src/gpu/shaders.h (renamed from src/gpu/effects/shaders.h)0
-rw-r--r--src/gpu/texture_manager.cc2
-rw-r--r--src/tests/3d/test_3d_physics.cc2
-rw-r--r--src/tests/3d/test_3d_render.cc2
-rw-r--r--src/tests/3d/test_mesh.cc2
-rw-r--r--src/tests/gpu/test_demo_effects.cc2
-rw-r--r--src/tests/gpu/test_noise_functions.cc4
-rw-r--r--src/tests/gpu/test_shader_compilation.cc4
-rw-r--r--src/tests/gpu/test_shader_composer.cc2
-rw-r--r--tools/cnn_test.cc8
-rw-r--r--tools/cnn_v2_test/README.md2
-rw-r--r--tools/shadertoy/README.md10
-rwxr-xr-xtools/shadertoy/convert_shadertoy.py20
-rw-r--r--tools/shadertoy/template.cc4
-rw-r--r--tools/shadertoy/template.h2
68 files changed, 131 insertions, 136 deletions
diff --git a/cmake/DemoSourceLists.cmake b/cmake/DemoSourceLists.cmake
index f1fbf4a..a54eb4b 100644
--- a/cmake/DemoSourceLists.cmake
+++ b/cmake/DemoSourceLists.cmake
@@ -29,11 +29,11 @@ set(UTIL_SOURCES src/util/asset_manager.cc src/util/file_watcher.cc)
# GPU sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL)
demo_set_conditional_sources(GPU_SOURCES
# Headless mode: Functional stubs (timeline/audio work)
- "src/gpu/headless_gpu.cc;src/gpu/demo_effects.cc;src/gpu/effect.cc;src/gpu/effects/heptagon_effect.cc;src/gpu/effects/particles_effect.cc;src/gpu/effects/passthrough_effect.cc;src/gpu/effects/moving_ellipse_effect.cc;src/gpu/effects/particle_spray_effect.cc;src/gpu/effects/gaussian_blur_effect.cc;src/gpu/effects/solarize_effect.cc;src/gpu/effects/scene1_effect.cc;src/gpu/effects/chroma_aberration_effect.cc;src/gpu/effects/vignette_effect.cc;src/gpu/effects/cnn_effect.cc;src/gpu/effects/cnn_v2_effect.cc;src/gpu/effects/post_process_helper.cc;src/gpu/effects/shaders.cc;src/gpu/effects/hybrid_3d_effect.cc;src/gpu/effects/flash_cube_effect.cc;src/gpu/effects/theme_modulation_effect.cc;src/gpu/effects/fade_effect.cc;src/gpu/effects/flash_effect.cc;src/gpu/effects/shader_composer.cc;src/gpu/effects/circle_mask_effect.cc;src/gpu/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
+ "src/gpu/headless_gpu.cc;src/gpu/demo_effects.cc;src/gpu/effect.cc;src/effects/heptagon_effect.cc;src/effects/particles_effect.cc;src/effects/passthrough_effect.cc;src/effects/moving_ellipse_effect.cc;src/effects/particle_spray_effect.cc;src/effects/gaussian_blur_effect.cc;src/effects/solarize_effect.cc;src/effects/scene1_effect.cc;src/effects/chroma_aberration_effect.cc;src/effects/vignette_effect.cc;src/effects/cnn_effect.cc;src/effects/cnn_v2_effect.cc;src/gpu/post_process_helper.cc;src/gpu/shaders.cc;src/effects/hybrid_3d_effect.cc;src/effects/flash_cube_effect.cc;src/effects/theme_modulation_effect.cc;src/effects/fade_effect.cc;src/effects/flash_effect.cc;src/gpu/shader_composer.cc;src/effects/circle_mask_effect.cc;src/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
# Strip mode: Minimal GPU stubs only
"src/gpu/stub_gpu.cc"
# Normal mode: Full GPU implementation
- "src/gpu/gpu.cc;src/gpu/effect.cc;src/gpu/effects/heptagon_effect.cc;src/gpu/effects/particles_effect.cc;src/gpu/effects/passthrough_effect.cc;src/gpu/effects/moving_ellipse_effect.cc;src/gpu/effects/particle_spray_effect.cc;src/gpu/effects/gaussian_blur_effect.cc;src/gpu/effects/solarize_effect.cc;src/gpu/effects/scene1_effect.cc;src/gpu/effects/chroma_aberration_effect.cc;src/gpu/effects/vignette_effect.cc;src/gpu/effects/cnn_effect.cc;src/gpu/effects/cnn_v2_effect.cc;src/gpu/effects/post_process_helper.cc;src/gpu/effects/shaders.cc;src/gpu/effects/hybrid_3d_effect.cc;src/gpu/effects/flash_cube_effect.cc;src/gpu/effects/theme_modulation_effect.cc;src/gpu/effects/fade_effect.cc;src/gpu/effects/flash_effect.cc;src/gpu/effects/shader_composer.cc;src/gpu/effects/circle_mask_effect.cc;src/gpu/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
+ "src/gpu/gpu.cc;src/gpu/effect.cc;src/effects/heptagon_effect.cc;src/effects/particles_effect.cc;src/effects/passthrough_effect.cc;src/effects/moving_ellipse_effect.cc;src/effects/particle_spray_effect.cc;src/effects/gaussian_blur_effect.cc;src/effects/solarize_effect.cc;src/effects/scene1_effect.cc;src/effects/chroma_aberration_effect.cc;src/effects/vignette_effect.cc;src/effects/cnn_effect.cc;src/effects/cnn_v2_effect.cc;src/gpu/post_process_helper.cc;src/gpu/shaders.cc;src/effects/hybrid_3d_effect.cc;src/effects/flash_cube_effect.cc;src/effects/theme_modulation_effect.cc;src/effects/fade_effect.cc;src/effects/flash_effect.cc;src/gpu/shader_composer.cc;src/effects/circle_mask_effect.cc;src/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
)
# 3D sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL)
diff --git a/cmake/Validation.cmake b/cmake/Validation.cmake
index 1152d1a..328357e 100644
--- a/cmake/Validation.cmake
+++ b/cmake/Validation.cmake
@@ -12,16 +12,16 @@ file(GLOB WGSL_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE
# List of C++ files containing uniform struct definitions and shader code
# Add more C++ files here if new effects with structs are added.
set(VALIDATION_CPP_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/heptagon_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/post_process_helper.h
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/fade_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/theme_modulation_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/chroma_aberration_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/vignette_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/gaussian_blur_effect.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/distort_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/heptagon_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/post_process_helper.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/fade_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/theme_modulation_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/chroma_aberration_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/vignette_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/gaussian_blur_effect.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/distort_effect.cc
${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/demo_effects.h
- ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/effects/circle_mask_effect.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/effects/circle_mask_effect.h
)
# Add custom command to run the validator
diff --git a/doc/CNN_DEBUG.md b/doc/CNN_DEBUG.md
index dba0b60..ba220a0 100644
--- a/doc/CNN_DEBUG.md
+++ b/doc/CNN_DEBUG.md
@@ -11,7 +11,7 @@ CNN post-processing effect showed black screen when activated at 11.50s, despite
**Fix**: Moved capture before loop starts (lines 308-346). Capture now copies `framebuffer_a` to `captured_frame` auxiliary texture ONCE before any post-effects run.
### Bug 2: Missing Uniforms Update ⚠️ CRITICAL
-**Location**: `src/gpu/effects/cnn_effect.cc`
+**Location**: `src/effects/cnn_effect.cc`
**Issue**: `CNNEffect::update_bind_group()` never updated `uniforms_` buffer. `uniforms.resolution` uninitialized (0,0 or garbage) → UV calculation `p.xy / uniforms.resolution` produced NaN → all texture samples black.
**Fix**: Added uniforms update before bind group creation (lines 132-142):
```cpp
@@ -34,7 +34,7 @@ uniforms_.update(ctx_.queue, u);
## Files Modified
- `src/gpu/effect.cc`: Lines 308-346 (capture timing)
-- `src/gpu/effects/cnn_effect.cc`: Lines 132-142 (uniforms update)
+- `src/effects/cnn_effect.cc`: Lines 132-142 (uniforms update)
## Verification
Test: `demo64k --seek 11.5`
diff --git a/doc/CNN_EFFECT.md b/doc/CNN_EFFECT.md
index c14130a..40f095e 100644
--- a/doc/CNN_EFFECT.md
+++ b/doc/CNN_EFFECT.md
@@ -80,7 +80,7 @@ CNNEffect supports multi-layer networks via automatic effect chaining:
### File Structure
```
-src/gpu/effects/
+src/effects/
cnn_effect.h/cc # CNNEffect class + framebuffer capture
workspaces/main/shaders/cnn/
@@ -156,7 +156,7 @@ cmake --build build -j4 && ./build/demo64k
**Single layer (manual):**
```cpp
-#include "gpu/effects/cnn_effect.h"
+#include "effects/cnn_effect.h"
CNNEffectParams p;
p.layer_index = 0;
diff --git a/doc/CNN_FLATTEN_ANALYSIS.md b/doc/CNN_FLATTEN_ANALYSIS.md
index 88f3db6..bf63c5d 100644
--- a/doc/CNN_FLATTEN_ANALYSIS.md
+++ b/doc/CNN_FLATTEN_ANALYSIS.md
@@ -185,5 +185,5 @@ These yield better size/performance than shader architecture changes.
- `doc/CNN_EFFECT.md` - CNN implementation details
- `doc/CNN.md` - High-level CNN design
-- `src/gpu/effects/cnn_effect.cc` - Current implementation
+- `src/effects/cnn_effect.cc` - Current implementation
- `workspaces/main/shaders/cnn_*.wgsl` - Shader snippets
diff --git a/doc/CNN_V2.md b/doc/CNN_V2.md
index 2d1d4c4..b7fd6f8 100644
--- a/doc/CNN_V2.md
+++ b/doc/CNN_V2.md
@@ -520,13 +520,13 @@ See `doc/CNN_V2_WEB_TOOL.md` for detailed documentation
### Phase 2: C++ Effect Class
-- [ ] `src/gpu/effects/cnn_v2_effect.h` - Header
+- [ ] `src/effects/cnn_v2_effect.h` - Header
- [ ] Class declaration inheriting from `PostProcessEffect`
- [ ] Static features texture member
- [ ] Layer textures vector
- [ ] Pipeline and bind group members
-- [ ] `src/gpu/effects/cnn_v2_effect.cc` - Implementation
+- [ ] `src/effects/cnn_v2_effect.cc` - Implementation
- [ ] Constructor: Load shaders, create textures
- [ ] `init()`: Create pipelines, bind groups
- [ ] `render()`: Multi-pass execution
@@ -598,8 +598,8 @@ workspaces/main/shaders/cnn_v2/cnn_v2_layer_1.wgsl # Inner layer (generated
workspaces/main/shaders/cnn_v2/cnn_v2_layer_2.wgsl # Output layer (generated)
# C++ implementation
-src/gpu/effects/cnn_v2_effect.h # Effect class header
-src/gpu/effects/cnn_v2_effect.cc # Effect implementation
+src/effects/cnn_v2_effect.h # Effect class header
+src/effects/cnn_v2_effect.cc # Effect implementation
# Python training/export
training/train_cnn_v2.py # Training script
@@ -630,7 +630,7 @@ TODO.md # Add CNN v2 task
```
training/train_cnn.py # Original training
-src/gpu/effects/cnn_effect.* # Original effect
+src/effects/cnn_effect.* # Original effect
workspaces/main/shaders/cnn_*.wgsl # Original v1 shaders
```
@@ -750,7 +750,7 @@ See `doc/CNN_V2_BINARY_FORMAT.md` for proposed descriptor format.
## References
-- **v1 Implementation:** `src/gpu/effects/cnn_effect.*`
+- **v1 Implementation:** `src/effects/cnn_effect.*`
- **Training Guide:** `doc/HOWTO.md` (CNN Training section)
- **Test Tool:** `doc/CNN_TEST_TOOL.md`
- **Shader System:** `doc/SEQUENCE.md`
diff --git a/doc/CNN_V2_BINARY_FORMAT.md b/doc/CNN_V2_BINARY_FORMAT.md
index f718960..59c859d 100644
--- a/doc/CNN_V2_BINARY_FORMAT.md
+++ b/doc/CNN_V2_BINARY_FORMAT.md
@@ -230,6 +230,6 @@ Benefits:
## Related Files
- `training/export_cnn_v2_weights.py` - Binary export tool
-- `src/gpu/effects/cnn_v2_effect.cc` - C++ loader
+- `src/effects/cnn_v2_effect.cc` - C++ loader
- `tools/cnn_v2_test/index.html` - WebGPU validator
- `doc/CNN_V2.md` - Architecture design
diff --git a/doc/EFFECT_WORKFLOW.md b/doc/EFFECT_WORKFLOW.md
index e453b63..22b8dc9 100644
--- a/doc/EFFECT_WORKFLOW.md
+++ b/doc/EFFECT_WORKFLOW.md
@@ -19,8 +19,8 @@ Automated checklist for adding new visual effects to the demo.
### 1. Create Effect Files
**Location:**
-- Header: `src/gpu/effects/<effect_name>_effect.h`
-- Implementation: `src/gpu/effects/<effect_name>_effect.cc`
+- Header: `src/effects/<effect_name>_effect.h`
+- Implementation: `src/effects/<effect_name>_effect.cc`
- Shader: `workspaces/main/shaders/<effect_name>.wgsl`
**Naming Convention:**
@@ -69,7 +69,7 @@ SHADER_TUNNEL, NONE, shaders/tunnel.wgsl, "Tunnel effect shader"
**File:** `CMakeLists.txt`
-**Action:** Add `src/gpu/effects/<effect_name>_effect.cc` to **BOTH** GPU_SOURCES sections:
+**Action:** Add `src/effects/<effect_name>_effect.cc` to **BOTH** GPU_SOURCES sections:
- Headless mode section (around line 141-167)
- Normal mode section (around line 171-197)
@@ -78,14 +78,14 @@ SHADER_TUNNEL, NONE, shaders/tunnel.wgsl, "Tunnel effect shader"
**Example:**
```cmake
# In headless section (line ~152):
- src/gpu/effects/solarize_effect.cc
- src/gpu/effects/tunnel_effect.cc # <-- Add here
- src/gpu/effects/chroma_aberration_effect.cc
+ src/effects/solarize_effect.cc
+ src/effects/tunnel_effect.cc # <-- Add here
+ src/effects/chroma_aberration_effect.cc
# In normal section (line ~183):
- src/gpu/effects/solarize_effect.cc
- src/gpu/effects/tunnel_effect.cc # <-- Add here
- src/gpu/effects/chroma_aberration_effect.cc
+ src/effects/solarize_effect.cc
+ src/effects/tunnel_effect.cc # <-- Add here
+ src/effects/chroma_aberration_effect.cc
```
### 4. Include in demo_effects.h
@@ -94,7 +94,7 @@ SHADER_TUNNEL, NONE, shaders/tunnel.wgsl, "Tunnel effect shader"
**Action:** Add include directive:
```cpp
-#include "gpu/effects/<effect_name>_effect.h"
+#include "effects/<effect_name>_effect.h"
```
**Location:** Alphabetically with other effect includes
@@ -241,4 +241,4 @@ cmake --build build -j4
- `tools/shadertoy/README.md` - ShaderToy conversion guide
- `doc/SEQUENCE.md` - Timeline format documentation
- `doc/CONTRIBUTING.md` - General contribution guidelines
-- `src/gpu/effects/` - Existing effect examples
+- `src/effects/` - Existing effect examples
diff --git a/doc/RECIPE.md b/doc/RECIPE.md
index d563027..f17afde 100644
--- a/doc/RECIPE.md
+++ b/doc/RECIPE.md
@@ -8,7 +8,7 @@ Use `ShaderComposer` to dynamically assemble shaders from snippets.
**Pattern:**
```cpp
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "generated/assets.h"
// 1. Load base shader template from asset
@@ -70,7 +70,7 @@ fn compute_color(uv: vec2<f32>) -> vec4<f32> {
)");
```
-**Example usage:** `src/gpu/effects/rotating_cube_effect.cc:72-75`
+**Example usage:** `src/effects/rotating_cube_effect.cc:72-75`
## QuadEffect with Auxiliary Textures
@@ -161,7 +161,7 @@ EFFECT + MyEffect 0.0 10.0 strength=0.5 speed=3.0
EFFECT = MyEffect 10.0 20.0 strength=2.0 # speed keeps previous value
```
-**Example:** `src/gpu/effects/flash_effect.cc`, `src/gpu/effects/chroma_aberration_effect.cc`
+**Example:** `src/effects/flash_effect.cc`, `src/effects/chroma_aberration_effect.cc`
## Uniform Buffer Alignment
diff --git a/doc/WORKSPACE_SYSTEM.md b/doc/WORKSPACE_SYSTEM.md
index 9362da6..64ba120 100644
--- a/doc/WORKSPACE_SYSTEM.md
+++ b/doc/WORKSPACE_SYSTEM.md
@@ -557,7 +557,7 @@ endif()
**Modified files:**
- `CMakeLists.txt` - Workspace support
- `tools/asset_packer.cc` - Multi-path resolution
-- `src/gpu/effects/shader_composer.cc` - Multi-path includes
+- `src/gpu/shader_composer.cc` - Multi-path includes
- `README.md` - Workspace documentation
- `doc/HOWTO.md` - Build commands
- `doc/CONTRIBUTING.md` - Workspace guidelines
diff --git a/src/3d/renderer.cc b/src/3d/renderer.cc
index d846895..7f2f800 100644
--- a/src/3d/renderer.cc
+++ b/src/3d/renderer.cc
@@ -3,7 +3,7 @@
#include "3d/renderer.h"
#include "generated/assets.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "util/asset_manager.h"
#include <algorithm>
#include <cassert>
diff --git a/src/3d/renderer_pipelines.cc b/src/3d/renderer_pipelines.cc
index 54499af..fed3983 100644
--- a/src/3d/renderer_pipelines.cc
+++ b/src/3d/renderer_pipelines.cc
@@ -3,7 +3,7 @@
#include "3d/renderer.h"
#include "generated/assets.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "util/asset_manager.h"
#include "util/asset_manager_utils.h"
#include <vector>
diff --git a/src/app/test_demo.cc b/src/app/test_demo.cc
index 7f10c3b..2a91d37 100644
--- a/src/app/test_demo.cc
+++ b/src/app/test_demo.cc
@@ -20,10 +20,10 @@ extern float GetDemoDuration();
extern void LoadTimeline(MainSequence& main_seq, const GpuContext& ctx);
// Inline peak meter effect for debugging audio-visual sync
-#include "gpu/effects/post_process_helper.h"
-#include "gpu/effects/shader_composer.h"
-#include "gpu/effects/cnn_effect.h"
-#include "gpu/effects/cnn_v2_effect.h"
+#include "gpu/post_process_helper.h"
+#include "gpu/shader_composer.h"
+#include "effects/cnn_effect.h"
+#include "effects/cnn_v2_effect.h"
class PeakMeterEffect : public PostProcessEffect {
public:
diff --git a/src/gpu/effects/chroma_aberration_effect.cc b/src/effects/chroma_aberration_effect.cc
index 3a51965..a096f5b 100644
--- a/src/gpu/effects/chroma_aberration_effect.cc
+++ b/src/effects/chroma_aberration_effect.cc
@@ -2,7 +2,7 @@
// It implements the ChromaAberrationEffect with parameterization.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
// --- ChromaAberrationEffect ---
diff --git a/src/gpu/effects/circle_mask_effect.cc b/src/effects/circle_mask_effect.cc
index dfe7d03..63c8f68 100644
--- a/src/gpu/effects/circle_mask_effect.cc
+++ b/src/effects/circle_mask_effect.cc
@@ -2,10 +2,10 @@
// It implements CircleMaskEffect for auxiliary texture masking demonstration.
// Generates circular mask and renders green background outside circle.
-#include "gpu/effects/circle_mask_effect.h"
+#include "effects/circle_mask_effect.h"
#include "generated/assets.h"
#include "gpu/bind_group_builder.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
CircleMaskEffect::CircleMaskEffect(const GpuContext& ctx, float radius)
: Effect(ctx), radius_(radius) {
diff --git a/src/gpu/effects/circle_mask_effect.h b/src/effects/circle_mask_effect.h
index 6ebaca1..53cc1bc 100644
--- a/src/gpu/effects/circle_mask_effect.h
+++ b/src/effects/circle_mask_effect.h
@@ -6,7 +6,7 @@
#define CIRCLE_MASK_EFFECT_H_
#include "gpu/effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/uniform_helper.h"
class CircleMaskEffect : public Effect {
diff --git a/src/gpu/effects/cnn_effect.cc b/src/effects/cnn_effect.cc
index 83a3365..4475180 100644
--- a/src/gpu/effects/cnn_effect.cc
+++ b/src/effects/cnn_effect.cc
@@ -1,10 +1,10 @@
// CNN post-processing effect implementation
// Neural network-based stylization with modular WGSL
-#include "gpu/effects/cnn_effect.h"
-#include "gpu/effects/post_process_helper.h"
-#include "gpu/effects/shaders.h"
-#include "gpu/effects/shader_composer.h"
+#include "effects/cnn_effect.h"
+#include "gpu/post_process_helper.h"
+#include "gpu/shaders.h"
+#include "gpu/shader_composer.h"
#include "gpu/effect.h"
#include "gpu/bind_group_builder.h"
#include "gpu/sampler_cache.h"
diff --git a/src/gpu/effects/cnn_effect.h b/src/effects/cnn_effect.h
index 3e2b7ca..3e2b7ca 100644
--- a/src/gpu/effects/cnn_effect.h
+++ b/src/effects/cnn_effect.h
diff --git a/src/gpu/effects/cnn_v2_effect.cc b/src/effects/cnn_v2_effect.cc
index be856a4..4c10ed1 100644
--- a/src/gpu/effects/cnn_v2_effect.cc
+++ b/src/effects/cnn_v2_effect.cc
@@ -1,6 +1,6 @@
// CNN v2 Effect Implementation
-#include "gpu/effects/cnn_v2_effect.h"
+#include "effects/cnn_v2_effect.h"
#if defined(USE_TEST_ASSETS)
#include "test_assets.h"
@@ -153,7 +153,7 @@ void CNNv2Effect::create_textures() {
// Input texture with mips (for multi-scale features)
TextureWithView input_mip = gpu_create_texture_2d(
ctx_.device, width_, height_, WGPUTextureFormat_RGBA8Unorm,
- WGPUTextureUsage_TextureBinding | WGPUTextureUsage_CopyDst, 3);
+ (WGPUTextureUsage)(WGPUTextureUsage_TextureBinding | WGPUTextureUsage_CopyDst), 3);
input_mip_tex_ = input_mip.texture;
for (int i = 0; i < 3; ++i) {
diff --git a/src/gpu/effects/cnn_v2_effect.h b/src/effects/cnn_v2_effect.h
index d530d3b..d530d3b 100644
--- a/src/gpu/effects/cnn_v2_effect.h
+++ b/src/effects/cnn_v2_effect.h
diff --git a/src/gpu/effects/distort_effect.cc b/src/effects/distort_effect.cc
index 97622b2..97622b2 100644
--- a/src/gpu/effects/distort_effect.cc
+++ b/src/effects/distort_effect.cc
diff --git a/src/gpu/effects/fade_effect.cc b/src/effects/fade_effect.cc
index 93684d8..fd2af69 100644
--- a/src/gpu/effects/fade_effect.cc
+++ b/src/effects/fade_effect.cc
@@ -1,8 +1,8 @@
// This file is part of the 64k demo project.
// It implements the FadeEffect - fades to/from black based on time.
-#include "gpu/effects/fade_effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "effects/fade_effect.h"
+#include "gpu/post_process_helper.h"
#include <cmath>
struct FadeParams {
diff --git a/src/gpu/effects/fade_effect.h b/src/effects/fade_effect.h
index 3360a5f..8cd7006 100644
--- a/src/gpu/effects/fade_effect.h
+++ b/src/effects/fade_effect.h
@@ -4,7 +4,7 @@
#pragma once
#include "gpu/effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
#include "gpu/uniform_helper.h"
diff --git a/src/gpu/effects/flash_cube_effect.cc b/src/effects/flash_cube_effect.cc
index 506f11c..29e9897 100644
--- a/src/gpu/effects/flash_cube_effect.cc
+++ b/src/effects/flash_cube_effect.cc
@@ -2,7 +2,7 @@
// It implements the FlashCubeEffect - a flashing background cube with Perlin
// noise.
-#include "gpu/effects/flash_cube_effect.h"
+#include "effects/flash_cube_effect.h"
#include "generated/assets.h"
#include "util/asset_manager_utils.h"
#include <cmath>
diff --git a/src/gpu/effects/flash_cube_effect.h b/src/effects/flash_cube_effect.h
index df30b5b..df30b5b 100644
--- a/src/gpu/effects/flash_cube_effect.h
+++ b/src/effects/flash_cube_effect.h
diff --git a/src/gpu/effects/flash_effect.cc b/src/effects/flash_effect.cc
index e53cbce..235412d 100644
--- a/src/gpu/effects/flash_effect.cc
+++ b/src/effects/flash_effect.cc
@@ -2,8 +2,8 @@
// It implements the FlashEffect - brief flash on u.beat hits.
// Now supports parameterized color with per-frame animation.
-#include "gpu/effects/flash_effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "effects/flash_effect.h"
+#include "gpu/post_process_helper.h"
#include <cmath>
// Backward compatibility constructor (delegates to parameterized constructor)
diff --git a/src/gpu/effects/flash_effect.h b/src/effects/flash_effect.h
index 1ac75a4..1ac75a4 100644
--- a/src/gpu/effects/flash_effect.h
+++ b/src/effects/flash_effect.h
diff --git a/src/gpu/effects/gaussian_blur_effect.cc b/src/effects/gaussian_blur_effect.cc
index 4421e33..0b4beae 100644
--- a/src/gpu/effects/gaussian_blur_effect.cc
+++ b/src/effects/gaussian_blur_effect.cc
@@ -2,7 +2,7 @@
// It implements the GaussianBlurEffect with parameterization.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
// --- GaussianBlurEffect ---
diff --git a/src/gpu/effects/heptagon_effect.cc b/src/effects/heptagon_effect.cc
index 724eabb..724eabb 100644
--- a/src/gpu/effects/heptagon_effect.cc
+++ b/src/effects/heptagon_effect.cc
diff --git a/src/gpu/effects/hybrid_3d_effect.cc b/src/effects/hybrid_3d_effect.cc
index a46ab4c..1cd773d 100644
--- a/src/gpu/effects/hybrid_3d_effect.cc
+++ b/src/effects/hybrid_3d_effect.cc
@@ -1,7 +1,7 @@
// This file is part of the 64k demo project.
// It implements the Hybrid3DEffect.
-#include "gpu/effects/hybrid_3d_effect.h"
+#include "effects/hybrid_3d_effect.h"
#include "generated/assets.h"
#include "util/asset_manager_utils.h"
#include <cassert>
diff --git a/src/gpu/effects/hybrid_3d_effect.h b/src/effects/hybrid_3d_effect.h
index 818b65c..818b65c 100644
--- a/src/gpu/effects/hybrid_3d_effect.h
+++ b/src/effects/hybrid_3d_effect.h
diff --git a/src/gpu/effects/moving_ellipse_effect.cc b/src/effects/moving_ellipse_effect.cc
index bbd3c08..f595de9 100644
--- a/src/gpu/effects/moving_ellipse_effect.cc
+++ b/src/effects/moving_ellipse_effect.cc
@@ -2,7 +2,7 @@
// It implements the MovingEllipseEffect.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
// --- MovingEllipseEffect ---
diff --git a/src/gpu/effects/particle_spray_effect.cc b/src/effects/particle_spray_effect.cc
index 9b615d0..e250f5a 100644
--- a/src/gpu/effects/particle_spray_effect.cc
+++ b/src/effects/particle_spray_effect.cc
@@ -2,7 +2,7 @@
// It implements the ParticleSprayEffect.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
#include <vector>
diff --git a/src/gpu/effects/particles_effect.cc b/src/effects/particles_effect.cc
index f8c18f0..5762637 100644
--- a/src/gpu/effects/particles_effect.cc
+++ b/src/effects/particles_effect.cc
@@ -2,7 +2,7 @@
// It implements the ParticlesEffect.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
#include <vector>
diff --git a/src/gpu/effects/passthrough_effect.cc b/src/effects/passthrough_effect.cc
index aedb387..aedb387 100644
--- a/src/gpu/effects/passthrough_effect.cc
+++ b/src/effects/passthrough_effect.cc
diff --git a/src/gpu/effects/rotating_cube_effect.cc b/src/effects/rotating_cube_effect.cc
index 96b02f1..a42feaa 100644
--- a/src/gpu/effects/rotating_cube_effect.cc
+++ b/src/effects/rotating_cube_effect.cc
@@ -2,10 +2,10 @@
// It implements RotatingCubeEffect for bump-mapped rotating cube rendering.
// Uses auxiliary texture masking to render only inside a circular region.
-#include "gpu/effects/rotating_cube_effect.h"
+#include "effects/rotating_cube_effect.h"
#include "generated/assets.h"
#include "gpu/bind_group_builder.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "gpu/gpu.h"
#include "gpu/sampler_cache.h"
#include "util/asset_manager_utils.h"
@@ -39,7 +39,7 @@ void RotatingCubeEffect::init(MainSequence* demo) {
TextureWithView noise = gpu_create_texture_2d(
ctx_.device, 1, 1, WGPUTextureFormat_RGBA8Unorm,
- WGPUTextureUsage_TextureBinding | WGPUTextureUsage_RenderAttachment, 1);
+ (WGPUTextureUsage)(WGPUTextureUsage_TextureBinding | WGPUTextureUsage_RenderAttachment), 1);
noise_texture_ = noise.texture;
noise_view_ = noise.view;
diff --git a/src/gpu/effects/rotating_cube_effect.h b/src/effects/rotating_cube_effect.h
index fdf67ab..fdf67ab 100644
--- a/src/gpu/effects/rotating_cube_effect.h
+++ b/src/effects/rotating_cube_effect.h
diff --git a/src/gpu/effects/scene1_effect.cc b/src/effects/scene1_effect.cc
index c75e511..c75e511 100644
--- a/src/gpu/effects/scene1_effect.cc
+++ b/src/effects/scene1_effect.cc
diff --git a/src/gpu/effects/scene1_effect.h b/src/effects/scene1_effect.h
index 190ffa9..190ffa9 100644
--- a/src/gpu/effects/scene1_effect.h
+++ b/src/effects/scene1_effect.h
diff --git a/src/gpu/effects/solarize_effect.cc b/src/effects/solarize_effect.cc
index cdb9354..cdb9354 100644
--- a/src/gpu/effects/solarize_effect.cc
+++ b/src/effects/solarize_effect.cc
diff --git a/src/gpu/effects/theme_modulation_effect.cc b/src/effects/theme_modulation_effect.cc
index aff6bce..1c81d79 100644
--- a/src/gpu/effects/theme_modulation_effect.cc
+++ b/src/effects/theme_modulation_effect.cc
@@ -1,9 +1,9 @@
// This file is part of the 64k demo project.
// It implements theme modulation (bright/dark alternation).
-#include "gpu/effects/theme_modulation_effect.h"
-#include "gpu/effects/post_process_helper.h"
-#include "gpu/effects/shaders.h"
+#include "effects/theme_modulation_effect.h"
+#include "gpu/post_process_helper.h"
+#include "gpu/shaders.h"
#include <cmath>
struct ThemeModulationParams {
diff --git a/src/gpu/effects/theme_modulation_effect.h b/src/effects/theme_modulation_effect.h
index 31e96e6..e4d4e0a 100644
--- a/src/gpu/effects/theme_modulation_effect.h
+++ b/src/effects/theme_modulation_effect.h
@@ -5,7 +5,7 @@
#pragma once
#include "gpu/effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/uniform_helper.h"
class ThemeModulationEffect : public PostProcessEffect {
diff --git a/src/gpu/effects/vignette_effect.cc b/src/effects/vignette_effect.cc
index 4b0ffe2..0e5f68f 100644
--- a/src/gpu/effects/vignette_effect.cc
+++ b/src/effects/vignette_effect.cc
@@ -2,7 +2,7 @@
// It implements the VignetteEffect.
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
VignetteEffect::VignetteEffect(const GpuContext& ctx)
diff --git a/src/gpu/demo_effects.cc b/src/gpu/demo_effects.cc
index 069d36c..3acf287 100644
--- a/src/gpu/demo_effects.cc
+++ b/src/gpu/demo_effects.cc
@@ -3,8 +3,8 @@
// Its content has been split into individual effect files and helper files.
#include "gpu/demo_effects.h"
-#include "gpu/effects/circle_mask_effect.h"
-#include "gpu/effects/rotating_cube_effect.h"
+#include "effects/circle_mask_effect.h"
+#include "effects/rotating_cube_effect.h"
// Auto-generated function to populate the timeline
void LoadTimeline(MainSequence& main_seq, WGPUDevice device, WGPUQueue queue,
diff --git a/src/gpu/demo_effects.h b/src/gpu/demo_effects.h
index d0ae748..beadafb 100644
--- a/src/gpu/demo_effects.h
+++ b/src/gpu/demo_effects.h
@@ -6,16 +6,16 @@
#include "3d/renderer.h"
#include "3d/scene.h"
#include "effect.h"
-#include "gpu/effects/circle_mask_effect.h"
-#include "gpu/effects/fade_effect.h" // FadeEffect with full definition
-#include "gpu/effects/flash_effect.h" // FlashEffect with params support
-#include "gpu/effects/post_process_helper.h"
-#include "gpu/effects/rotating_cube_effect.h"
-#include "gpu/effects/shaders.h"
-#include "gpu/effects/theme_modulation_effect.h" // ThemeModulationEffect with full definition
-#include "gpu/effects/hybrid_3d_effect.h"
-#include "gpu/effects/flash_cube_effect.h"
-#include "gpu/effects/scene1_effect.h"
+#include "effects/circle_mask_effect.h"
+#include "effects/fade_effect.h" // FadeEffect with full definition
+#include "effects/flash_effect.h" // FlashEffect with params support
+#include "gpu/post_process_helper.h"
+#include "effects/rotating_cube_effect.h"
+#include "gpu/shaders.h"
+#include "effects/theme_modulation_effect.h" // ThemeModulationEffect with full definition
+#include "effects/hybrid_3d_effect.h"
+#include "effects/flash_cube_effect.h"
+#include "effects/scene1_effect.h"
#include "gpu/gpu.h"
#include "gpu/texture_manager.h"
#include "gpu/uniform_helper.h"
@@ -180,13 +180,9 @@ class DistortEffect : public PostProcessEffect {
UniformBuffer<DistortParams> params_buffer_;
};
-// ThemeModulationEffect now defined in gpu/effects/theme_modulation_effect.h
-// (included above) FadeEffect now defined in gpu/effects/fade_effect.h
-// (included above) FlashEffect now defined in gpu/effects/flash_effect.h
-// (included above)
-#include "gpu/effects/cnn_effect.h"
-#include "gpu/effects/cnn_v2_effect.h"
+#include "effects/cnn_effect.h"
+#include "effects/cnn_v2_effect.h"
// Auto-generated functions
void LoadTimeline(MainSequence& main_seq, const GpuContext& ctx);
diff --git a/src/gpu/effect.h b/src/gpu/effect.h
index b9709a4..5d835ad 100644
--- a/src/gpu/effect.h
+++ b/src/gpu/effect.h
@@ -1,6 +1,6 @@
#pragma once
#include "gpu/gpu.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/uniform_helper.h"
#include <algorithm>
#include <map>
diff --git a/src/gpu/gpu.cc b/src/gpu/gpu.cc
index afbba90..929a063 100644
--- a/src/gpu/gpu.cc
+++ b/src/gpu/gpu.cc
@@ -4,8 +4,8 @@
#include "gpu.h"
#include "effect.h"
-#include "gpu/effects/shaders.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shaders.h"
+#include "gpu/shader_composer.h"
#include "platform/platform.h"
#include <cassert>
@@ -81,7 +81,7 @@ TextureWithView gpu_create_storage_texture_2d(WGPUDevice device, uint32_t width,
WGPUTextureFormat format) {
return gpu_create_texture_2d(
device, width, height, format,
- WGPUTextureUsage_StorageBinding | WGPUTextureUsage_TextureBinding, 1);
+ (WGPUTextureUsage)(WGPUTextureUsage_StorageBinding | WGPUTextureUsage_TextureBinding), 1);
}
TextureWithView gpu_create_post_process_texture(WGPUDevice device,
@@ -89,8 +89,7 @@ TextureWithView gpu_create_post_process_texture(WGPUDevice device,
WGPUTextureFormat format) {
return gpu_create_texture_2d(
device, width, height, format,
- WGPUTextureUsage_RenderAttachment | WGPUTextureUsage_TextureBinding |
- WGPUTextureUsage_CopySrc,
+ (WGPUTextureUsage)(WGPUTextureUsage_RenderAttachment | WGPUTextureUsage_TextureBinding | WGPUTextureUsage_CopySrc),
1);
}
diff --git a/src/gpu/pipeline_builder.h b/src/gpu/pipeline_builder.h
index 06b4ceb..68e34ea 100644
--- a/src/gpu/pipeline_builder.h
+++ b/src/gpu/pipeline_builder.h
@@ -14,7 +14,7 @@ struct WGPUShaderModuleImpl;
typedef struct WGPUShaderModuleImpl* WGPUShaderModule;
#include "platform/platform.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
class RenderPipelineBuilder {
WGPUDevice device_;
diff --git a/src/gpu/effects/post_process_helper.cc b/src/gpu/post_process_helper.cc
index 0c339c7..4ffa9c1 100644
--- a/src/gpu/effects/post_process_helper.cc
+++ b/src/gpu/post_process_helper.cc
@@ -2,9 +2,9 @@
// It implements helper functions for post-processing effects.
#include "post_process_helper.h"
-#include "../demo_effects.h"
+#include "demo_effects.h"
#include "gpu/gpu.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "gpu/bind_group_builder.h"
#include "gpu/sampler_cache.h"
#include "gpu/pipeline_builder.h"
diff --git a/src/gpu/effects/post_process_helper.h b/src/gpu/post_process_helper.h
index 1c649e7..1c649e7 100644
--- a/src/gpu/effects/post_process_helper.h
+++ b/src/gpu/post_process_helper.h
diff --git a/src/gpu/effects/shader_composer.cc b/src/gpu/shader_composer.cc
index 9234b7a..fce6de4 100644
--- a/src/gpu/effects/shader_composer.cc
+++ b/src/gpu/shader_composer.cc
@@ -1,7 +1,7 @@
// This file is part of the 64k demo project.
// It implements the ShaderComposer class.
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include <set>
#include <sstream>
diff --git a/src/gpu/effects/shader_composer.h b/src/gpu/shader_composer.h
index d0972f2..d0972f2 100644
--- a/src/gpu/effects/shader_composer.h
+++ b/src/gpu/shader_composer.h
diff --git a/src/gpu/effects/shaders.cc b/src/gpu/shaders.cc
index d79f3d3..903b96e 100644
--- a/src/gpu/effects/shaders.cc
+++ b/src/gpu/shaders.cc
@@ -1,7 +1,7 @@
// This file is part of the 64k demo project.
// It defines WGSL shader code for various effects.
-#include "../demo_effects.h"
+#include "demo_effects.h"
#if defined(USE_TEST_ASSETS)
@@ -13,7 +13,7 @@
#endif
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "util/asset_manager.h"
diff --git a/src/gpu/effects/shaders.h b/src/gpu/shaders.h
index 03fa48c..03fa48c 100644
--- a/src/gpu/effects/shaders.h
+++ b/src/gpu/shaders.h
diff --git a/src/gpu/texture_manager.cc b/src/gpu/texture_manager.cc
index d5821ee..7889283 100644
--- a/src/gpu/texture_manager.cc
+++ b/src/gpu/texture_manager.cc
@@ -2,7 +2,7 @@
// It implements the TextureManager.
#include "gpu/texture_manager.h"
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include "platform/platform.h"
#include <cstdio>
#include <cstring>
diff --git a/src/tests/3d/test_3d_physics.cc b/src/tests/3d/test_3d_physics.cc
index 9b8bf11..9e4f71b 100644
--- a/src/tests/3d/test_3d_physics.cc
+++ b/src/tests/3d/test_3d_physics.cc
@@ -8,7 +8,7 @@
#include "3d/renderer.h"
#include "3d/renderer_helpers.h"
#include "3d/scene.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/shaders.h"
#include "gpu/texture_manager.h"
#include "platform/platform.h"
#include "procedural/generator.h"
diff --git a/src/tests/3d/test_3d_render.cc b/src/tests/3d/test_3d_render.cc
index 87d7b76..10de907 100644
--- a/src/tests/3d/test_3d_render.cc
+++ b/src/tests/3d/test_3d_render.cc
@@ -7,7 +7,7 @@
#include "3d/renderer_helpers.h"
#include "3d/scene.h"
#include "generated/assets.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/shaders.h"
#include "gpu/texture_manager.h"
#include "platform/platform.h"
#include "procedural/generator.h"
diff --git a/src/tests/3d/test_mesh.cc b/src/tests/3d/test_mesh.cc
index 4a1d97b..d4ce097 100644
--- a/src/tests/3d/test_mesh.cc
+++ b/src/tests/3d/test_mesh.cc
@@ -6,7 +6,7 @@
#include "3d/renderer.h"
#include "3d/renderer_helpers.h"
#include "3d/scene.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/shaders.h"
#include "gpu/texture_manager.h"
#include "platform/platform.h"
#include "procedural/generator.h"
diff --git a/src/tests/gpu/test_demo_effects.cc b/src/tests/gpu/test_demo_effects.cc
index 169db91..7c61691 100644
--- a/src/tests/gpu/test_demo_effects.cc
+++ b/src/tests/gpu/test_demo_effects.cc
@@ -13,7 +13,7 @@
#include "../common/effect_test_helpers.h"
#include "gpu/demo_effects.h"
#include "gpu/effect.h"
-#include "gpu/effects/cnn_effect.h"
+#include "effects/cnn_effect.h"
#include "../common/webgpu_test_fixture.h"
#include <cassert>
#include <cstdio>
diff --git a/src/tests/gpu/test_noise_functions.cc b/src/tests/gpu/test_noise_functions.cc
index f8dfc93..eddd88e 100644
--- a/src/tests/gpu/test_noise_functions.cc
+++ b/src/tests/gpu/test_noise_functions.cc
@@ -2,8 +2,8 @@
// It validates that the noise.wgsl functions are accessible and usable.
#include "generated/assets.h"
-#include "gpu/effects/shader_composer.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/shader_composer.h"
+#include "gpu/shaders.h"
#include <cassert>
#include <cstdio>
#include <cstring>
diff --git a/src/tests/gpu/test_shader_compilation.cc b/src/tests/gpu/test_shader_compilation.cc
index a322e8a..3a7c2cf 100644
--- a/src/tests/gpu/test_shader_compilation.cc
+++ b/src/tests/gpu/test_shader_compilation.cc
@@ -6,8 +6,8 @@
// - Type mismatches
#include "generated/assets.h"
-#include "gpu/effects/shader_composer.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/shader_composer.h"
+#include "gpu/shaders.h"
#include "platform/platform.h"
#include <cassert>
#include <cstdio>
diff --git a/src/tests/gpu/test_shader_composer.cc b/src/tests/gpu/test_shader_composer.cc
index a98a259..a23d6fa 100644
--- a/src/tests/gpu/test_shader_composer.cc
+++ b/src/tests/gpu/test_shader_composer.cc
@@ -1,7 +1,7 @@
// This file is part of the 64k demo project.
// It tests the ShaderComposer utility.
-#include "gpu/effects/shader_composer.h"
+#include "gpu/shader_composer.h"
#include <cassert>
#include <iostream>
#include <string>
diff --git a/tools/cnn_test.cc b/tools/cnn_test.cc
index 1d736d9..740f41d 100644
--- a/tools/cnn_test.cc
+++ b/tools/cnn_test.cc
@@ -11,10 +11,10 @@
#include "gpu/pipeline_builder.h"
#include "gpu/sampler_cache.h"
#include "gpu/texture_readback.h"
-#include "gpu/effects/post_process_helper.h"
-#include "gpu/effects/cnn_effect.h"
-#include "gpu/effects/shader_composer.h"
-#include "gpu/effects/shaders.h"
+#include "gpu/post_process_helper.h"
+#include "effects/cnn_effect.h"
+#include "gpu/shader_composer.h"
+#include "gpu/shaders.h"
#include "tests/common/webgpu_test_fixture.h"
#include "tests/common/offscreen_render_target.h"
#include "generated/assets.h"
diff --git a/tools/cnn_v2_test/README.md b/tools/cnn_v2_test/README.md
index b9439e5..d41a00f 100644
--- a/tools/cnn_v2_test/README.md
+++ b/tools/cnn_v2_test/README.md
@@ -248,4 +248,4 @@ Planned enhancements:
- `doc/CNN_V2.md` - Architecture and design
- `doc/HOWTO.md` - Training workflows
- `training/export_cnn_v2_weights.py` - Binary format
-- `src/gpu/effects/cnn_v2_effect.cc` - C++ reference implementation
+- `src/effects/cnn_v2_effect.cc` - C++ reference implementation
diff --git a/tools/shadertoy/README.md b/tools/shadertoy/README.md
index 283a65f..1ce42e8 100644
--- a/tools/shadertoy/README.md
+++ b/tools/shadertoy/README.md
@@ -44,8 +44,8 @@ EOF
# Choose effect name (e.g., "tunnel", "plasma", "warp")
EFFECT_NAME="myeffect"
-cp tools/shadertoy/template.h src/gpu/effects/${EFFECT_NAME}_effect.h
-cp tools/shadertoy/template.cc src/gpu/effects/${EFFECT_NAME}_effect.cc
+cp tools/shadertoy/template.h src/effects/${EFFECT_NAME}_effect.h
+cp tools/shadertoy/template.cc src/effects/${EFFECT_NAME}_effect.cc
cp tools/shadertoy/template.wgsl workspaces/main/shaders/${EFFECT_NAME}.wgsl
```
@@ -94,7 +94,7 @@ shaders/myeffect.wgsl
In `src/gpu/demo_effects.h`:
```cpp
-#include "gpu/effects/myeffect_effect.h"
+#include "effects/myeffect_effect.h"
```
In `workspaces/main/timeline.seq`:
@@ -107,7 +107,7 @@ SEQUENCE 0.0 0
Add effect source to `CMakeLists.txt` GPU_SOURCES (both headless and normal mode sections):
```cmake
-src/gpu/effects/myeffect_effect.cc
+src/effects/myeffect_effect.cc
```
### 8. Update Tests
@@ -201,4 +201,4 @@ Always available in `uniforms: CommonUniforms`:
- See `doc/CONTRIBUTING.md` for commit policy
- See `doc/SEQUENCE.md` for timeline syntax
-- See existing effects in `src/gpu/effects/` for examples
+- See existing effects in `src/effects/` for examples
diff --git a/tools/shadertoy/convert_shadertoy.py b/tools/shadertoy/convert_shadertoy.py
index e85f384..ad4c310 100755
--- a/tools/shadertoy/convert_shadertoy.py
+++ b/tools/shadertoy/convert_shadertoy.py
@@ -10,8 +10,8 @@
# ./tools/shadertoy/convert_shadertoy.py tools/shadertoy/example.txt Rainbow
#
# Generates:
-# - src/gpu/effects/<effect>_effect.h
-# - src/gpu/effects/<effect>_effect.cc
+# - src/effects/<effect>_effect.h
+# - src/effects/<effect>_effect.cc
# - workspaces/main/shaders/<effect>.wgsl
#
# The script performs basic ShaderToy→WGSL conversion:
@@ -150,7 +150,7 @@ def generate_header(effect_name, is_post_process=False):
#define {upper_name}_EFFECT_H_
#include "gpu/effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
class {class_name} : public PostProcessEffect {{
public:
@@ -197,7 +197,7 @@ def generate_implementation(effect_name, is_post_process=False):
// Generated by convert_shadertoy.py
#include "gpu/demo_effects.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/gpu.h"
{class_name}::{class_name}(const GpuContext& ctx) : PostProcessEffect(ctx) {{
@@ -309,8 +309,8 @@ def main():
print(" --shader-only Only regenerate .wgsl shader (skip .h/.cc files)")
print()
print("This will generate:")
- print(" src/gpu/effects/<effect>_effect.h")
- print(" src/gpu/effects/<effect>_effect.cc")
+ print(" src/effects/<effect>_effect.h")
+ print(" src/effects/<effect>_effect.cc")
print(" workspaces/main/shaders/<effect>.wgsl")
sys.exit(1)
@@ -370,20 +370,20 @@ def main():
print(f" SHADER_{upper_name}, NONE, shaders/{snake_name}.wgsl, \"{effect_name} effect\"")
print()
print()
- print("2. Add shader declaration to src/gpu/effects/shaders.h:")
+ print("2. Add shader declaration to src/gpu/shaders.h:")
print(f" extern const char* {snake_name}_shader_wgsl;")
print()
- print("3. Add shader definition to src/gpu/effects/shaders.cc:")
+ print("3. Add shader definition to src/gpu/shaders.cc:")
print(f" const char* {snake_name}_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_{upper_name});")
print()
print("4. Include header in src/gpu/demo_effects.h:")
- print(f' #include "gpu/effects/{snake_name}_effect.h"')
+ print(f' #include "effects/{snake_name}_effect.h"')
print()
print("5. Add to timeline in workspaces/main/timeline.seq:")
print(f" EFFECT + {effect_name}Effect 0.0 10.0")
print()
print("6. Add to CMakeLists.txt GPU_SOURCES (both headless and normal mode):")
- print(f" src/gpu/effects/{snake_name}_effect.cc")
+ print(f" src/effects/{snake_name}_effect.cc")
print()
print("7. Update src/tests/gpu/test_demo_effects.cc:")
test_list = "post_process_effects" if is_post_process else "scene_effects"
diff --git a/tools/shadertoy/template.cc b/tools/shadertoy/template.cc
index 288283d..35c9b10 100644
--- a/tools/shadertoy/template.cc
+++ b/tools/shadertoy/template.cc
@@ -2,8 +2,8 @@
// ShaderToy effect implementation - REPLACE THIS LINE
// TODO: Update description, rename class
-#include "gpu/effects/shadertoy_effect.h"
-#include "gpu/effects/shader_composer.h"
+#include "effects/shadertoy_effect.h"
+#include "gpu/shader_composer.h"
#include "generated/assets.h"
// TODO: Rename class and adjust constructor parameters
diff --git a/tools/shadertoy/template.h b/tools/shadertoy/template.h
index 2e4af5f..82f8b39 100644
--- a/tools/shadertoy/template.h
+++ b/tools/shadertoy/template.h
@@ -6,7 +6,7 @@
#define SHADERTOY_EFFECT_H_
#include "gpu/effect.h"
-#include "gpu/effects/post_process_helper.h"
+#include "gpu/post_process_helper.h"
#include "gpu/uniform_helper.h"
// TODO: Rename class to match your effect (e.g., TunnelEffect, PlasmaEffect)