summaryrefslogtreecommitdiff
path: root/src/gpu/effects
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-09 14:28:46 +0100
committerskal <pascal.massimino@gmail.com>2026-02-09 14:28:46 +0100
commit9bb5fd64776ac8a7e4b012ac2de340ddfa09a2c9 (patch)
tree79b99e6196ca70df8ddf3b9b0809ea5770ee0280 /src/gpu/effects
parent8d6f14793a1edc34644297e2b24248c00bbff3be (diff)
feat: GPU procedural Phase 4 - texture composition
Multi-input composite shaders with sampler support. - Dynamic bind group layouts (N input textures + 1 sampler) - dispatch_composite() for multi-input compute dispatch - create_gpu_composite_texture() API - gen_blend.wgsl and gen_mask.wgsl shaders Guarded with #if !defined(STRIP_GPU_COMPOSITE) for easy removal. Tests: - Blend two noise textures - Mask noise with grid - Multi-stage composite (composite of composites) Size: ~830 bytes (2 shaders + dispatch logic) handoff(Claude): GPU procedural Phase 4 complete
Diffstat (limited to 'src/gpu/effects')
-rw-r--r--src/gpu/effects/shaders.cc10
-rw-r--r--src/gpu/effects/shaders.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/gpu/effects/shaders.cc b/src/gpu/effects/shaders.cc
index 6ed82d5..625c5b6 100644
--- a/src/gpu/effects/shaders.cc
+++ b/src/gpu/effects/shaders.cc
@@ -111,6 +111,16 @@ const char* gen_grid_compute_wgsl =
SafeGetAsset(AssetId::ASSET_SHADER_COMPUTE_GEN_GRID);
+#if !defined(STRIP_GPU_COMPOSITE)
+const char* gen_blend_compute_wgsl =
+
+ SafeGetAsset(AssetId::ASSET_SHADER_COMPUTE_GEN_BLEND);
+
+const char* gen_mask_compute_wgsl =
+
+ SafeGetAsset(AssetId::ASSET_SHADER_COMPUTE_GEN_MASK);
+#endif
+
const char* vignette_shader_wgsl =
SafeGetAsset(AssetId::ASSET_SHADER_VIGNETTE);
diff --git a/src/gpu/effects/shaders.h b/src/gpu/effects/shaders.h
index a0f91da..68b8834 100644
--- a/src/gpu/effects/shaders.h
+++ b/src/gpu/effects/shaders.h
@@ -21,3 +21,7 @@ extern const char* vignette_shader_wgsl;
extern const char* gen_noise_compute_wgsl;
extern const char* gen_perlin_compute_wgsl;
extern const char* gen_grid_compute_wgsl;
+#if !defined(STRIP_GPU_COMPOSITE)
+extern const char* gen_blend_compute_wgsl;
+extern const char* gen_mask_compute_wgsl;
+#endif