; engawa-wgpu effect catalog — grain (luma-only paper-grain
; "tooth", applied last so it sits on top of everything).
;
; params-size is the bind contract for the params uniform —
; tests/catalog_matrix.rs reads this file and asserts
; size_of::<GrainParams>() matches. Layout (8 × f32 = 32 bytes):
; resolution = (width, height)
; opacity (luma-jitter amplitude, 0 = pass-through)
; scale (grain-cell scale multiplier)
; time (seconds; quantized to ~5 updates/sec in-shader)
; _pad (3 × f32 → 16-byte alignment)
(defeffect grain
(priority 750)
(params-size 32)
(params-resource "grain:params")
(bindings
(binding 0 texture "scene")
(binding 1 sampler "catalog:sampler")
(binding 2 uniform "grain:params")))