@react-three/drei 9.106.0 → 9.106.2
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/README.md +38 -41
- package/core/Caustics.cjs.js +1 -1
- package/core/Caustics.js +2 -2
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.js +1 -1
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeCamera.d.ts +15 -3
- package/core/CubeCamera.js +47 -4
- package/core/CubeTexture.cjs.js +1 -0
- package/core/CubeTexture.d.ts +15 -0
- package/core/{useCubeTexture.js → CubeTexture.js} +12 -1
- package/core/DetectGPU.cjs.js +1 -0
- package/core/DetectGPU.d.ts +8 -0
- package/core/DetectGPU.js +14 -0
- package/core/Example.d.ts +1 -1
- package/core/Example.js +3 -0
- package/core/Fbo.cjs.js +1 -0
- package/core/{useFBO.d.ts → Fbo.d.ts} +6 -0
- package/core/{useFBO.js → Fbo.js} +10 -1
- package/core/Fbx.cjs.js +1 -0
- package/core/Fbx.d.ts +11 -0
- package/core/Fbx.js +23 -0
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewport.cjs.js +1 -1
- package/core/Gltf.cjs.js +1 -1
- package/core/Gltf.d.ts +17 -5
- package/core/Gltf.js +37 -3
- package/core/Helper.cjs.js +1 -1
- package/core/Helper.d.ts +3 -1
- package/core/Helper.js +35 -24
- package/core/Image.cjs.js +1 -1
- package/core/Image.js +1 -1
- package/core/Ktx2.cjs.js +1 -0
- package/core/{useKTX2.d.ts → Ktx2.d.ts} +6 -0
- package/core/{useKTX2.js → Ktx2.js} +15 -3
- package/core/MatcapTexture.cjs.js +1 -0
- package/core/MatcapTexture.d.ts +9 -0
- package/core/{useMatcapTexture.js → MatcapTexture.js} +14 -2
- package/core/MeshPortalMaterial.cjs.js +1 -1
- package/core/MeshPortalMaterial.js +1 -1
- package/core/MeshTransmissionMaterial.cjs.js +1 -1
- package/core/MeshTransmissionMaterial.js +1 -1
- package/core/NormalTexture.cjs.js +1 -0
- package/core/NormalTexture.d.ts +14 -0
- package/core/{useNormalTexture.js → NormalTexture.js} +14 -2
- package/core/OrthographicCamera.cjs.js +1 -1
- package/core/OrthographicCamera.js +1 -1
- package/core/PerspectiveCamera.cjs.js +1 -1
- package/core/PerspectiveCamera.js +1 -1
- package/core/Progress.cjs.js +1 -0
- package/core/{useProgress.d.ts → Progress.d.ts} +4 -0
- package/core/{useProgress.js → Progress.js} +11 -1
- package/core/RenderTexture.cjs.js +1 -1
- package/core/RenderTexture.js +1 -1
- package/core/Texture.cjs.js +1 -0
- package/core/{useTexture.d.ts → Texture.d.ts} +10 -4
- package/core/{useTexture.js → Texture.js} +18 -5
- package/core/TrailTexture.cjs.js +1 -0
- package/core/{useTrailTexture.d.ts → TrailTexture.d.ts} +4 -0
- package/core/{useTrailTexture.js → TrailTexture.js} +14 -3
- package/core/VideoTexture.cjs.js +1 -0
- package/core/VideoTexture.d.ts +18 -0
- package/core/{useVideoTexture.js → VideoTexture.js} +25 -23
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +12 -15
- package/core/index.js +16 -19
- package/core/useDepthBuffer.cjs.js +1 -1
- package/core/useDepthBuffer.js +1 -1
- package/core/useSpriteLoader.cjs.js +1 -1
- package/core/useSpriteLoader.d.ts +1 -0
- package/core/useSpriteLoader.js +82 -9
- package/index.cjs.js +1 -1
- package/index.js +16 -19
- package/native/index.cjs.js +1 -1
- package/native/index.js +16 -19
- package/package.json +3 -3
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
- package/web/FaceControls.cjs.js +1 -1
- package/web/FaceControls.d.ts +1 -1
- package/web/FaceControls.js +12 -1
- package/web/Loader.cjs.js +1 -1
- package/web/Loader.js +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +16 -19
- package/core/useCubeCamera.cjs.js +0 -1
- package/core/useCubeCamera.d.ts +0 -14
- package/core/useCubeCamera.js +0 -49
- package/core/useCubeTexture.cjs.js +0 -1
- package/core/useCubeTexture.d.ts +0 -9
- package/core/useDetectGPU.cjs.js +0 -1
- package/core/useDetectGPU.d.ts +0 -2
- package/core/useDetectGPU.js +0 -6
- package/core/useFBO.cjs.js +0 -1
- package/core/useFBX.cjs.js +0 -1
- package/core/useFBX.d.ts +0 -6
- package/core/useFBX.js +0 -10
- package/core/useGLTF.cjs.js +0 -1
- package/core/useGLTF.d.ts +0 -8
- package/core/useGLTF.js +0 -32
- package/core/useHelper.cjs.js +0 -1
- package/core/useHelper.d.ts +0 -11
- package/core/useHelper.js +0 -30
- package/core/useKTX2.cjs.js +0 -1
- package/core/useMatcapTexture.cjs.js +0 -1
- package/core/useMatcapTexture.d.ts +0 -2
- package/core/useNormalTexture.cjs.js +0 -1
- package/core/useNormalTexture.d.ts +0 -8
- package/core/useProgress.cjs.js +0 -1
- package/core/useTexture.cjs.js +0 -1
- package/core/useTrailTexture.cjs.js +0 -1
- package/core/useVideoTexture.cjs.js +0 -1
- package/core/useVideoTexture.d.ts +0 -12
- /package/core/{useBVH.cjs.js → Bvh.cjs.js} +0 -0
- /package/core/{useBVH.d.ts → Bvh.d.ts} +0 -0
- /package/core/{useBVH.js → Bvh.js} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { DefaultLoadingManager } from 'three';
|
|
2
3
|
import create from 'zustand';
|
|
3
4
|
|
|
@@ -42,4 +43,13 @@ const useProgress = /* @__PURE__ */create(set => {
|
|
|
42
43
|
};
|
|
43
44
|
});
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
//
|
|
47
|
+
|
|
48
|
+
function Progress({
|
|
49
|
+
children
|
|
50
|
+
}) {
|
|
51
|
+
const result = useProgress();
|
|
52
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(result));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { Progress, useProgress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./Fbo.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(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)}var i=u(e),c=l(r),o=l(t);const s=o.forwardRef((({children:e,compute:r,width:t,height:u,samples:l=8,renderPriority:s=0,eventPriority:d=0,frames:p=1/0,stencilBuffer:m=!1,depthBuffer:g=!0,generateMipmaps:b=!1,...v},h)=>{const{size:y,viewport:j}=n.useThree(),x=a.useFBO((t||y.width)*j.dpr,(u||y.height)*j.dpr,{samples:l,stencilBuffer:m,depthBuffer:g,generateMipmaps:b}),[O]=o.useState((()=>new c.Scene)),P=o.useCallback(((e,r,t)=>{var n,a;let u=null==(n=x.texture)?void 0:n.__r3f.parent;for(;u&&!(u instanceof c.Object3D);)u=u.__r3f.parent;if(!u)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[l]=t.raycaster.intersectObject(u);if(!l)return!1;const i=l.uv;if(!i)return!1;r.raycaster.setFromCamera(r.pointer.set(2*i.x-1,2*i.y-1),r.camera)}),[]);return o.useImperativeHandle(h,(()=>x.texture),[x]),o.createElement(o.Fragment,null,n.createPortal(o.createElement(f,{renderPriority:s,frames:p,fbo:x},e,o.createElement("group",{onPointerOver:()=>null})),O,{events:{compute:r||P,priority:d}}),o.createElement("primitive",i.default({object:x.texture},v)))}));function f({frames:e,renderPriority:r,children:t,fbo:a}){let u,l,i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(u=r.gl.autoClear,l=r.gl.xr.enabled,r.gl.autoClear=!0,r.gl.xr.enabled=!1,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(null),r.gl.autoClear=u,r.gl.xr.enabled=l,i++)}),r),o.createElement(o.Fragment,null,t)}exports.RenderTexture=s;
|
package/core/RenderTexture.js
CHANGED
|
@@ -2,7 +2,7 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useThree, createPortal, useFrame } from '@react-three/fiber';
|
|
5
|
-
import { useFBO } from './
|
|
5
|
+
import { useFBO } from './Fbo.js';
|
|
6
6
|
|
|
7
7
|
const RenderTexture = /* @__PURE__ */React.forwardRef(({
|
|
8
8
|
children,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("three"),t=require("@react-three/fiber");function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=u(e);const o=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function c(u,n){const c=t.useThree((e=>e.gl)),a=t.useLoader(r.TextureLoader,o(u)?Object.values(u):u);e.useLayoutEffect((()=>{null==n||n(a)}),[n]),e.useEffect((()=>{if("initTexture"in c){let e=[];Array.isArray(a)?e=a:a instanceof r.Texture?e=[a]:o(a)&&(e=Object.values(a)),e.forEach((e=>{e instanceof r.Texture&&c.initTexture(e)}))}}),[c,a]);return e.useMemo((()=>{if(o(u)){const e={};let r=0;for(const t in u)e[t]=a[r++];return console.log("keyed",e),e}return a}),[u,a])}c.preload=e=>t.useLoader.preload(r.TextureLoader,e),c.clear=e=>t.useLoader.clear(r.TextureLoader,e);exports.IsObject=o,exports.Texture=({children:e,input:r,onLoad:t})=>{const u=c(r,t);return n.createElement(n.Fragment,null,null==e?void 0:e(u))},exports.useTexture=c;
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Texture as _Texture } from 'three';
|
|
2
3
|
export declare const IsObject: (url: unknown) => url is Record<string, string>;
|
|
3
|
-
type TextureArray<T> = T extends string[] ?
|
|
4
|
+
type TextureArray<T> = T extends string[] ? _Texture[] : never;
|
|
4
5
|
type TextureRecord<T> = T extends Record<string, string> ? {
|
|
5
|
-
[key in keyof T]:
|
|
6
|
+
[key in keyof T]: _Texture;
|
|
6
7
|
} : never;
|
|
7
|
-
type SingleTexture<T> = T extends string ?
|
|
8
|
+
type SingleTexture<T> = T extends string ? _Texture : never;
|
|
8
9
|
export type MappedTextureType<T extends string[] | string | Record<string, string>> = TextureArray<T> | TextureRecord<T> | SingleTexture<T>;
|
|
9
10
|
export declare function useTexture<Url extends string[] | string | Record<string, string>>(input: Url, onLoad?: (texture: MappedTextureType<Url>) => void): MappedTextureType<Url>;
|
|
10
11
|
export declare namespace useTexture {
|
|
11
12
|
var preload: (url: string | string[]) => undefined;
|
|
12
13
|
var clear: (input: string | string[]) => void;
|
|
13
14
|
}
|
|
15
|
+
export declare const Texture: ({ children, input, onLoad, }: {
|
|
16
|
+
children?: ((texture: ReturnType<typeof useTexture>) => React.ReactNode) | undefined;
|
|
17
|
+
input: Parameters<typeof useTexture>[0];
|
|
18
|
+
onLoad?: Parameters<typeof useTexture>[1];
|
|
19
|
+
}) => React.JSX.Element;
|
|
14
20
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useThree, useLoader } from '@react-three/fiber';
|
|
1
|
+
import * as React from 'react';
|
|
3
2
|
import { useLayoutEffect, useEffect, useMemo } from 'react';
|
|
3
|
+
import { TextureLoader, Texture as Texture$1 } from 'three';
|
|
4
|
+
import { useThree, useLoader } from '@react-three/fiber';
|
|
4
5
|
|
|
5
6
|
const IsObject = url => url === Object(url) && !Array.isArray(url) && typeof url !== 'function';
|
|
6
7
|
function useTexture(input, onLoad) {
|
|
@@ -18,13 +19,13 @@ function useTexture(input, onLoad) {
|
|
|
18
19
|
let textureArray = [];
|
|
19
20
|
if (Array.isArray(textures)) {
|
|
20
21
|
textureArray = textures;
|
|
21
|
-
} else if (textures instanceof Texture) {
|
|
22
|
+
} else if (textures instanceof Texture$1) {
|
|
22
23
|
textureArray = [textures];
|
|
23
24
|
} else if (IsObject(textures)) {
|
|
24
25
|
textureArray = Object.values(textures);
|
|
25
26
|
}
|
|
26
27
|
textureArray.forEach(texture => {
|
|
27
|
-
if (texture instanceof Texture) {
|
|
28
|
+
if (texture instanceof Texture$1) {
|
|
28
29
|
gl.initTexture(texture);
|
|
29
30
|
}
|
|
30
31
|
});
|
|
@@ -35,6 +36,7 @@ function useTexture(input, onLoad) {
|
|
|
35
36
|
const keyed = {};
|
|
36
37
|
let i = 0;
|
|
37
38
|
for (const key in input) keyed[key] = textures[i++];
|
|
39
|
+
console.log('keyed', keyed);
|
|
38
40
|
return keyed;
|
|
39
41
|
} else {
|
|
40
42
|
return textures;
|
|
@@ -45,4 +47,15 @@ function useTexture(input, onLoad) {
|
|
|
45
47
|
useTexture.preload = url => useLoader.preload(TextureLoader, url);
|
|
46
48
|
useTexture.clear = input => useLoader.clear(TextureLoader, input);
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
//
|
|
51
|
+
|
|
52
|
+
const Texture = ({
|
|
53
|
+
children,
|
|
54
|
+
input,
|
|
55
|
+
onLoad
|
|
56
|
+
}) => {
|
|
57
|
+
const ret = useTexture(input, onLoad);
|
|
58
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export { IsObject, Texture, useTexture };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@react-three/fiber"),i=require("three");function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var a=s(t);const h=t=>Math.sqrt(1-Math.pow(t-1,2));class r{constructor({size:t=256,maxAge:e=750,radius:i=.3,intensity:s=.2,interpolate:a=0,smoothing:r=0,minForce:n=.3,blend:c="screen",ease:o=h}={}){this.size=t,this.maxAge=e,this.radius=i,this.intensity=s,this.ease=o,this.interpolate=a,this.smoothing=r,this.minForce=n,this.blend=c,this.trail=[],this.force=0,this.initTexture()}initTexture(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=this.size;const t=this.canvas.getContext("2d");if(null===t)throw new Error("2D not available");this.ctx=t,this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.texture=new i.Texture(this.canvas),this.canvas.id="touchTexture",this.canvas.style.width=this.canvas.style.height=`${this.canvas.width}px`}update(t){this.clear(),this.trail.forEach(((e,i)=>{e.age+=1e3*t,e.age>this.maxAge&&this.trail.splice(i,1)})),this.trail.length||(this.force=0),this.trail.forEach((t=>{this.drawTouch(t)})),this.texture.needsUpdate=!0}clear(){this.ctx.globalCompositeOperation="source-over",this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}addTouch(t){const e=this.trail[this.trail.length-1];if(e){const i=e.x-t.x,s=e.y-t.y,a=i*i+s*s,h=Math.max(this.minForce,Math.min(1e4*a,1));if(this.force=function(t,e,i=.9){return e*i+t*(1-i)}(h,this.force,this.smoothing),this.interpolate){const t=Math.ceil(a/Math.pow(.5*this.radius/this.interpolate,2));if(t>1)for(let a=1;a<t;a++)this.trail.push({x:e.x-i/t*a,y:e.y-s/t*a,age:0,force:h})}}this.trail.push({x:t.x,y:t.y,age:0,force:this.force})}drawTouch(t){const e={x:t.x*this.size,y:(1-t.y)*this.size};let i=1;i=t.age<.3*this.maxAge?this.ease(t.age/(.3*this.maxAge)):this.ease(1-(t.age-.3*this.maxAge)/(.7*this.maxAge)),i*=t.force,this.ctx.globalCompositeOperation=this.blend;const s=this.size*this.radius*i,a=this.ctx.createRadialGradient(e.x,e.y,Math.max(0,.25*s),e.x,e.y,Math.max(0,s));a.addColorStop(0,`rgba(255, 255, 255, ${this.intensity})`),a.addColorStop(1,"rgba(0, 0, 0, 0.0)"),this.ctx.beginPath(),this.ctx.fillStyle=a,this.ctx.arc(e.x,e.y,Math.max(0,s),0,2*Math.PI),this.ctx.fill()}}function n(i={}){const{size:s,maxAge:a,radius:h,intensity:n,interpolate:c,smoothing:o,minForce:l,blend:u,ease:x}=i,d=t.useMemo((()=>new r(i)),[s,a,h,n,c,o,l,u,x]);e.useFrame(((t,e)=>{d.update(e)}));const f=t.useCallback((t=>d.addTouch(t.uv)),[d]);return[d.texture,f]}exports.TrailTexture=({children:t,...e})=>{const i=n(e);return a.createElement(a.Fragment,null,null==t?void 0:t(i))},exports.useTrailTexture=n;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { Texture } from 'three';
|
|
2
3
|
type TrailConfig = {
|
|
3
4
|
size?: number;
|
|
@@ -11,4 +12,7 @@ type TrailConfig = {
|
|
|
11
12
|
ease?: (t: number) => number;
|
|
12
13
|
};
|
|
13
14
|
export declare function useTrailTexture(config?: Partial<TrailConfig>): [Texture, (ThreeEvent: any) => void];
|
|
15
|
+
export declare const TrailTexture: ({ children, ...config }: {
|
|
16
|
+
children?: ((texture: [Texture, (ThreeEvent: any) => void]) => React.ReactNode) | undefined;
|
|
17
|
+
} & TrailConfig) => React.JSX.Element;
|
|
14
18
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { useMemo, useCallback } from 'react';
|
|
2
3
|
import { useFrame } from '@react-three/fiber';
|
|
3
4
|
import { Texture } from 'three';
|
|
@@ -9,7 +10,7 @@ function smoothAverage(current, measurement, smoothing = 0.9) {
|
|
|
9
10
|
|
|
10
11
|
// default ease
|
|
11
12
|
const easeCircleOut = x => Math.sqrt(1 - Math.pow(x - 1, 2));
|
|
12
|
-
class
|
|
13
|
+
class TrailTextureImpl {
|
|
13
14
|
constructor({
|
|
14
15
|
size = 256,
|
|
15
16
|
maxAge = 750,
|
|
@@ -139,10 +140,20 @@ function useTrailTexture(config = {}) {
|
|
|
139
140
|
blend,
|
|
140
141
|
ease
|
|
141
142
|
} = config;
|
|
142
|
-
const trail = useMemo(() => new
|
|
143
|
+
const trail = useMemo(() => new TrailTextureImpl(config), [size, maxAge, radius, intensity, interpolate, smoothing, minForce, blend, ease]);
|
|
143
144
|
useFrame((_, delta) => void trail.update(delta));
|
|
144
145
|
const onMove = useCallback(e => trail.addTouch(e.uv), [trail]);
|
|
145
146
|
return [trail.texture, onMove];
|
|
146
147
|
}
|
|
147
148
|
|
|
148
|
-
|
|
149
|
+
//
|
|
150
|
+
|
|
151
|
+
const TrailTexture = ({
|
|
152
|
+
children,
|
|
153
|
+
...config
|
|
154
|
+
}) => {
|
|
155
|
+
const ret = useTrailTexture(config);
|
|
156
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export { TrailTexture, useTrailTexture };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("suspend-react");function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u,i,c=o(e),s=o(t);const a="undefined"!=typeof window&&"function"==typeof(null==(u=window.document)?void 0:u.createElement)&&"string"==typeof(null==(i=window.navigator)?void 0:i.userAgent);let l=null;function d(t,{unsuspend:u="loadedmetadata",start:i=!0,crossOrigin:c="anonymous",muted:d=!0,loop:f=!0,hls:p={},...m}={}){const g=new URL("string"==typeof t?t:"",window.location.href),v=e.useRef(null),w=e.useRef(null),y=r.useThree((e=>e.gl)),h=n.suspend((()=>new Promise((async e=>{const r=Object.assign(document.createElement("video"),{src:"string"==typeof t&&t||void 0,srcObject:t instanceof MediaStream&&t||void 0,crossOrigin:c,loop:f,muted:d,...m});if(w.current=r,"string"==typeof t){const e=v.current=await async function(e,t){var r;return a&&e.pathname.endsWith(".m3u8")&&(null!==(r=l)&&void 0!==r||(l=await Promise.resolve().then((function(){return o(require("hls.js"))}))),l.default.isSupported())?new l.default({...t}):null}(g,p);e?(e.attachMedia(r),e.on("hlsMediaAttached",(()=>{e.loadSource(t)}))):r.src=t}else t instanceof MediaStream&&(r.srcObject=t);const n=new s.VideoTexture(r);"colorSpace"in n?n.colorSpace=y.outputColorSpace:n.encoding=y.outputEncoding,r.addEventListener(u,(()=>e(n)))}))),[t]);return e.useEffect((()=>(i&&h.image.play(),()=>{v.current&&(v.current.destroy(),v.current=null)})),[h,i]),h}exports.VideoTexture=({children:e,src:t,...r})=>{const n=d(t,r);return c.createElement(c.Fragment,null,null==e?void 0:e(n))},exports.useVideoTexture=d;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import type { HlsConfig } from 'hls.js';
|
|
4
|
+
type Config = {
|
|
5
|
+
unsuspend?: 'canplay' | 'canplaythrough' | 'loadstart' | 'loadedmetadata';
|
|
6
|
+
start?: boolean;
|
|
7
|
+
hls?: Partial<HlsConfig>;
|
|
8
|
+
} & Partial<Omit<HTMLVideoElement, 'children'>>;
|
|
9
|
+
export declare function useVideoTexture(src: string | MediaStream, { unsuspend, start, crossOrigin, muted, loop, hls, ...videoProps }?: Config): THREE.VideoTexture;
|
|
10
|
+
export declare const VideoTexture: ({ children, src, ...config }: {
|
|
11
|
+
children?: ((texture: ReturnType<typeof useVideoTexture>) => React.ReactNode) | undefined;
|
|
12
|
+
src: Parameters<typeof useVideoTexture>[0];
|
|
13
|
+
} & {
|
|
14
|
+
unsuspend?: "canplay" | "canplaythrough" | "loadedmetadata" | "loadstart" | undefined;
|
|
15
|
+
start?: boolean | undefined;
|
|
16
|
+
hls?: Partial<HlsConfig> | undefined;
|
|
17
|
+
} & Partial<Omit<HTMLVideoElement, "children">>) => React.JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { useRef, useEffect } from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
3
4
|
import { useThree } from '@react-three/fiber';
|
|
4
5
|
import { suspend } from 'suspend-react';
|
|
5
6
|
|
|
@@ -18,37 +19,27 @@ async function getHLS(url, config) {
|
|
|
18
19
|
}
|
|
19
20
|
return null;
|
|
20
21
|
}
|
|
21
|
-
function useVideoTexture(src,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} = {
|
|
31
|
-
unsuspend: 'loadedmetadata',
|
|
32
|
-
crossOrigin: 'Anonymous',
|
|
33
|
-
muted: true,
|
|
34
|
-
loop: true,
|
|
35
|
-
start: true,
|
|
36
|
-
playsInline: true,
|
|
37
|
-
hls: {},
|
|
38
|
-
...props
|
|
39
|
-
};
|
|
22
|
+
function useVideoTexture(src, {
|
|
23
|
+
unsuspend = 'loadedmetadata',
|
|
24
|
+
start = true,
|
|
25
|
+
crossOrigin = 'anonymous',
|
|
26
|
+
muted = true,
|
|
27
|
+
loop = true,
|
|
28
|
+
hls = {},
|
|
29
|
+
...videoProps
|
|
30
|
+
} = {}) {
|
|
40
31
|
const url = new URL(typeof src === 'string' ? src : '', window.location.href);
|
|
41
32
|
const hlsRef = useRef(null);
|
|
42
33
|
const videoRef = useRef(null);
|
|
43
34
|
const gl = useThree(state => state.gl);
|
|
44
|
-
const texture = suspend(() => new Promise(async
|
|
35
|
+
const texture = suspend(() => new Promise(async res => {
|
|
45
36
|
const video = Object.assign(document.createElement('video'), {
|
|
46
37
|
src: typeof src === 'string' && src || undefined,
|
|
47
38
|
srcObject: src instanceof MediaStream && src || undefined,
|
|
48
39
|
crossOrigin,
|
|
49
40
|
loop,
|
|
50
41
|
muted,
|
|
51
|
-
...
|
|
42
|
+
...videoProps
|
|
52
43
|
});
|
|
53
44
|
videoRef.current = video;
|
|
54
45
|
|
|
@@ -82,4 +73,15 @@ function useVideoTexture(src, props) {
|
|
|
82
73
|
return texture;
|
|
83
74
|
}
|
|
84
75
|
|
|
85
|
-
|
|
76
|
+
//
|
|
77
|
+
|
|
78
|
+
const VideoTexture = ({
|
|
79
|
+
children,
|
|
80
|
+
src,
|
|
81
|
+
...config
|
|
82
|
+
}) => {
|
|
83
|
+
const ret = useVideoTexture(src, config);
|
|
84
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { VideoTexture, useVideoTexture };
|
package/core/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./ScreenSizer.cjs.js"),t=require("./QuadraticBezierLine.cjs.js"),o=require("./CubicBezierLine.cjs.js"),i=require("./CatmullRomLine.cjs.js"),a=require("./Line.cjs.js"),u=require("./PositionalAudio.cjs.js"),c=require("./Text.cjs.js"),n=require("./Text3D.cjs.js"),j=require("./Effects.cjs.js"),p=require("./GradientTexture.cjs.js"),l=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),q=require("./Outlines.cjs.js"),d=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),h=require("./ComputedAttribute.cjs.js"),C=require("./Clone.cjs.js"),S=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),T=require("./Svg.cjs.js"),P=require("./Gltf.cjs.js"),b=require("./AsciiRenderer.cjs.js"),f=require("./Splat.cjs.js"),g=require("./OrthographicCamera.cjs.js"),B=require("./PerspectiveCamera.cjs.js"),v=require("./CubeCamera.cjs.js"),A=require("./DeviceOrientationControls.cjs.js"),L=require("./FlyControls.cjs.js"),R=require("./MapControls.cjs.js"),G=require("./OrbitControls.cjs.js"),F=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),k=require("./PointerLockControls.cjs.js"),w=require("./FirstPersonControls.cjs.js"),z=require("./CameraControls.cjs.js"),O=require("./MotionPathControls.cjs.js"),I=require("./GizmoHelper.cjs.js"),y=require("./GizmoViewcube.cjs.js"),H=require("./GizmoViewport.cjs.js"),V=require("./Grid.cjs.js"),W=require("./useCubeTexture.cjs.js"),Q=require("./useFBX.cjs.js"),X=require("./useGLTF.cjs.js"),K=require("./useKTX2.cjs.js"),N=require("./useProgress.cjs.js"),U=require("./useTexture.cjs.js"),_=require("./useVideoTexture.cjs.js"),J=require("./useFont.cjs.js"),Y=require("./useSpriteLoader.cjs.js"),Z=require("./Helper.cjs.js"),$=require("./Stats.cjs.js"),ee=require("./StatsGl.cjs.js"),re=require("./useDepthBuffer.cjs.js"),se=require("./useAspect.cjs.js"),te=require("./useCamera.cjs.js"),oe=require("./useDetectGPU.cjs.js"),ie=require("./useHelper.cjs.js"),ae=require("./useBVH.cjs.js"),ue=require("./useContextBridge.cjs.js"),ce=require("./useAnimations.cjs.js"),ne=require("./useFBO.cjs.js"),je=require("./useIntersect.cjs.js"),pe=require("./useBoxProjectedEnv.cjs.js"),le=require("./BBAnchor.cjs.js"),xe=require("./useTrailTexture.cjs.js"),qe=require("./useCubeCamera.cjs.js"),de=require("./Example.cjs.js"),me=require("./SpriteAnimator.cjs.js"),he=require("./CurveModifier.cjs.js"),Ce=require("./MeshDistortMaterial.cjs.js"),Se=require("./MeshWobbleMaterial.cjs.js"),Me=require("./MeshReflectorMaterial.cjs.js"),Te=require("./MeshRefractionMaterial.cjs.js"),Pe=require("./MeshTransmissionMaterial.cjs.js"),be=require("./MeshDiscardMaterial.cjs.js"),fe=require("./PointMaterial.cjs.js"),ge=require("./shaderMaterial.cjs.js"),Be=require("./softShadows.cjs.js"),ve=require("./shapes.cjs.js"),Ae=require("./RoundedBox.cjs.js"),Le=require("./ScreenQuad.cjs.js"),Re=require("./Center.cjs.js"),Ge=require("./Resize.cjs.js"),Fe=require("./Bounds.cjs.js"),De=require("./CameraShake.cjs.js"),Ee=require("./Float.cjs.js"),ke=require("./Stage.cjs.js"),we=require("./Backdrop.cjs.js"),ze=require("./Shadow.cjs.js"),Oe=require("./Caustics.cjs.js"),Ie=require("./ContactShadows.cjs.js"),ye=require("./AccumulativeShadows.cjs.js"),He=require("./Reflector.cjs.js"),Ve=require("./SpotLight.cjs.js"),We=require("./Environment.cjs.js"),Qe=require("./Lightformer.cjs.js"),Xe=require("./Sky.cjs.js"),Ke=require("./Stars.cjs.js"),Ne=require("./Cloud.cjs.js"),Ue=require("./Sparkles.cjs.js"),_e=require("./useEnvironment.cjs.js"),Je=require("./useMatcapTexture.cjs.js"),Ye=require("./useNormalTexture.cjs.js"),Ze=require("./Wireframe.cjs.js"),$e=require("./ShadowAlpha.cjs.js"),er=require("./Points.cjs.js"),rr=require("./Instances.cjs.js"),sr=require("./Segments.cjs.js"),tr=require("./Detailed.cjs.js"),or=require("./Preload.cjs.js"),ir=require("./BakeShadows.cjs.js"),ar=require("./meshBounds.cjs.js"),ur=require("./AdaptiveDpr.cjs.js"),cr=require("./AdaptiveEvents.cjs.js"),nr=require("./PerformanceMonitor.cjs.js"),jr=require("./RenderTexture.cjs.js"),pr=require("./RenderCubeTexture.cjs.js"),lr=require("./Mask.cjs.js"),xr=require("./Hud.cjs.js"),qr=require("./Fisheye.cjs.js"),dr=require("./MeshPortalMaterial.cjs.js"),mr=require("./calculateScaleFactor.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("three"),require("@react-three/fiber"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("camera-controls"),require("maath"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("@monogrid/gainmap-js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.ScreenSizer=s.ScreenSizer,exports.QuadraticBezierLine=t.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.CatmullRomLine=i.CatmullRomLine,exports.Line=a.Line,exports.PositionalAudio=u.PositionalAudio,exports.Text=c.Text,exports.Text3D=n.Text3D,exports.Effects=j.Effects,exports.isWebGL2Available=j.isWebGL2Available,exports.GradientTexture=p.GradientTexture,exports.GradientType=p.GradientType,exports.Image=l.Image,exports.Edges=x.Edges,exports.Outlines=q.Outlines,exports.Trail=d.Trail,exports.useTrail=d.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=h.ComputedAttribute,exports.Clone=C.Clone,exports.MarchingCube=S.MarchingCube,exports.MarchingCubes=S.MarchingCubes,exports.MarchingPlane=S.MarchingPlane,exports.Decal=M.Decal,exports.Svg=T.Svg,exports.Gltf=P.Gltf,exports.AsciiRenderer=b.AsciiRenderer,exports.Splat=f.Splat,exports.OrthographicCamera=g.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=v.CubeCamera,exports.DeviceOrientationControls=A.DeviceOrientationControls,exports.FlyControls=L.FlyControls,exports.MapControls=R.MapControls,exports.OrbitControls=G.OrbitControls,exports.TrackballControls=F.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=k.PointerLockControls,exports.FirstPersonControls=w.FirstPersonControls,exports.CameraControls=z.CameraControls,exports.MotionPathControls=O.MotionPathControls,exports.useMotion=O.useMotion,exports.GizmoHelper=I.GizmoHelper,exports.useGizmoContext=I.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=H.GizmoViewport,exports.Grid=V.Grid,exports.useCubeTexture=W.useCubeTexture,exports.useFBX=Q.useFBX,exports.useGLTF=X.useGLTF,exports.useKTX2=K.useKTX2,exports.useProgress=N.useProgress,exports.IsObject=U.IsObject,exports.useTexture=U.useTexture,exports.useVideoTexture=_.useVideoTexture,exports.useFont=J.useFont,exports.calculateAspectRatio=Y.calculateAspectRatio,exports.getFirstItem=Y.getFirstItem,exports.useSpriteLoader=Y.useSpriteLoader,exports.Helper=Z.Helper,exports.Stats=$.Stats,exports.StatsGl=ee.StatsGl,exports.useDepthBuffer=re.useDepthBuffer,exports.useAspect=se.useAspect,exports.useCamera=te.useCamera,exports.useDetectGPU=oe.useDetectGPU,exports.useHelper=ie.useHelper,exports.Bvh=ae.Bvh,exports.useBVH=ae.useBVH,exports.useContextBridge=ue.useContextBridge,exports.useAnimations=ce.useAnimations,exports.useFBO=ne.useFBO,exports.useIntersect=je.useIntersect,exports.useBoxProjectedEnv=pe.useBoxProjectedEnv,exports.BBAnchor=le.BBAnchor,exports.useTrailTexture=xe.useTrailTexture,exports.useCubeCamera=qe.useCubeCamera,exports.Example=de.Example,exports.SpriteAnimator=me.SpriteAnimator,exports.useSpriteAnimator=me.useSpriteAnimator,exports.CurveModifier=he.CurveModifier,exports.MeshDistortMaterial=Ce.MeshDistortMaterial,exports.MeshWobbleMaterial=Se.MeshWobbleMaterial,exports.MeshReflectorMaterial=Me.MeshReflectorMaterial,exports.MeshRefractionMaterial=Te.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Pe.MeshTransmissionMaterial,exports.MeshDiscardMaterial=be.MeshDiscardMaterial,exports.PointMaterial=fe.PointMaterial,exports.PointMaterialImpl=fe.PointMaterialImpl,exports.shaderMaterial=ge.shaderMaterial,exports.SoftShadows=Be.SoftShadows,exports.Box=ve.Box,exports.Capsule=ve.Capsule,exports.Circle=ve.Circle,exports.Cone=ve.Cone,exports.Cylinder=ve.Cylinder,exports.Dodecahedron=ve.Dodecahedron,exports.Extrude=ve.Extrude,exports.Icosahedron=ve.Icosahedron,exports.Lathe=ve.Lathe,exports.Octahedron=ve.Octahedron,exports.Plane=ve.Plane,exports.Polyhedron=ve.Polyhedron,exports.Ring=ve.Ring,exports.Shape=ve.Shape,exports.Sphere=ve.Sphere,exports.Tetrahedron=ve.Tetrahedron,exports.Torus=ve.Torus,exports.TorusKnot=ve.TorusKnot,exports.Tube=ve.Tube,exports.RoundedBox=Ae.RoundedBox,exports.ScreenQuad=Le.ScreenQuad,exports.Center=Re.Center,exports.Resize=Ge.Resize,exports.Bounds=Fe.Bounds,exports.useBounds=Fe.useBounds,exports.CameraShake=De.CameraShake,exports.Float=Ee.Float,exports.Stage=ke.Stage,exports.Backdrop=we.Backdrop,exports.Shadow=ze.Shadow,exports.Caustics=Oe.Caustics,exports.ContactShadows=Ie.ContactShadows,exports.AccumulativeShadows=ye.AccumulativeShadows,exports.RandomizedLight=ye.RandomizedLight,exports.accumulativeContext=ye.accumulativeContext,exports.Reflector=He.Reflector,exports.SpotLight=Ve.SpotLight,exports.SpotLightShadow=Ve.SpotLightShadow,exports.Environment=We.Environment,exports.EnvironmentCube=We.EnvironmentCube,exports.EnvironmentMap=We.EnvironmentMap,exports.EnvironmentPortal=We.EnvironmentPortal,exports.Lightformer=Qe.Lightformer,exports.Sky=Xe.Sky,exports.calcPosFromAngles=Xe.calcPosFromAngles,exports.Stars=Ke.Stars,exports.Cloud=Ne.Cloud,exports.CloudInstance=Ne.CloudInstance,exports.Clouds=Ne.Clouds,exports.Sparkles=Ue.Sparkles,exports.useEnvironment=_e.useEnvironment,exports.useMatcapTexture=Je.useMatcapTexture,exports.useNormalTexture=Ye.useNormalTexture,exports.Wireframe=Ze.Wireframe,exports.ShadowAlpha=$e.ShadowAlpha,exports.Point=er.Point,exports.Points=er.Points,exports.PointsBuffer=er.PointsBuffer,exports.PositionPoint=er.PositionPoint,exports.Instance=rr.Instance,exports.Instances=rr.Instances,exports.Merged=rr.Merged,exports.Segment=sr.Segment,exports.SegmentObject=sr.SegmentObject,exports.Segments=sr.Segments,exports.Detailed=tr.Detailed,exports.Preload=or.Preload,exports.BakeShadows=ir.BakeShadows,exports.meshBounds=ar.meshBounds,exports.AdaptiveDpr=ur.AdaptiveDpr,exports.AdaptiveEvents=cr.AdaptiveEvents,exports.PerformanceMonitor=nr.PerformanceMonitor,exports.usePerformanceMonitor=nr.usePerformanceMonitor,exports.RenderTexture=jr.RenderTexture,exports.RenderCubeTexture=pr.RenderCubeTexture,exports.Mask=lr.Mask,exports.useMask=lr.useMask,exports.Hud=xr.Hud,exports.Fisheye=qr.Fisheye,exports.MeshPortalMaterial=dr.MeshPortalMaterial,exports.calculateScaleFactor=mr.calculateScaleFactor;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./ScreenSizer.cjs.js"),t=require("./QuadraticBezierLine.cjs.js"),o=require("./CubicBezierLine.cjs.js"),i=require("./CatmullRomLine.cjs.js"),a=require("./Line.cjs.js"),u=require("./PositionalAudio.cjs.js"),c=require("./Text.cjs.js"),p=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),x=require("./Image.cjs.js"),l=require("./Edges.cjs.js"),d=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),h=require("./ComputedAttribute.cjs.js"),C=require("./Clone.cjs.js"),S=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),T=require("./Svg.cjs.js"),b=require("./Gltf.cjs.js"),P=require("./AsciiRenderer.cjs.js"),f=require("./Splat.cjs.js"),g=require("./OrthographicCamera.cjs.js"),B=require("./PerspectiveCamera.cjs.js"),v=require("./CubeCamera.cjs.js"),A=require("./DeviceOrientationControls.cjs.js"),F=require("./FlyControls.cjs.js"),L=require("./MapControls.cjs.js"),R=require("./OrbitControls.cjs.js"),G=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),k=require("./PointerLockControls.cjs.js"),w=require("./FirstPersonControls.cjs.js"),z=require("./CameraControls.cjs.js"),I=require("./MotionPathControls.cjs.js"),O=require("./GizmoHelper.cjs.js"),y=require("./GizmoViewcube.cjs.js"),H=require("./GizmoViewport.cjs.js"),V=require("./Grid.cjs.js"),W=require("./CubeTexture.cjs.js"),K=require("./Fbx.cjs.js"),Q=require("./Ktx2.cjs.js"),N=require("./Progress.cjs.js"),U=require("./Texture.cjs.js"),X=require("./VideoTexture.cjs.js"),_=require("./useFont.cjs.js"),J=require("./useSpriteLoader.cjs.js"),Y=require("./Helper.cjs.js"),Z=require("./Stats.cjs.js"),$=require("./StatsGl.cjs.js"),ee=require("./useDepthBuffer.cjs.js"),re=require("./useAspect.cjs.js"),se=require("./useCamera.cjs.js"),te=require("./DetectGPU.cjs.js"),oe=require("./Bvh.cjs.js"),ie=require("./useContextBridge.cjs.js"),ae=require("./useAnimations.cjs.js"),ue=require("./Fbo.cjs.js"),ce=require("./useIntersect.cjs.js"),pe=require("./useBoxProjectedEnv.cjs.js"),ne=require("./BBAnchor.cjs.js"),je=require("./TrailTexture.cjs.js"),xe=require("./Example.cjs.js"),le=require("./SpriteAnimator.cjs.js"),de=require("./CurveModifier.cjs.js"),qe=require("./MeshDistortMaterial.cjs.js"),me=require("./MeshWobbleMaterial.cjs.js"),he=require("./MeshReflectorMaterial.cjs.js"),Ce=require("./MeshRefractionMaterial.cjs.js"),Se=require("./MeshTransmissionMaterial.cjs.js"),Me=require("./MeshDiscardMaterial.cjs.js"),Te=require("./PointMaterial.cjs.js"),be=require("./shaderMaterial.cjs.js"),Pe=require("./softShadows.cjs.js"),fe=require("./shapes.cjs.js"),ge=require("./RoundedBox.cjs.js"),Be=require("./ScreenQuad.cjs.js"),ve=require("./Center.cjs.js"),Ae=require("./Resize.cjs.js"),Fe=require("./Bounds.cjs.js"),Le=require("./CameraShake.cjs.js"),Re=require("./Float.cjs.js"),Ge=require("./Stage.cjs.js"),De=require("./Backdrop.cjs.js"),Ee=require("./Shadow.cjs.js"),ke=require("./Caustics.cjs.js"),we=require("./ContactShadows.cjs.js"),ze=require("./AccumulativeShadows.cjs.js"),Ie=require("./Reflector.cjs.js"),Oe=require("./SpotLight.cjs.js"),ye=require("./Environment.cjs.js"),He=require("./Lightformer.cjs.js"),Ve=require("./Sky.cjs.js"),We=require("./Stars.cjs.js"),Ke=require("./Cloud.cjs.js"),Qe=require("./Sparkles.cjs.js"),Ne=require("./useEnvironment.cjs.js"),Ue=require("./MatcapTexture.cjs.js"),Xe=require("./NormalTexture.cjs.js"),_e=require("./Wireframe.cjs.js"),Je=require("./ShadowAlpha.cjs.js"),Ye=require("./Points.cjs.js"),Ze=require("./Instances.cjs.js"),$e=require("./Segments.cjs.js"),er=require("./Detailed.cjs.js"),rr=require("./Preload.cjs.js"),sr=require("./BakeShadows.cjs.js"),tr=require("./meshBounds.cjs.js"),or=require("./AdaptiveDpr.cjs.js"),ir=require("./AdaptiveEvents.cjs.js"),ar=require("./PerformanceMonitor.cjs.js"),ur=require("./RenderTexture.cjs.js"),cr=require("./RenderCubeTexture.cjs.js"),pr=require("./Mask.cjs.js"),nr=require("./Hud.cjs.js"),jr=require("./Fisheye.cjs.js"),xr=require("./MeshPortalMaterial.cjs.js"),lr=require("./calculateScaleFactor.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("three"),require("@react-three/fiber"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("camera-controls"),require("maath"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("@monogrid/gainmap-js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.ScreenSizer=s.ScreenSizer,exports.QuadraticBezierLine=t.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.CatmullRomLine=i.CatmullRomLine,exports.Line=a.Line,exports.PositionalAudio=u.PositionalAudio,exports.Text=c.Text,exports.Text3D=p.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=x.Image,exports.Edges=l.Edges,exports.Outlines=d.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=h.ComputedAttribute,exports.Clone=C.Clone,exports.MarchingCube=S.MarchingCube,exports.MarchingCubes=S.MarchingCubes,exports.MarchingPlane=S.MarchingPlane,exports.Decal=M.Decal,exports.Svg=T.Svg,exports.Gltf=b.Gltf,exports.useGLTF=b.useGLTF,exports.AsciiRenderer=P.AsciiRenderer,exports.Splat=f.Splat,exports.OrthographicCamera=g.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=v.CubeCamera,exports.useCubeCamera=v.useCubeCamera,exports.DeviceOrientationControls=A.DeviceOrientationControls,exports.FlyControls=F.FlyControls,exports.MapControls=L.MapControls,exports.OrbitControls=R.OrbitControls,exports.TrackballControls=G.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=k.PointerLockControls,exports.FirstPersonControls=w.FirstPersonControls,exports.CameraControls=z.CameraControls,exports.MotionPathControls=I.MotionPathControls,exports.useMotion=I.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=H.GizmoViewport,exports.Grid=V.Grid,exports.CubeTexture=W.CubeTexture,exports.useCubeTexture=W.useCubeTexture,exports.Fbx=K.Fbx,exports.useFBX=K.useFBX,exports.Ktx2=Q.Ktx2,exports.useKTX2=Q.useKTX2,exports.Progress=N.Progress,exports.useProgress=N.useProgress,exports.IsObject=U.IsObject,exports.Texture=U.Texture,exports.useTexture=U.useTexture,exports.VideoTexture=X.VideoTexture,exports.useVideoTexture=X.useVideoTexture,exports.useFont=_.useFont,exports.calculateAspectRatio=J.calculateAspectRatio,exports.checkIfFrameIsEmpty=J.checkIfFrameIsEmpty,exports.getFirstItem=J.getFirstItem,exports.useSpriteLoader=J.useSpriteLoader,exports.Helper=Y.Helper,exports.useHelper=Y.useHelper,exports.Stats=Z.Stats,exports.StatsGl=$.StatsGl,exports.useDepthBuffer=ee.useDepthBuffer,exports.useAspect=re.useAspect,exports.useCamera=se.useCamera,exports.DetectGPU=te.DetectGPU,exports.useDetectGPU=te.useDetectGPU,exports.Bvh=oe.Bvh,exports.useBVH=oe.useBVH,exports.useContextBridge=ie.useContextBridge,exports.useAnimations=ae.useAnimations,exports.Fbo=ue.Fbo,exports.useFBO=ue.useFBO,exports.useIntersect=ce.useIntersect,exports.useBoxProjectedEnv=pe.useBoxProjectedEnv,exports.BBAnchor=ne.BBAnchor,exports.TrailTexture=je.TrailTexture,exports.useTrailTexture=je.useTrailTexture,exports.Example=xe.Example,exports.SpriteAnimator=le.SpriteAnimator,exports.useSpriteAnimator=le.useSpriteAnimator,exports.CurveModifier=de.CurveModifier,exports.MeshDistortMaterial=qe.MeshDistortMaterial,exports.MeshWobbleMaterial=me.MeshWobbleMaterial,exports.MeshReflectorMaterial=he.MeshReflectorMaterial,exports.MeshRefractionMaterial=Ce.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Se.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Me.MeshDiscardMaterial,exports.PointMaterial=Te.PointMaterial,exports.PointMaterialImpl=Te.PointMaterialImpl,exports.shaderMaterial=be.shaderMaterial,exports.SoftShadows=Pe.SoftShadows,exports.Box=fe.Box,exports.Capsule=fe.Capsule,exports.Circle=fe.Circle,exports.Cone=fe.Cone,exports.Cylinder=fe.Cylinder,exports.Dodecahedron=fe.Dodecahedron,exports.Extrude=fe.Extrude,exports.Icosahedron=fe.Icosahedron,exports.Lathe=fe.Lathe,exports.Octahedron=fe.Octahedron,exports.Plane=fe.Plane,exports.Polyhedron=fe.Polyhedron,exports.Ring=fe.Ring,exports.Shape=fe.Shape,exports.Sphere=fe.Sphere,exports.Tetrahedron=fe.Tetrahedron,exports.Torus=fe.Torus,exports.TorusKnot=fe.TorusKnot,exports.Tube=fe.Tube,exports.RoundedBox=ge.RoundedBox,exports.ScreenQuad=Be.ScreenQuad,exports.Center=ve.Center,exports.Resize=Ae.Resize,exports.Bounds=Fe.Bounds,exports.useBounds=Fe.useBounds,exports.CameraShake=Le.CameraShake,exports.Float=Re.Float,exports.Stage=Ge.Stage,exports.Backdrop=De.Backdrop,exports.Shadow=Ee.Shadow,exports.Caustics=ke.Caustics,exports.ContactShadows=we.ContactShadows,exports.AccumulativeShadows=ze.AccumulativeShadows,exports.RandomizedLight=ze.RandomizedLight,exports.accumulativeContext=ze.accumulativeContext,exports.Reflector=Ie.Reflector,exports.SpotLight=Oe.SpotLight,exports.SpotLightShadow=Oe.SpotLightShadow,exports.Environment=ye.Environment,exports.EnvironmentCube=ye.EnvironmentCube,exports.EnvironmentMap=ye.EnvironmentMap,exports.EnvironmentPortal=ye.EnvironmentPortal,exports.Lightformer=He.Lightformer,exports.Sky=Ve.Sky,exports.calcPosFromAngles=Ve.calcPosFromAngles,exports.Stars=We.Stars,exports.Cloud=Ke.Cloud,exports.CloudInstance=Ke.CloudInstance,exports.Clouds=Ke.Clouds,exports.Sparkles=Qe.Sparkles,exports.useEnvironment=Ne.useEnvironment,exports.MatcapTexture=Ue.MatcapTexture,exports.useMatcapTexture=Ue.useMatcapTexture,exports.NormalTexture=Xe.NormalTexture,exports.useNormalTexture=Xe.useNormalTexture,exports.Wireframe=_e.Wireframe,exports.ShadowAlpha=Je.ShadowAlpha,exports.Point=Ye.Point,exports.Points=Ye.Points,exports.PointsBuffer=Ye.PointsBuffer,exports.PositionPoint=Ye.PositionPoint,exports.Instance=Ze.Instance,exports.Instances=Ze.Instances,exports.Merged=Ze.Merged,exports.Segment=$e.Segment,exports.SegmentObject=$e.SegmentObject,exports.Segments=$e.Segments,exports.Detailed=er.Detailed,exports.Preload=rr.Preload,exports.BakeShadows=sr.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=or.AdaptiveDpr,exports.AdaptiveEvents=ir.AdaptiveEvents,exports.PerformanceMonitor=ar.PerformanceMonitor,exports.usePerformanceMonitor=ar.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.RenderCubeTexture=cr.RenderCubeTexture,exports.Mask=pr.Mask,exports.useMask=pr.useMask,exports.Hud=nr.Hud,exports.Fisheye=jr.Fisheye,exports.MeshPortalMaterial=xr.MeshPortalMaterial,exports.calculateScaleFactor=lr.calculateScaleFactor;
|
package/core/index.d.ts
CHANGED
|
@@ -41,13 +41,12 @@ export * from './GizmoHelper';
|
|
|
41
41
|
export * from './GizmoViewcube';
|
|
42
42
|
export * from './GizmoViewport';
|
|
43
43
|
export * from './Grid';
|
|
44
|
-
export * from './
|
|
45
|
-
export * from './
|
|
46
|
-
export * from './
|
|
47
|
-
export * from './
|
|
48
|
-
export * from './
|
|
49
|
-
export * from './
|
|
50
|
-
export * from './useVideoTexture';
|
|
44
|
+
export * from './CubeTexture';
|
|
45
|
+
export * from './Fbx';
|
|
46
|
+
export * from './Ktx2';
|
|
47
|
+
export * from './Progress';
|
|
48
|
+
export * from './Texture';
|
|
49
|
+
export * from './VideoTexture';
|
|
51
50
|
export * from './useFont';
|
|
52
51
|
export * from './useSpriteLoader';
|
|
53
52
|
export * from './Helper';
|
|
@@ -56,17 +55,15 @@ export * from './StatsGl';
|
|
|
56
55
|
export * from './useDepthBuffer';
|
|
57
56
|
export * from './useAspect';
|
|
58
57
|
export * from './useCamera';
|
|
59
|
-
export * from './
|
|
60
|
-
export * from './
|
|
61
|
-
export * from './useBVH';
|
|
58
|
+
export * from './DetectGPU';
|
|
59
|
+
export * from './Bvh';
|
|
62
60
|
export * from './useContextBridge';
|
|
63
61
|
export * from './useAnimations';
|
|
64
|
-
export * from './
|
|
62
|
+
export * from './Fbo';
|
|
65
63
|
export * from './useIntersect';
|
|
66
64
|
export * from './useBoxProjectedEnv';
|
|
67
65
|
export * from './BBAnchor';
|
|
68
|
-
export * from './
|
|
69
|
-
export * from './useCubeCamera';
|
|
66
|
+
export * from './TrailTexture';
|
|
70
67
|
export * from './Example';
|
|
71
68
|
export * from './SpriteAnimator';
|
|
72
69
|
export * from './CurveModifier';
|
|
@@ -102,8 +99,8 @@ export * from './Stars';
|
|
|
102
99
|
export * from './Cloud';
|
|
103
100
|
export * from './Sparkles';
|
|
104
101
|
export * from './useEnvironment';
|
|
105
|
-
export * from './
|
|
106
|
-
export * from './
|
|
102
|
+
export * from './MatcapTexture';
|
|
103
|
+
export * from './NormalTexture';
|
|
107
104
|
export * from './Wireframe';
|
|
108
105
|
export * from './ShadowAlpha';
|
|
109
106
|
export * from './Points';
|
package/core/index.js
CHANGED
|
@@ -20,12 +20,12 @@ export { Clone } from './Clone.js';
|
|
|
20
20
|
export { MarchingCube, MarchingCubes, MarchingPlane } from './MarchingCubes.js';
|
|
21
21
|
export { Decal } from './Decal.js';
|
|
22
22
|
export { Svg } from './Svg.js';
|
|
23
|
-
export { Gltf } from './Gltf.js';
|
|
23
|
+
export { Gltf, useGLTF } from './Gltf.js';
|
|
24
24
|
export { AsciiRenderer } from './AsciiRenderer.js';
|
|
25
25
|
export { Splat } from './Splat.js';
|
|
26
26
|
export { OrthographicCamera } from './OrthographicCamera.js';
|
|
27
27
|
export { PerspectiveCamera } from './PerspectiveCamera.js';
|
|
28
|
-
export { CubeCamera } from './CubeCamera.js';
|
|
28
|
+
export { CubeCamera, useCubeCamera } from './CubeCamera.js';
|
|
29
29
|
export { DeviceOrientationControls } from './DeviceOrientationControls.js';
|
|
30
30
|
export { FlyControls } from './FlyControls.js';
|
|
31
31
|
export { MapControls } from './MapControls.js';
|
|
@@ -41,32 +41,29 @@ export { GizmoHelper, useGizmoContext } from './GizmoHelper.js';
|
|
|
41
41
|
export { GizmoViewcube } from './GizmoViewcube.js';
|
|
42
42
|
export { GizmoViewport } from './GizmoViewport.js';
|
|
43
43
|
export { Grid } from './Grid.js';
|
|
44
|
-
export { useCubeTexture } from './
|
|
45
|
-
export { useFBX } from './
|
|
46
|
-
export {
|
|
47
|
-
export {
|
|
48
|
-
export {
|
|
49
|
-
export {
|
|
50
|
-
export { useVideoTexture } from './useVideoTexture.js';
|
|
44
|
+
export { CubeTexture, useCubeTexture } from './CubeTexture.js';
|
|
45
|
+
export { Fbx, useFBX } from './Fbx.js';
|
|
46
|
+
export { Ktx2, useKTX2 } from './Ktx2.js';
|
|
47
|
+
export { Progress, useProgress } from './Progress.js';
|
|
48
|
+
export { IsObject, Texture, useTexture } from './Texture.js';
|
|
49
|
+
export { VideoTexture, useVideoTexture } from './VideoTexture.js';
|
|
51
50
|
export { useFont } from './useFont.js';
|
|
52
|
-
export { calculateAspectRatio, getFirstItem, useSpriteLoader } from './useSpriteLoader.js';
|
|
53
|
-
export { Helper } from './Helper.js';
|
|
51
|
+
export { calculateAspectRatio, checkIfFrameIsEmpty, getFirstItem, useSpriteLoader } from './useSpriteLoader.js';
|
|
52
|
+
export { Helper, useHelper } from './Helper.js';
|
|
54
53
|
export { Stats } from './Stats.js';
|
|
55
54
|
export { StatsGl } from './StatsGl.js';
|
|
56
55
|
export { useDepthBuffer } from './useDepthBuffer.js';
|
|
57
56
|
export { useAspect } from './useAspect.js';
|
|
58
57
|
export { useCamera } from './useCamera.js';
|
|
59
|
-
export { useDetectGPU } from './
|
|
60
|
-
export {
|
|
61
|
-
export { Bvh, useBVH } from './useBVH.js';
|
|
58
|
+
export { DetectGPU, useDetectGPU } from './DetectGPU.js';
|
|
59
|
+
export { Bvh, useBVH } from './Bvh.js';
|
|
62
60
|
export { useContextBridge } from './useContextBridge.js';
|
|
63
61
|
export { useAnimations } from './useAnimations.js';
|
|
64
|
-
export { useFBO } from './
|
|
62
|
+
export { Fbo, useFBO } from './Fbo.js';
|
|
65
63
|
export { useIntersect } from './useIntersect.js';
|
|
66
64
|
export { useBoxProjectedEnv } from './useBoxProjectedEnv.js';
|
|
67
65
|
export { BBAnchor } from './BBAnchor.js';
|
|
68
|
-
export { useTrailTexture } from './
|
|
69
|
-
export { useCubeCamera } from './useCubeCamera.js';
|
|
66
|
+
export { TrailTexture, useTrailTexture } from './TrailTexture.js';
|
|
70
67
|
export { Example } from './Example.js';
|
|
71
68
|
export { SpriteAnimator, useSpriteAnimator } from './SpriteAnimator.js';
|
|
72
69
|
export { CurveModifier } from './CurveModifier.js';
|
|
@@ -102,8 +99,8 @@ export { Stars } from './Stars.js';
|
|
|
102
99
|
export { Cloud, CloudInstance, Clouds } from './Cloud.js';
|
|
103
100
|
export { Sparkles } from './Sparkles.js';
|
|
104
101
|
export { useEnvironment } from './useEnvironment.js';
|
|
105
|
-
export { useMatcapTexture } from './
|
|
106
|
-
export { useNormalTexture } from './
|
|
102
|
+
export { MatcapTexture, useMatcapTexture } from './MatcapTexture.js';
|
|
103
|
+
export { NormalTexture, useNormalTexture } from './NormalTexture.js';
|
|
107
104
|
export { Wireframe } from './Wireframe.js';
|
|
108
105
|
export { ShadowAlpha } from './ShadowAlpha.js';
|
|
109
106
|
export { Point, Points, PointsBuffer, PositionPoint } from './Points.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber"),u=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber"),u=require("./Fbo.cjs.js");function n(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=n(r);exports.useDepthBuffer=function({size:r=256,frames:n=1/0}={}){const c=t.useThree((e=>e.viewport.dpr)),{width:o,height:i}=t.useThree((e=>e.size)),a=r||o*c,f=r||i*c,p=s.useMemo((()=>{const r=new e.DepthTexture(a,f);return r.format=e.DepthFormat,r.type=e.UnsignedShortType,{depthTexture:r}}),[a,f]);let d=0;const h=u.useFBO(a,f,p);return t.useFrame((e=>{(n===1/0||d<n)&&(e.gl.setRenderTarget(h),e.gl.render(e.scene,e.camera),e.gl.setRenderTarget(null),d++)})),h.depthTexture};
|
package/core/useDepthBuffer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DepthTexture, DepthFormat, UnsignedShortType } from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThree, useFrame } from '@react-three/fiber';
|
|
4
|
-
import { useFBO } from './
|
|
4
|
+
import { useFBO } from './Fbo.js';
|
|
5
5
|
|
|
6
6
|
function useDepthBuffer({
|
|
7
7
|
size = 256,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("@react-three/fiber"),t=require("react");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("@react-three/fiber"),t=require("react");function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=o(e),s=o(t);const a=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){return e[Object.keys(e)[0]][0]}return{w:0,h:0}},u=e=>{for(let r=3;r<e.length;r+=4)if(0!==e[r])return!1;return!0},i=(e,r,t,o)=>{const s=r*(o.aspect>e/r?o.width/e:o.height/r),a=e*(o.aspect>e/r?o.width/e:o.height/r)*t,u=s*t;let i=Math.min(1,a),c=Math.min(1,u);return a>1&&(i=1,c=u/a*1),new n.Vector3(i,c,1)};function c(o,c,f,h,l){const m=r.useThree((e=>e.viewport)),d=s.useRef(null),w=s.useRef(0),[g,p]=t.useState(null),[y,x]=s.useState(new n.Texture),S=new n.TextureLoader,[b,L]=t.useState(null);function j(e){(e||o)&&new Promise((r=>{S.load(null!=e?e:o,r)})).then((e=>{z(null,e)}))}function O(e,r,t){const o=fetch(e).then((e=>e.json())),n=new Promise((e=>{S.load(r,e)}));Promise.all([o,n]).then((e=>{t(e[0],e[1])}))}s.useLayoutEffect((()=>(c&&o?O(c,o,z):o&&j(),()=>{o&&r.useLoader.clear(e.TextureLoader,o)})),[]);const z=(e,r)=>{let t=new n.Vector3(1,1,1);if(null===e){if(r&&h){const e=r.image.width,o=r.image.height;w.current=h;const{rows:n,columns:s,frameWidth:a,frameHeight:u,emptyFrames:c}=v(r,h);d.current={frames:[],meta:{version:"1.0",size:{w:e,h:o},rows:n,columns:s,frameWidth:a,frameHeight:u,scale:"1"}};for(let e=0;e<n;e++)for(let r=0;r<s;r++){(null!=c?c:[]).some((t=>t.row===e&&t.col===r))||d.current.frames.push({frame:{x:r*a,y:e*u,w:a,h:u},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:a,h:u},sourceSize:{w:a,h:u}})}t=i(a,u,.1,m)}}else if(r){d.current=e,d.current.frames=A(),w.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length;const{w:r,h:o}=a(e.frames).sourceSize;t=i(r,o,.1,m)}p(d.current),"encoding"in r?r.encoding=3001:r.colorSpace="srgb",x(r),L({spriteTexture:r,spriteData:d.current,aspect:t})},v=(e,r)=>{if(e.image){const t=document.createElement("canvas"),o=t.getContext("2d");t.width=e.image.width,t.height=e.image.height,o.drawImage(e.image,0,0);const n=e.image.width,s=e.image.height,a=Math.round(Math.sqrt(r*(n/s))),i=Math.round(r/a),c=n/a,f=s/i,h=[];for(let e=0;e<i;e++)for(let t=0;t<a;t++){if(e*a+t>=r){h.push({row:e,col:t});continue}const n=o.getImageData(t*c,e*f,c,f).data;u(n)&&h.push({row:e,col:t})}return{rows:i,columns:a,frameWidth:c,frameHeight:f,emptyFrames:h}}return{rows:0,columns:0,frameWidth:0,frameHeight:0,emptyFrames:[]}},A=()=>{const e={},r=d.current,t=f;if(t&&Array.isArray(r.frames)){for(let o=0;o<t.length;o++){e[t[o]]=[];for(const n of r.frames){const r=n.frame,s=r.x,a=r.y,u=r.w,i=r.h,c=n.sourceSize.w,f=n.sourceSize.h;"string"==typeof n.filename&&-1!==n.filename.toLowerCase().indexOf(t[o].toLowerCase())&&e[t[o]].push({x:s,y:a,w:u,h:i,frame:r,sourceSize:{w:c,h:f}})}}return e}if(t&&"object"==typeof r.frames){for(let o=0;o<t.length;o++){e[t[o]]=[];for(const n in r.frames){const s=r.frames[n],a=s.frame,u=a.x,i=a.y,c=a.w,f=a.h,h=s.sourceSize.w,l=s.sourceSize.h;"string"==typeof n&&-1!==n.toLowerCase().indexOf(t[o].toLowerCase())&&e[t[o]].push({x:u,y:i,w:c,h:f,frame:a,sourceSize:{w:h,h:l}})}}return e}{const e=[];for(const t in r.frames)e.push(r.frames[t]);return e}};return s.useLayoutEffect((()=>{null==l||l(y,g)}),[y,g]),{spriteObj:b,loadJsonAndTexture:function(e,r){r&&e?O(r,e,z):j(e)}}}c.preload=t=>r.useLoader.preload(e.TextureLoader,t),c.clear=t=>r.useLoader.clear(e.TextureLoader,t),exports.calculateAspectRatio=i,exports.checkIfFrameIsEmpty=u,exports.getFirstItem=a,exports.useSpriteLoader=c;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Texture } from 'three';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
export declare const getFirstItem: (param: any) => any;
|
|
4
|
+
export declare const checkIfFrameIsEmpty: (frameData: Uint8ClampedArray) => boolean;
|
|
4
5
|
export declare const calculateAspectRatio: (width: number, height: number, factor: number, v: any) => THREE.Vector3;
|
|
5
6
|
export declare function useSpriteLoader<Url extends string>(input?: Url | null, json?: string | null, animationNames?: string[] | null, numberOfFrames?: number | null, onLoad?: (texture: Texture, textureData?: any) => void): any;
|
|
6
7
|
export declare namespace useSpriteLoader {
|