@react-three/postprocessing 2.5.1 → 2.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { BloomEffect, BlendFunction } from 'postprocessing';
3
3
  export declare const Bloom: import("react").ForwardRefExoticComponent<{
4
+ mipmapBlur?: boolean;
5
+ radius?: number;
6
+ levels?: number;
4
7
  blendFunction?: BlendFunction;
5
8
  luminanceThreshold?: number;
6
9
  luminanceSmoothing?: number;
package/dist/index.cjs CHANGED
@@ -10,7 +10,6 @@ var fiber = require('@react-three/fiber');
10
10
  var _extends = require('@babel/runtime/helpers/extends');
11
11
  var _construct = require('@babel/runtime/helpers/construct');
12
12
  var threeStdlib = require('three-stdlib');
13
- var mergeRefs = require('react-merge-refs');
14
13
  var screenSpaceReflections = require('screen-space-reflections');
15
14
 
16
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -19,9 +18,8 @@ var _objectWithoutPropertiesLoose__default = /*#__PURE__*/_interopDefaultLegacy(
19
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
19
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
21
20
  var _construct__default = /*#__PURE__*/_interopDefaultLegacy(_construct);
22
- var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
23
21
 
24
- var _excluded$8 = ["blendFunction", "opacity"];
22
+ var _excluded$9 = ["blendFunction", "opacity"];
25
23
 
26
24
  var isRef = function isRef(ref) {
27
25
  return !!ref.current;
@@ -38,7 +36,7 @@ var wrapEffect = function wrapEffect(effectImpl, defaultBlendMode) {
38
36
  return /*#__PURE__*/React.forwardRef(function Wrap(_ref, ref) {
39
37
  var blendFunction = _ref.blendFunction,
40
38
  opacity = _ref.opacity,
41
- props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$8);
39
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$9);
42
40
 
43
41
  var invalidate = fiber.useThree(function (state) {
44
42
  return state.invalidate;
@@ -225,11 +223,11 @@ var EffectComposer = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/R
225
223
  }, children));
226
224
  }));
227
225
 
228
- var _excluded$7 = ["target", "depthTexture"];
226
+ var _excluded$8 = ["target", "depthTexture"];
229
227
  var DepthOfField = /*#__PURE__*/React.forwardRef(function DepthOfField(_ref, ref) {
230
228
  var target = _ref.target,
231
229
  depthTexture = _ref.depthTexture,
232
- props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$7);
230
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$8);
233
231
 
