import { loadImage, loadText, makePassFBO, makePass } 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");
	const render = regl({
		frag: regl.prop("frag"),
		uniforms: {
			quiltTexture: inputs.primary,
			...lkg,
		},
		framebuffer: output,
	});
	return makePass(
		{
			primary: output,
		},
		Promise.all([quiltPassFrag.loaded]),
		(w, h) => output.resize(w, h),
		(shouldRender) => {
			if (shouldRender) {
				render({ frag: quiltPassFrag.text() });
			}
		}
	);
};
