summaryrefslogtreecommitdiff
path: root/doc/UNIFORM_BUFFER_GUIDELINES.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-07 19:02:07 +0100
committerskal <pascal.massimino@gmail.com>2026-03-07 19:02:07 +0100
commite4851ae9f310b44dab25eb979733281002c8953d (patch)
treeee93eb4f2890acfac37a52ca204081783fa46b2e /doc/UNIFORM_BUFFER_GUIDELINES.md
parent95802739b8ccaf9112fe4fe6e496ba7ae4158aae (diff)
refactor(effects): introduce WgslEffect for shader-only post-process effects
Replace boilerplate .h/.cc pairs for simple single-pass effects with a generic WgslEffect base class that takes a shader string + optional WgslEffectParams (binding 3). Port Flash, Passthrough, Heptagon, Scratch, and GaussianBlur to thin header-only wrappers — no .cc files, no CMake entries needed. Removes 5 .cc files (-243 lines). Update EFFECT_WORKFLOW.md, CONTRIBUTING.md, and AI_RULES.md to document the WgslEffect (Path A) vs full class (Path B) workflow. Doc cleanup: fix stale GaussianBlurParams/PostProcessEffect references and test counts. handoff(Claude): WgslEffect landed; 5 effects ported; docs updated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'doc/UNIFORM_BUFFER_GUIDELINES.md')
-rw-r--r--doc/UNIFORM_BUFFER_GUIDELINES.md12
1 files changed, 6 insertions, 6 deletions
diff --git a/doc/UNIFORM_BUFFER_GUIDELINES.md b/doc/UNIFORM_BUFFER_GUIDELINES.md
index c6cf9c8..45c7df3 100644
--- a/doc/UNIFORM_BUFFER_GUIDELINES.md
+++ b/doc/UNIFORM_BUFFER_GUIDELINES.md
@@ -97,15 +97,15 @@ static_assert(sizeof(CommonPostProcessUniforms) == 32,
"CommonPostProcessUniforms must be 32 bytes for WGSL alignment");
```
-**Example (C++ GaussianBlurParams):**
+**Example (C++ WgslEffectParams — generic params for WgslEffect thin wrappers):**
```cpp
-struct GaussianBlurParams {
- float strength = 2.0f;
- float _pad = 0.0f;
+struct WgslEffectParams {
+ float p[4]; // vec4: generic float params (strength, scale, etc.)
+ float c[4]; // vec4: color or secondary params
};
-static_assert(sizeof(GaussianBlurParams) == 8,
- "GaussianBlurParams must be 8 bytes for WGSL alignment");
+static_assert(sizeof(WgslEffectParams) == 32,
+ "WgslEffectParams must be 32 bytes");
```
**Example (C++ CameraParams):**