forked from Rezmason/matrix
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquiltPass.js
More file actions
38 lines (35 loc) · 899 Bytes
/
Copy pathquiltPass.js
File metadata and controls
38 lines (35 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { fullscreenQuadReglBase, loadText, makePassFBO, makePass, requireShaderString } from "./utils.js";
// Multiplies the rendered rain and bloom by a loaded in image
export default ({ regl, config, lkg }, inputs) => {
if (!lkg.enabled) {
return makePass({
primary: inputs.primary,
});
}
const output = makePassFBO(regl, config.useHalfFloat);
const quiltPassFrag = loadText("shaders/glsl/quiltPass.frag.glsl");
let render;
const programsReady = quiltPassFrag.loaded.then(() => {
render = regl({
...fullscreenQuadReglBase,
frag: requireShaderString("quiltPass.frag", () => quiltPassFrag.text()),
uniforms: {
quiltTexture: inputs.primary,
...lkg,
},
framebuffer: output,
});
});
return makePass(
{
primary: output,
},
programsReady,
(w, h) => output.resize(w, h),
(shouldRender) => {
if (shouldRender) {
render({});
}
},
);
};