From 24e794ba0d1f0d05f17fe460f1e9f0d8b38c80f4 Mon Sep 17 00:00:00 2001 From: Cody Bennett <23324155+CodyJasonBennett@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:26:01 -0500 Subject: [PATCH] fix(ToneMapping): configure as convolution effect --- src/effects/ToneMapping.tsx | 58 +++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/src/effects/ToneMapping.tsx b/src/effects/ToneMapping.tsx index 833a4c88..54668cfa 100644 --- a/src/effects/ToneMapping.tsx +++ b/src/effects/ToneMapping.tsx @@ -1,4 +1,56 @@ -import { ToneMappingEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { ToneMappingEffect, EffectAttribute } from 'postprocessing' +import { EffectProps } from '../util' +import { forwardRef, useEffect, useMemo } from 'react' -export const ToneMapping = wrapEffect(ToneMappingEffect) +export type ToneMappingProps = EffectProps + +export const ToneMapping = forwardRef(function ToneMapping( + { + blendFunction, + adaptive, + mode, + resolution, + maxLuminance, + whitePoint, + middleGrey, + minLuminance, + averageLuminance, + adaptationRate, + ...props + }, + ref +) { + const effect = useMemo( + () => + new ToneMappingEffect({ + blendFunction, + adaptive, + mode, + resolution, + maxLuminance, + whitePoint, + middleGrey, + minLuminance, + averageLuminance, + adaptationRate, + }), + [ + blendFunction, + adaptive, + mode, + resolution, + maxLuminance, + whitePoint, + middleGrey, + minLuminance, + averageLuminance, + adaptationRate, + ] + ) + + useEffect(() => { + effect.dispose() + }, [effect]) + + return +})