Skip to content

Commit 9753b7d

Browse files
committed
fix: wrong before/after hooks in useWebGLCanvas
1 parent bc5a05e commit 9753b7d

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/src/hooks/useCompositor.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { createRenderTarget } from "../core/renderTarget";
22
import { findUniformName } from "../internal/findName";
3+
import { useHook } from "../internal/useHook";
34
import type { CompositeEffectPass, EffectPass, RenderPass } from "../types";
45
import { floatTargetConfig } from "./useEffectPass";
56

@@ -18,6 +19,9 @@ export function useCompositor(
1819
// add the ability to render to floating-point buffers
1920
gl.getExtension("EXT_color_buffer_float");
2021

22+
const [onBeforeRender, executeBeforeRenderCallbacks] = useHook();
23+
const [onAfterRender, executeAfterRenderCallbacks] = useHook();
24+
2125
if (effects.length > 0 && renderPass.target === null) {
2226
renderPass.setTarget(createRenderTarget(gl, floatTargetConfig));
2327
}
@@ -47,9 +51,11 @@ export function useCompositor(
4751
const allPasses = [renderPass, ...effects];
4852

4953
function render() {
54+
executeBeforeRenderCallbacks();
5055
for (const pass of allPasses) {
5156
pass.render();
5257
}
58+
executeAfterRenderCallbacks();
5359
}
5460

5561
function setSize(size: { width: number; height: number }) {
@@ -58,7 +64,7 @@ export function useCompositor(
5864
}
5965
}
6066

61-
return { render, setSize, allPasses };
67+
return { render, setSize, allPasses, onBeforeRender, onAfterRender };
6268
}
6369

6470
function isCompositeEffectPass(

lib/src/hooks/useWebGLCanvas.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ export const useWebGLCanvas = <U extends Uniforms>(props: Props<U>) => {
150150
dpr,
151151
uniforms: renderPass.uniforms,
152152
onUpdated: renderPass.onUpdated,
153-
onBeforeRender: renderPass.onBeforeRender,
154-
onAfterRender: renderPass.onAfterRender,
153+
onBeforeRender: compositor.onBeforeRender,
154+
onAfterRender: compositor.onAfterRender,
155155
resizeObserver,
156156
};
157157
};

0 commit comments

Comments
 (0)