From 7922c7a7e3bd024abb773ff1f46b3a10ce89cff8 Mon Sep 17 00:00:00 2001 From: Yves Torres Date: Fri, 4 Oct 2024 08:19:30 +0200 Subject: [PATCH] Update EffectComposer.tsx with current canvas output size get current canvas output size and set composer size to this. Required to work with Drei's View.tsx, see --- src/EffectComposer.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/EffectComposer.tsx b/src/EffectComposer.tsx index cc3db74..32c559c 100644 --- a/src/EffectComposer.tsx +++ b/src/EffectComposer.tsx @@ -1,5 +1,5 @@ import type { TextureDataType } from 'three' -import { HalfFloatType, NoToneMapping } from 'three' +import { HalfFloatType, NoToneMapping, Vector2 } from 'three' import React, { forwardRef, useMemo, @@ -48,6 +48,8 @@ export type EffectComposerProps = { scene?: THREE.Scene } +const glSize = new Vector2(); + const isConvolution = (effect: Effect): boolean => (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION @@ -114,7 +116,9 @@ export const EffectComposer = React.memo( resolutionScale, ]) - useEffect(() => composer?.setSize(size.width, size.height), [composer, size]) + gl.getSize(glSize); + + useEffect(() => composer.setSize(glSize.width, glSize.height), [composer, glSize.width, glSize.height]) useFrame( (_, delta) => { if (enabled) {