File tree Expand file tree Collapse file tree 1 file changed +55
-3
lines changed Expand file tree Collapse file tree 1 file changed +55
-3
lines changed Original file line number Diff line number Diff line change 1
- import { ToneMappingEffect } from 'postprocessing'
2
- import { wrapEffect } from '../util'
1
+ import { ToneMappingEffect , EffectAttribute } from 'postprocessing'
2
+ import { EffectProps } from '../util'
3
+ import { forwardRef , useEffect , useMemo } from 'react'
3
4
4
- export const ToneMapping = wrapEffect ( ToneMappingEffect )
5
+ export type ToneMappingProps = EffectProps < typeof ToneMappingEffect >
6
+
7
+ export const ToneMapping = forwardRef < ToneMappingEffect , ToneMappingProps > ( function ToneMapping (
8
+ {
9
+ blendFunction,
10
+ adaptive,
11
+ mode,
12
+ resolution,
13
+ maxLuminance,
14
+ whitePoint,
15
+ middleGrey,
16
+ minLuminance,
17
+ averageLuminance,
18
+ adaptationRate,
19
+ ...props
20
+ } ,
21
+ ref
22
+ ) {
23
+ const effect = useMemo (
24
+ ( ) =>
25
+ new ToneMappingEffect ( {
26
+ blendFunction,
27
+ adaptive,
28
+ mode,
29
+ resolution,
30
+ maxLuminance,
31
+ whitePoint,
32
+ middleGrey,
33
+ minLuminance,
34
+ averageLuminance,
35
+ adaptationRate,
36
+ } ) ,
37
+ [
38
+ blendFunction ,
39
+ adaptive ,
40
+ mode ,
41
+ resolution ,
42
+ maxLuminance ,
43
+ whitePoint ,
44
+ middleGrey ,
45
+ minLuminance ,
46
+ averageLuminance ,
47
+ adaptationRate ,
48
+ ]
49
+ )
50
+
51
+ useEffect ( ( ) => {
52
+ effect . dispose ( )
53
+ } , [ effect ] )
54
+
55
+ return < primitive { ...props } ref = { ref } object = { effect } attributes = { EffectAttribute . CONVOLUTION } />
56
+ } )
You can’t perform that action at this time.
0 commit comments