@remotion/three 4.0.386 → 4.0.388
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/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
1
|
export { ThreeCanvas, ThreeCanvasProps } from './ThreeCanvas';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import type { UseOffthreadVideoTextureOptions as UseOffthreadVideoTextureOptionsType } from './use-offthread-video-texture';
|
|
3
|
+
import { useOffthreadVideoTexture as useOffthreadVideoTextureType } from './use-offthread-video-texture';
|
|
4
|
+
import type { UseVideoTextureOptions as UseVideoTextureOptionsType } from './use-video-texture';
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated useOffthreadVideoTexture has been deprecated.
|
|
7
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
8
|
+
*/
|
|
9
|
+
declare const useOffthreadVideoTexture: typeof useOffthreadVideoTextureType;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated useOffthreadVideoTexture has been deprecated.
|
|
12
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
13
|
+
*/
|
|
14
|
+
type UseOffthreadVideoTextureOptions = UseOffthreadVideoTextureOptionsType;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated useVideoTexture has been deprecated.
|
|
17
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
18
|
+
*/
|
|
19
|
+
declare const useVideoTexture: (videoRef: React.RefObject<HTMLVideoElement | null>) => import("three").VideoTexture | null;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated useVideoTexture has been deprecated.
|
|
22
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
23
|
+
*/
|
|
24
|
+
type UseVideoTextureOptions = UseVideoTextureOptionsType;
|
|
25
|
+
export { useOffthreadVideoTexture, UseOffthreadVideoTextureOptions, useVideoTexture, UseVideoTextureOptions, };
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useVideoTexture = exports.useOffthreadVideoTexture = exports.ThreeCanvas = void 0;
|
|
4
4
|
var ThreeCanvas_1 = require("./ThreeCanvas");
|
|
5
5
|
Object.defineProperty(exports, "ThreeCanvas", { enumerable: true, get: function () { return ThreeCanvas_1.ThreeCanvas; } });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const use_offthread_video_texture_1 = require("./use-offthread-video-texture");
|
|
7
|
+
const use_video_texture_1 = require("./use-video-texture");
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated useOffthreadVideoTexture has been deprecated.
|
|
10
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
11
|
+
*/
|
|
12
|
+
const useOffthreadVideoTexture = use_offthread_video_texture_1.useOffthreadVideoTexture;
|
|
13
|
+
exports.useOffthreadVideoTexture = useOffthreadVideoTexture;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated useVideoTexture has been deprecated.
|
|
16
|
+
* Use the approach documented at https://remotion.dev/docs/videos/as-threejs-texture instead.
|
|
17
|
+
*/
|
|
18
|
+
const useVideoTexture = use_video_texture_1.useVideoTexture;
|
|
19
|
+
exports.useVideoTexture = useVideoTexture;
|
|
@@ -59,7 +59,7 @@ const useInnerVideoTexture = ({ playbackRate, src, transparent, toneMapped, dela
|
|
|
59
59
|
}, [toneMapped, currentTime, src, transparent]);
|
|
60
60
|
const [textLoaderPromise] = (0, react_1.useState)(() => Promise.resolve().then(() => __importStar(require('three/src/loaders/TextureLoader.js'))));
|
|
61
61
|
const [imageTexture, setImageTexture] = (0, react_1.useState)(null);
|
|
62
|
-
const { delayRender, continueRender } = (0, remotion_1.useDelayRender)();
|
|
62
|
+
const { delayRender, continueRender, cancelRender } = (0, remotion_1.useDelayRender)();
|
|
63
63
|
const fetchTexture = (0, react_1.useCallback)(() => {
|
|
64
64
|
const imageTextureHandle = delayRender('fetch offthread video frame', {
|
|
65
65
|
retries: delayRenderRetries !== null && delayRenderRetries !== void 0 ? delayRenderRetries : undefined,
|
|
@@ -79,7 +79,7 @@ const useInnerVideoTexture = ({ playbackRate, src, transparent, toneMapped, dela
|
|
|
79
79
|
continueRender(imageTextureHandle);
|
|
80
80
|
})
|
|
81
81
|
.catch((err) => {
|
|
82
|
-
|
|
82
|
+
cancelRender(err);
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
return () => {
|
|
@@ -94,6 +94,7 @@ const useInnerVideoTexture = ({ playbackRate, src, transparent, toneMapped, dela
|
|
|
94
94
|
delayRenderTimeoutInMilliseconds,
|
|
95
95
|
continueRender,
|
|
96
96
|
delayRender,
|
|
97
|
+
cancelRender,
|
|
97
98
|
]);
|
|
98
99
|
(0, react_1.useLayoutEffect)(() => {
|
|
99
100
|
const cleanup = fetchTexture();
|
|
@@ -113,7 +114,10 @@ function useOffthreadVideoTexture({ src, playbackRate = 1, transparent = false,
|
|
|
113
114
|
throw new Error('src must be provided to useOffthreadVideoTexture');
|
|
114
115
|
}
|
|
115
116
|
const env = (0, remotion_1.useRemotionEnvironment)();
|
|
116
|
-
const { isRendering } = env;
|
|
117
|
+
const { isRendering, isClientSideRendering } = env;
|
|
118
|
+
if (isClientSideRendering) {
|
|
119
|
+
throw new Error('useOffthreadVideoTexture() cannot be used in client-side rendering.');
|
|
120
|
+
}
|
|
117
121
|
if (!isRendering) {
|
|
118
122
|
throw new Error('useOffthreadVideoTexture() can only be used during rendering. Use useRemotionEnvironment().isRendering to render it conditionally.');
|
|
119
123
|
}
|
|
@@ -50,13 +50,18 @@ const warnAboutRequestVideoFrameCallback = () => {
|
|
|
50
50
|
* @see [Documentation](https://www.remotion.dev/docs/use-video-texture)
|
|
51
51
|
*/
|
|
52
52
|
const useVideoTexture = (videoRef) => {
|
|
53
|
-
const { delayRender, continueRender } = (0, remotion_1.useDelayRender)();
|
|
53
|
+
const { delayRender, continueRender, cancelRender } = (0, remotion_1.useDelayRender)();
|
|
54
54
|
const [loaded] = (0, react_1.useState)(() => {
|
|
55
55
|
if (typeof document === 'undefined') {
|
|
56
56
|
return 0;
|
|
57
57
|
}
|
|
58
58
|
return delayRender(`Waiting for texture in useVideoTexture() to be loaded`);
|
|
59
59
|
});
|
|
60
|
+
const environment = (0, remotion_1.useRemotionEnvironment)();
|
|
61
|
+
const { isClientSideRendering } = environment;
|
|
62
|
+
if (isClientSideRendering) {
|
|
63
|
+
throw new Error('useVideoTexture() cannot be used in client side rendering.');
|
|
64
|
+
}
|
|
60
65
|
const [videoTexture, setVideoTexture] = (0, react_1.useState)(null);
|
|
61
66
|
const [vidText] = (0, react_1.useState)(() => Promise.resolve().then(() => __importStar(require('three/src/textures/VideoTexture.js'))));
|
|
62
67
|
const frame = (0, remotion_1.useCurrentFrame)();
|
|
@@ -73,9 +78,9 @@ const useVideoTexture = (videoRef) => {
|
|
|
73
78
|
continueRender(loaded);
|
|
74
79
|
})
|
|
75
80
|
.catch((err) => {
|
|
76
|
-
|
|
81
|
+
cancelRender(err);
|
|
77
82
|
});
|
|
78
|
-
}, [loaded, vidText, videoRef, continueRender]);
|
|
83
|
+
}, [loaded, vidText, videoRef, continueRender, cancelRender]);
|
|
79
84
|
react_1.default.useLayoutEffect(() => {
|
|
80
85
|
if (!videoRef.current) {
|
|
81
86
|
return;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -126,7 +126,6 @@ var ThreeCanvas = (props) => {
|
|
|
126
126
|
import { useCallback as useCallback2, useLayoutEffect as useLayoutEffect3, useMemo, useState as useState2 } from "react";
|
|
127
127
|
import {
|
|
128
128
|
Internals as Internals2,
|
|
129
|
-
cancelRender,
|
|
130
129
|
useCurrentFrame as useCurrentFrame2,
|
|
131
130
|
useDelayRender as useDelayRender3,
|
|
132
131
|
useRemotionEnvironment as useRemotionEnvironment2,
|
|
@@ -161,7 +160,7 @@ var useInnerVideoTexture = ({
|
|
|
161
160
|
}, [toneMapped, currentTime, src, transparent]);
|
|
162
161
|
const [textLoaderPromise] = useState2(() => import("three/src/loaders/TextureLoader.js"));
|
|
163
162
|
const [imageTexture, setImageTexture] = useState2(null);
|
|
164
|
-
const { delayRender, continueRender } = useDelayRender3();
|
|
163
|
+
const { delayRender, continueRender, cancelRender } = useDelayRender3();
|
|
165
164
|
const fetchTexture = useCallback2(() => {
|
|
166
165
|
const imageTextureHandle = delayRender("fetch offthread video frame", {
|
|
167
166
|
retries: delayRenderRetries ?? undefined,
|
|
@@ -192,7 +191,8 @@ var useInnerVideoTexture = ({
|
|
|
192
191
|
delayRenderRetries,
|
|
193
192
|
delayRenderTimeoutInMilliseconds,
|
|
194
193
|
continueRender,
|
|
195
|
-
delayRender
|
|
194
|
+
delayRender,
|
|
195
|
+
cancelRender
|
|
196
196
|
]);
|
|
197
197
|
useLayoutEffect3(() => {
|
|
198
198
|
const cleanup = fetchTexture();
|
|
@@ -214,7 +214,10 @@ function useOffthreadVideoTexture({
|
|
|
214
214
|
throw new Error("src must be provided to useOffthreadVideoTexture");
|
|
215
215
|
}
|
|
216
216
|
const env = useRemotionEnvironment2();
|
|
217
|
-
const { isRendering } = env;
|
|
217
|
+
const { isRendering, isClientSideRendering } = env;
|
|
218
|
+
if (isClientSideRendering) {
|
|
219
|
+
throw new Error("useOffthreadVideoTexture() cannot be used in client-side rendering.");
|
|
220
|
+
}
|
|
218
221
|
if (!isRendering) {
|
|
219
222
|
throw new Error("useOffthreadVideoTexture() can only be used during rendering. Use useRemotionEnvironment().isRendering to render it conditionally.");
|
|
220
223
|
}
|
|
@@ -227,9 +230,14 @@ function useOffthreadVideoTexture({
|
|
|
227
230
|
delayRenderTimeoutInMilliseconds
|
|
228
231
|
});
|
|
229
232
|
}
|
|
233
|
+
|
|
230
234
|
// src/use-video-texture.ts
|
|
231
235
|
import React3, { useCallback as useCallback3, useEffect as useEffect2, useState as useState3 } from "react";
|
|
232
|
-
import {
|
|
236
|
+
import {
|
|
237
|
+
useCurrentFrame as useCurrentFrame3,
|
|
238
|
+
useDelayRender as useDelayRender4,
|
|
239
|
+
useRemotionEnvironment as useRemotionEnvironment3
|
|
240
|
+
} from "remotion";
|
|
233
241
|
var warned = false;
|
|
234
242
|
var warnAboutRequestVideoFrameCallback = () => {
|
|
235
243
|
if (warned) {
|
|
@@ -239,13 +247,18 @@ var warnAboutRequestVideoFrameCallback = () => {
|
|
|
239
247
|
console.warn("Browser does not support requestVideoFrameCallback. Cannot display video.");
|
|
240
248
|
};
|
|
241
249
|
var useVideoTexture = (videoRef) => {
|
|
242
|
-
const { delayRender, continueRender } = useDelayRender4();
|
|
250
|
+
const { delayRender, continueRender, cancelRender } = useDelayRender4();
|
|
243
251
|
const [loaded] = useState3(() => {
|
|
244
252
|
if (typeof document === "undefined") {
|
|
245
253
|
return 0;
|
|
246
254
|
}
|
|
247
255
|
return delayRender(`Waiting for texture in useVideoTexture() to be loaded`);
|
|
248
256
|
});
|
|
257
|
+
const environment = useRemotionEnvironment3();
|
|
258
|
+
const { isClientSideRendering } = environment;
|
|
259
|
+
if (isClientSideRendering) {
|
|
260
|
+
throw new Error("useVideoTexture() cannot be used in client side rendering.");
|
|
261
|
+
}
|
|
249
262
|
const [videoTexture, setVideoTexture] = useState3(null);
|
|
250
263
|
const [vidText] = useState3(() => import("three/src/textures/VideoTexture.js"));
|
|
251
264
|
const frame = useCurrentFrame3();
|
|
@@ -260,9 +273,9 @@ var useVideoTexture = (videoRef) => {
|
|
|
260
273
|
setVideoTexture(vt);
|
|
261
274
|
continueRender(loaded);
|
|
262
275
|
}).catch((err) => {
|
|
263
|
-
|
|
276
|
+
cancelRender(err);
|
|
264
277
|
});
|
|
265
|
-
}, [loaded, vidText, videoRef, continueRender]);
|
|
278
|
+
}, [loaded, vidText, videoRef, continueRender, cancelRender]);
|
|
266
279
|
React3.useLayoutEffect(() => {
|
|
267
280
|
if (!videoRef.current) {
|
|
268
281
|
return;
|
|
@@ -298,8 +311,12 @@ var useVideoTexture = (videoRef) => {
|
|
|
298
311
|
}
|
|
299
312
|
return videoTexture;
|
|
300
313
|
};
|
|
314
|
+
|
|
315
|
+
// src/index.ts
|
|
316
|
+
var useOffthreadVideoTexture2 = useOffthreadVideoTexture;
|
|
317
|
+
var useVideoTexture2 = useVideoTexture;
|
|
301
318
|
export {
|
|
302
|
-
useVideoTexture,
|
|
303
|
-
useOffthreadVideoTexture,
|
|
319
|
+
useVideoTexture2 as useVideoTexture,
|
|
320
|
+
useOffthreadVideoTexture2 as useOffthreadVideoTexture,
|
|
304
321
|
ThreeCanvas
|
|
305
322
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/three"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/three",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.388",
|
|
7
7
|
"description": "Include React Three Fiber components in a Remotion video",
|
|
8
8
|
"main": "dist/cjs/index.js",
|
|
9
9
|
"types": "dist/cjs/index.d.ts",
|
|
@@ -21,25 +21,25 @@
|
|
|
21
21
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"remotion": "4.0.
|
|
24
|
+
"remotion": "4.0.388"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@react-three/fiber": ">=8.0.0",
|
|
28
28
|
"react": ">=16.8.0",
|
|
29
29
|
"react-dom": ">=16.8.0",
|
|
30
30
|
"three": ">=0.137.0",
|
|
31
|
-
"remotion": "4.0.
|
|
31
|
+
"remotion": "4.0.388"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@react-three/fiber": "9.2.0",
|
|
35
35
|
"@types/react-reconciler": "0.32.0",
|
|
36
36
|
"@types/three": "0.170.0",
|
|
37
37
|
"@types/web": "0.0.166",
|
|
38
|
-
"react": "19.2.
|
|
39
|
-
"react-dom": "19.2.
|
|
40
|
-
"remotion": "4.0.
|
|
38
|
+
"react": "19.2.3",
|
|
39
|
+
"react-dom": "19.2.3",
|
|
40
|
+
"remotion": "4.0.388",
|
|
41
41
|
"three": "0.178.0",
|
|
42
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
42
|
+
"@remotion/eslint-config-internal": "4.0.388",
|
|
43
43
|
"eslint": "9.19.0"
|
|
44
44
|
},
|
|
45
45
|
"keywords": [
|