summaryrefslogtreecommitdiff
path: root/doc/HOWTO.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/HOWTO.md')
-rw-r--r--doc/HOWTO.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/HOWTO.md b/doc/HOWTO.md
index 3a1aee2..55580ba 100644
--- a/doc/HOWTO.md
+++ b/doc/HOWTO.md
@@ -158,6 +158,44 @@ void test_example() {
For low-level synth-only tests, you can still call `synth_init()` directly.
+## Auxiliary Texture Masking
+
+The project supports inter-effect texture sharing via the auxiliary texture registry. This allows effects to generate textures (masks, shadow maps, etc.) and make them available to other effects within the same frame.
+
+**Common use case:** Screen-space partitioning where different scenes render to complementary regions.
+
+```cpp
+class MaskGeneratorEffect : public Effect {
+ void init(MainSequence* demo) override {
+ demo_ = demo;
+ // Register a named auxiliary texture
+ demo->register_auxiliary_texture("my_mask", width_, height_);
+ }
+
+ void compute(WGPUCommandEncoder encoder, ...) override {
+ // Generate mask to auxiliary texture
+ WGPUTextureView mask_view = demo_->get_auxiliary_view("my_mask");
+ // ... render mask
+ }
+
+ void render(WGPURenderPassEncoder pass, ...) override {
+ // Use mask in scene rendering
+ WGPUTextureView mask_view = demo_->get_auxiliary_view("my_mask");
+ // ... render scene with mask
+ }
+};
+
+class MaskUserEffect : public Effect {
+ void render(WGPURenderPassEncoder pass, ...) override {
+ // Reuse mask from MaskGeneratorEffect
+ WGPUTextureView mask_view = demo_->get_auxiliary_view("my_mask");
+ // ... render scene with inverted mask
+ }
+};
+```
+
+See `doc/MASKING_SYSTEM.md` for detailed architecture and examples.
+
## Debugging
### Seeking / Fast-Forward