@react-three/drei 10.0.2 → 10.0.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.
package/core/Effects.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { TextureDataType } from 'three';
1
+ import { TextureDataType, ColorSpace } from 'three';
2
2
  import { ThreeElement, ThreeElements } from '@react-three/fiber';
3
3
  import { EffectComposer, RenderPass, ShaderPass } from 'three-stdlib';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
5
  export type EffectsProps = Omit<ThreeElements['effectComposer'], 'ref' | 'args'> & {
6
6
  multisamping?: number;
7
- colorSpace?: THREE.ColorSpace;
7
+ colorSpace?: ColorSpace;
8
8
  type?: TextureDataType;
9
9
  renderIndex?: number;
10
10
  disableGamma?: boolean;
@@ -1 +1 @@
1
- "use strict";function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("three"));exports.shaderMaterial=function(e,r,s,n){const i=class extends t.ShaderMaterial{constructor(i={}){const a=Object.entries(e);super({uniforms:a.reduce(((e,[r,s])=>({...e,...t.UniformsUtils.clone({[r]:{value:s}})})),{}),vertexShader:r,fragmentShader:s}),this.key="",a.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),Object.assign(this,i),n&&n(this)}};return i.key=t.MathUtils.generateUUID(),i};
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("three"));exports.shaderMaterial=function(e,t,n,u){var i;return(i=class extends r.ShaderMaterial{constructor(i){super({vertexShader:t,fragmentShader:n,...i});for(const t in e)this.uniforms[t]=new r.Uniform(e[t]),Object.defineProperty(this,t,{get(){return this.uniforms[t].value},set(e){this.uniforms[t].value=e}});null==u||u(this)}}).key=r.MathUtils.generateUUID(),i};
@@ -1,7 +1,9 @@
1
1
  import * as THREE from 'three';
2
- import { MeshBVHUniformStruct } from 'three-mesh-bvh';
3
- export declare function shaderMaterial(uniforms: {
4
- [name: string]: THREE.CubeTexture | THREE.Texture | Int32Array | Float32Array | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | MeshBVHUniformStruct | number | boolean | Array<any> | null;
5
- }, vertexShader: string, fragmentShader: string, onInit?: (material?: THREE.ShaderMaterial) => void): typeof THREE.ShaderMaterial & {
2
+ import { type ConstructorRepresentation } from '@react-three/fiber';
3
+ import { type MeshBVHUniformStruct } from 'three-mesh-bvh';
4
+ type UniformValue = THREE.Texture | THREE.TypedArray | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | MeshBVHUniformStruct | number | boolean | null;
5
+ type Uniforms = Record<string, UniformValue | Record<string, UniformValue> | Array<UniformValue>>;
6
+ export declare function shaderMaterial<U extends Uniforms, M extends THREE.ShaderMaterial & U>(uniforms: U, vertexShader: string, fragmentShader: string, onInit?: (material?: M) => void): ConstructorRepresentation<M> & {
6
7
  key: string;
7
8
  };
9
+ export {};
@@ -1,40 +1,28 @@
1
1
  import * as THREE from 'three';
2
2
 
3
3
  function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
4
- const material = class material extends THREE.ShaderMaterial {
5
- constructor(parameters = {}) {
6
- const entries = Object.entries(uniforms);
7
- // Create unforms and shaders
4
+ var _Class;
5
+ return _Class = class extends THREE.ShaderMaterial {
6
+ constructor(parameters) {
8
7
  super({
9
- uniforms: entries.reduce((acc, [name, value]) => {
10
- const uniform = THREE.UniformsUtils.clone({
11
- [name]: {
12
- value
13
- }
14
- });
15
- return {
16
- ...acc,
17
- ...uniform
18
- };
19
- }, {}),
20
8
  vertexShader,
21
- fragmentShader
9
+ fragmentShader,
10
+ ...parameters
22
11
  });
23
- // Create getter/setters
24
- this.key = '';
25
- entries.forEach(([name]) => Object.defineProperty(this, name, {
26
- get: () => this.uniforms[name].value,
27
- set: v => this.uniforms[name].value = v
28
- }));
29
-
30
- // Assign parameters, this might include uniforms
31
- Object.assign(this, parameters);
32
- // Call onInit
33
- if (onInit) onInit(this);
12
+ for (const key in uniforms) {
13
+ this.uniforms[key] = new THREE.Uniform(uniforms[key]);
14
+ Object.defineProperty(this, key, {
15
+ get() {
16
+ return this.uniforms[key].value;
17
+ },
18
+ set(value) {
19
+ this.uniforms[key].value = value;
20
+ }
21
+ });
22
+ }
23
+ onInit == null || onInit(this);
34
24
  }
35
- };
36
- material.key = THREE.MathUtils.generateUUID();
37
- return material;
25
+ }, _Class.key = THREE.MathUtils.generateUUID(), _Class;
38
26
  }
39
27
 
40
28
  export { shaderMaterial };
@@ -1,11 +1,11 @@
1
- import { Texture, Loader, CubeTexture } from 'three';
1
+ import { Texture, Loader, CubeTexture, ColorSpace } from 'three';
2
2
  import { PresetsType } from '../helpers/environment-assets';
3
3
  export type EnvironmentLoaderProps = {
4
4
  files?: string | string[];
5
5
  path?: string;
6
6
  preset?: PresetsType;
7
7
  extensions?: (loader: Loader) => void;
8
- colorSpace?: THREE.ColorSpace;
8
+ colorSpace?: ColorSpace;
9
9
  };
10
10
  export declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture | CubeTexture;
11
11
  export declare namespace useEnvironment {