234
232
  var invalidate = fiber.useThree(function (state) {
235
233
  return state.invalidate;
@@ -259,11 +257,11 @@ var DepthOfField = /*#__PURE__*/React.forwardRef(function DepthOfField(_ref, ref
259
257
 
260
258
  var DotScreen = wrapEffect(postprocessing.DotScreenEffect);
261
259
 
262
- var _excluded$6 = ["active"];
260
+ var _excluded$7 = ["active"];
263
261
  var Glitch = /*#__PURE__*/React.forwardRef(function Glitch(_ref, ref) {
264
262
  var _ref$active = _ref.active,
265
263
  active = _ref$active === void 0 ? true : _ref$active,
266
- props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$6);
264
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$7);
267
265
 
268
266
  var invalidate = fiber.useThree(function (state) {
269
267
  return state.invalidate;
@@ -303,10 +301,10 @@ var GodRays = /*#__PURE__*/React.forwardRef(function GodRays(props, ref) {
303
301
  });
304
302
  });
305
303
 
306
- var _excluded$5 = ["size"];
304
+ var _excluded$6 = ["size"];
307
305
  var Grid = /*#__PURE__*/React.forwardRef(function Grid(_ref, ref) {
308
306
  var size = _ref.size,
309
- props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$5);
307
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$6);
310
308
 
311
309
  var invalidate = fiber.useThree(function (state) {
312
310
  return state.invalidate;
@@ -329,7 +327,7 @@ var HueSaturation = wrapEffect(postprocessing.HueSaturationEffect);
329
327
 
330
328
  var Noise = wrapEffect(postprocessing.NoiseEffect, postprocessing.BlendFunction.COLOR_DODGE);
331
329
 
332
- var _excluded$4 = ["enabled", "children"];
330
+ var _excluded$5 = ["enabled", "children"];
333
331
  var selectionContext = /*#__PURE__*/React.createContext(null);
334
332
  function Selection(_ref) {
335
333
  var children = _ref.children,
@@ -355,7 +353,7 @@ function Select(_ref2) {
355
353
  var _ref2$enabled = _ref2.enabled,
356
354
  enabled = _ref2$enabled === void 0 ? false : _ref2$enabled,
357
355
  children = _ref2.children,
358
- props = _objectWithoutPropertiesLoose__default["default"](_ref2, _excluded$4);
356
+ props = _objectWithoutPropertiesLoose__default["default"](_ref2, _excluded$5);
359
357
 
360
358
  var group = React.useRef(null);
361
359
  var api = React.useContext(selectionContext);
@@ -387,7 +385,7 @@ function Select(_ref2) {
387
385
  }, props), children);
388
386
  }
389
387
 
390
- var _excluded$3 = ["selection", "selectionLayer", "blendFunction", "patternTexture", "edgeStrength", "pulseSpeed", "visibleEdgeColor", "hiddenEdgeColor", "width", "height", "kernelSize", "blur", "xRay"];
388
+ var _excluded$4 = ["selection", "selectionLayer", "blendFunction", "patternTexture", "edgeStrength", "pulseSpeed", "visibleEdgeColor", "hiddenEdgeColor", "width", "height", "kernelSize", "blur", "xRay"];
391
389
  var Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef) {
392
390
  var _ref$selection = _ref.selection,
393
391
  selection = _ref$selection === void 0 ? [] : _ref$selection,
@@ -403,8 +401,8 @@ var Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef) {
403
401
  height = _ref.height,
404
402
  kernelSize = _ref.kernelSize,
405
403
  blur = _ref.blur,
406
- xRay = _ref.xRay;
407
- _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$3);
404
+ xRay = _ref.xRay,
405
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$4);
408
406
 
409
407
  var invalidate = fiber.useThree(function (state) {
410
408
  return state.invalidate;
@@ -415,7 +413,7 @@ var Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef) {
415
413
  camera = _useContext.camera;
416
414
 
417
415
  var effect = React.useMemo(function () {
418
- return new postprocessing.OutlineEffect(scene, camera, {
416
+ return new postprocessing.OutlineEffect(scene, camera, _extends__default["default"]({
419
417
  blendFunction: blendFunction,
420
418
  patternTexture: patternTexture,
421
419
  edgeStrength: edgeStrength,
@@ -427,7 +425,7 @@ var Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef) {
427
425
  kernelSize: kernelSize,
428
426
  blur: blur,
429
427
  xRay: xRay
430
- });
428
+ }, props));
431
429
  }, [blendFunction, blur, camera, edgeStrength, height, hiddenEdgeColor, kernelSize, patternTexture, pulseSpeed, scene, visibleEdgeColor, width, xRay]);
432
430
  var api = React.useContext(selectionContext);
433
431
  React.useEffect(function () {
@@ -446,27 +444,23 @@ var Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef) {
446
444
  effect.selectionLayer = selectionLayer;
447
445
  invalidate();
448
446
  }, [effect, selectionLayer]);
449
- var ref = React.useRef();
447
+ React.useRef();
450
448
  React.useEffect(function () {
451
449
  if (api && api.enabled) {
452
450
  var _api$selected;
453
451
 
454
- var _effect = ref.current;
455
-
456
452
  if ((_api$selected = api.selected) != null && _api$selected.length) {
457
- _effect.selection.set(api.selected);
458
-
453
+ effect.selection.set(api.selected);
459
454
  invalidate();
460
455
  return function () {
461
- _effect.selection.clear();
462
-
456
+ effect.selection.clear();
463
457
  invalidate();
464
458
  };
465
459
  }
466
460
  }
467
461
  }, [api]);
468
462
  return /*#__PURE__*/React__default["default"].createElement("primitive", {
469
- ref: mergeRefs__default["default"]([ref, forwardRef]),
463
+ ref: forwardRef,
470
464
  object: effect
471
465
  });
472
466
  });
@@ -488,6 +482,8 @@ var Pixelation = /*#__PURE__*/React.forwardRef(function Pixelation(_ref, ref) {
488
482
 
489
483
  var Scanline = wrapEffect(postprocessing.ScanlineEffect, postprocessing.BlendFunction.OVERLAY);
490
484
 
485
+ var _excluded$3 = ["selection", "selectionLayer", "lights", "luminanceThreshold", "luminanceSmoothing", "intensity", "width", "height", "kernelSize", "mipmapBlur", "radius", "levels"];
486
+
491
487
  var addLight = function addLight(light, effect) {
492
488
  return light.layers.enable(effect.selection.layer);
493
489
  };
@@ -508,7 +504,11 @@ var SelectiveBloom = /*#__PURE__*/React.forwardRef(function SelectiveBloom(_ref,
508
504
  intensity = _ref.intensity,
509
505
  width = _ref.width,
510
506
  height = _ref.height,
511
- kernelSize = _ref.kernelSize;
507
+ kernelSize = _ref.kernelSize,
508
+ mipmapBlur = _ref.mipmapBlur,
509
+ radius = _ref.radius,
510
+ levels = _ref.levels,
511
+ props = _objectWithoutPropertiesLoose__default["default"](_ref, _excluded$3);
512
512
 
513
513
  if (lights.length === 0) {
514
514
  console.warn('SelectiveBloom requires lights to work.');
@@ -523,16 +523,19 @@ var SelectiveBloom = /*#__PURE__*/React.forwardRef(function SelectiveBloom(_ref,
523
523
  camera = _useContext.camera;
524
524
 
525
525
  var effect = React.useMemo(function () {
526
- return new postprocessing.SelectiveBloomEffect(scene, camera, {
526
+ return new postprocessing.SelectiveBloomEffect(scene, camera, _extends__default["default"]({
527
527
  blendFunction: postprocessing.BlendFunction.SCREEN,
528
528
  luminanceThreshold: luminanceThreshold,
529
529
  luminanceSmoothing: luminanceSmoothing,
530
530
  intensity: intensity,
531
531
  width: width,
532
532
  height: height,
533
- kernelSize: kernelSize
534
- });
535
- }, [camera, height, intensity, kernelSize, luminanceSmoothing, luminanceThreshold, scene, width]);
533
+ kernelSize: kernelSize,
534
+ mipmapBlur: mipmapBlur,
535
+ radius: radius,
536
+ levels: levels
537
+ }, props));
538
+ }, [camera, height, intensity, kernelSize, luminanceSmoothing, luminanceThreshold, scene, width, height, mipmapBlur, radius, levels]);
536
539
  var api = React.useContext(selectionContext);
537
540
  React.useEffect(function () {
538
541
  // Do not allow array selection if declarative selection is active
@@ -564,27 +567,23 @@ var SelectiveBloom = /*#__PURE__*/React.forwardRef(function SelectiveBloom(_ref,
564
567
  };
565
568
  }
566
569
  }, [effect, lights, selectionLayer]);
567
- var ref = React.useRef();
570
+ React.useRef();
568
571
  React.useEffect(function () {
569
572
  if (api && api.enabled) {
570
573
  var _api$selected;
571
574
 
572
- var _effect = ref.current;
573
-
574
575
  if ((_api$selected = api.selected) != null && _api$selected.length) {
575
- _effect.selection.set(api.selected);
576
-
576
+ effect.selection.set(api.selected);
577
577
  invalidate();
578
578
  return function () {
579
- _effect.selection.clear();
580
-
579
+ effect.selection.clear();
581
580
  invalidate();
582
581
  };
583
582
  }
584
583
  }
585
584
  }, [api]);
586
585
  return /*#__PURE__*/React__default["default"].createElement("primitive", {
587
- ref: mergeRefs__default["default"]([ref, forwardRef]),
586
+ ref: forwardRef,
588
587
  object: effect,
589
588
  dispose: null
590
589
  });
@@ -729,6 +728,21 @@ var SSR = /*#__PURE__*/React.forwardRef(function SSR(_ref, ref) {
729
728
  });
730
729
  invalidate();
731
730
  }, [props]);
731
+ var api = React.useContext(selectionContext);
732
+ React.useEffect(function () {
733
+ if (api && api.enabled) {
734
+ var _api$selected;
735
+
736
+ if ((_api$selected = api.selected) != null && _api$selected.length) {
737
+ effect.selection.set(api.selected);
738
+ invalidate();
739
+ return function () {
740
+ effect.selection.clear();
741
+ invalidate();
742
+ };
743
+ }
744
+ }
745
+ }, [api]);
732
746
  return /*#__PURE__*/React__default["default"].createElement("primitive", {
733
747
  ref: ref,
734
748
  object: effect
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@ import React, { forwardRef, useMemo, useLayoutEffect, createContext, useEffect,
3
3
  import { Vector2, HalfFloatType, Vector3, TextureLoader, sRGBEncoding, RepeatWrapping } from 'three';
4
4
  import { useThree, useFrame, useLoader } from '@react-three/fiber';
5
5
  import { isWebGL2Available } from 'three-stdlib';
6
- import mergeRefs from 'react-merge-refs';
7
6
  import _extends from '@babel/runtime/helpers/esm/extends';
8
7
  import { SSREffect } from 'screen-space-reflections';
9
8
 
@@ -347,7 +346,8 @@ const Outline = /*#__PURE__*/forwardRef(function Outline(_ref, forwardRef) {
347
346
  height,
348
347
  kernelSize,
349
348
  blur,
350
- xRay
349
+ xRay,
350
+ ...props
351
351
  }), [blendFunction, blur, camera, edgeStrength, height, hiddenEdgeColor, kernelSize, patternTexture, pulseSpeed, scene, visibleEdgeColor, width, xRay]);
352
352
  const api = useContext(selectionContext);
353
353
  useEffect(() => {
@@ -366,13 +366,11 @@ const Outline = /*#__PURE__*/forwardRef(function Outline(_ref, forwardRef) {
366
366
  effect.selectionLayer = selectionLayer;
367
367
  invalidate();
368
368
  }, [effect, selectionLayer]);
369
- const ref = useRef();
369
+ useRef();
370
370
  useEffect(() => {
371
371
  if (api && api.enabled) {
372
372
  var _api$selected;
373
373
 
374
- const effect = ref.current;
375
-
376
374
  if ((_api$selected = api.selected) != null && _api$selected.length) {
377
375
  effect.selection.set(api.selected);
378
376
  invalidate();
@@ -384,7 +382,7 @@ const Outline = /*#__PURE__*/forwardRef(function Outline(_ref, forwardRef) {
384
382
  }
385
383
  }, [api]);
386
384
  return /*#__PURE__*/React.createElement("primitive", {
387
- ref: mergeRefs([ref, forwardRef]),
385
+ ref: forwardRef,
388
386
  object: effect
389
387
  });
390
388
  });
@@ -419,7 +417,11 @@ const SelectiveBloom = /*#__PURE__*/forwardRef(function SelectiveBloom(_ref, for
419
417
  intensity,
420
418
  width,
421
419
  height,
422
- kernelSize
420
+ kernelSize,
421
+ mipmapBlur,
422
+ radius,
423
+ levels,
424
+ ...props
423
425
  } = _ref;
424
426
 
425
427
  if (lights.length === 0) {
@@ -438,8 +440,12 @@ const SelectiveBloom = /*#__PURE__*/forwardRef(function SelectiveBloom(_ref, for
438
440
  intensity,
439
441
  width,
440
442
  height,
441
- kernelSize
442
- }), [camera, height, intensity, kernelSize, luminanceSmoothing, luminanceThreshold, scene, width]);
443
+ kernelSize,
444
+ mipmapBlur,
445
+ radius,
446
+ levels,
447
+ ...props
448
+ }), [camera, height, intensity, kernelSize, luminanceSmoothing, luminanceThreshold, scene, width, height, mipmapBlur, radius, levels]);
443
449
  const api = useContext(selectionContext);
444
450
  useEffect(() => {
445
451
  // Do not allow array selection if declarative selection is active
@@ -467,13 +473,11 @@ const SelectiveBloom = /*#__PURE__*/forwardRef(function SelectiveBloom(_ref, for
467
473
  };
468
474
  }
469
475
  }, [effect, lights, selectionLayer]);
470
- const ref = useRef();
476
+ useRef();
471
477
  useEffect(() => {
472
478
  if (api && api.enabled) {
473
479
  var _api$selected;
474
480
 
475
- const effect = ref.current;
476
-
477
481
  if ((_api$selected = api.selected) != null && _api$selected.length) {
478
482
  effect.selection.set(api.selected);
479
483
  invalidate();
@@ -485,7 +489,7 @@ const SelectiveBloom = /*#__PURE__*/forwardRef(function SelectiveBloom(_ref, for
485
489
  }
486
490
  }, [api]);
487
491
  return /*#__PURE__*/React.createElement("primitive", {
488
- ref: mergeRefs([ref, forwardRef]),
492
+ ref: forwardRef,
489
493
  object: effect,
490
494
  dispose: null
491
495
  });
@@ -617,6 +621,21 @@ const SSR = /*#__PURE__*/forwardRef(function SSR(_ref, ref) {
617
621
  Object.keys(props).forEach(key => effect[key] = props[key]);
618
622
  invalidate();
619
623
  }, [props]);
624
+ const api = useContext(selectionContext);
625
+ useEffect(() => {
626
+ if (api && api.enabled) {
627
+ var _api$selected;
628
+
629
+ if ((_api$selected = api.selected) != null && _api$selected.length) {
630
+ effect.selection.set(api.selected);
631
+ invalidate();
632
+ return () => {
633
+ effect.selection.clear();
634
+ invalidate();
635
+ };
636
+ }
637
+ }
638
+ }, [api]);
620
639
  return /*#__PURE__*/React.createElement("primitive", {
621
640
  ref: ref,
622
641
  object: effect
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/postprocessing",
3
- "version": "2.5.1",
3
+ "version": "2.5.4",
4
4
  "description": "postprocessing wrapper for React and @react-three/fiber",
5
5
  "keywords": [
6
6
  "postprocessing",