@react-three/fiber 10.0.0-canary.aecbafb → 10.0.0-canary.c3fa45d
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/index.cjs +74 -19
- package/dist/index.d.cts +19 -7
- package/dist/index.d.mts +19 -7
- package/dist/index.d.ts +19 -7
- package/dist/index.mjs +75 -20
- package/dist/legacy.cjs +74 -19
- package/dist/legacy.d.cts +19 -7
- package/dist/legacy.d.mts +19 -7
- package/dist/legacy.d.ts +19 -7
- package/dist/legacy.mjs +75 -20
- package/dist/webgpu/index.cjs +74 -19
- package/dist/webgpu/index.d.cts +19 -7
- package/dist/webgpu/index.d.mts +19 -7
- package/dist/webgpu/index.d.ts +19 -7
- package/dist/webgpu/index.mjs +75 -20
- package/package.json +1 -1
package/dist/legacy.cjs
CHANGED
|
@@ -169,7 +169,7 @@ function useEnvironment({
|
|
|
169
169
|
fiber.useLoader.clear(loader, multiFile ? [files] : files);
|
|
170
170
|
}
|
|
171
171
|
renderer.domElement.addEventListener("webglcontextlost", clearGainmapTexture, { once: true });
|
|
172
|
-
}, [files, renderer.domElement]);
|
|
172
|
+
}, [extension, files, loader, multiFile, renderer.domElement]);
|
|
173
173
|
const loaderResult = fiber.useLoader(
|
|
174
174
|
loader,
|
|
175
175
|
multiFile ? [files] : files,
|
|
@@ -369,7 +369,22 @@ function EnvironmentPortal({
|
|
|
369
369
|
environmentIntensity,
|
|
370
370
|
environmentRotation
|
|
371
371
|
});
|
|
372
|
-
}, [
|
|
372
|
+
}, [
|
|
373
|
+
children,
|
|
374
|
+
virtualScene,
|
|
375
|
+
fbo.texture,
|
|
376
|
+
scene,
|
|
377
|
+
defaultScene,
|
|
378
|
+
background,
|
|
379
|
+
frames,
|
|
380
|
+
gl,
|
|
381
|
+
blur,
|
|
382
|
+
backgroundBlurriness,
|
|
383
|
+
backgroundIntensity,
|
|
384
|
+
backgroundRotation,
|
|
385
|
+
environmentIntensity,
|
|
386
|
+
environmentRotation
|
|
387
|
+
]);
|
|
373
388
|
let count = 1;
|
|
374
389
|
fiber.useFrame(() => {
|
|
375
390
|
if (frames === Infinity || count < frames) {
|
|
@@ -1296,7 +1311,7 @@ function createEvents(store) {
|
|
|
1296
1311
|
}
|
|
1297
1312
|
function processDeferredPointer(event, pointerId) {
|
|
1298
1313
|
const state = store.getState();
|
|
1299
|
-
const {
|
|
1314
|
+
const { internal } = state;
|
|
1300
1315
|
if (!state.events.enabled) return;
|
|
1301
1316
|
const filter = filterPointerEvents;
|
|
1302
1317
|
const hits = intersect(event, filter);
|
|
@@ -1531,6 +1546,7 @@ function createPointerEvents(store) {
|
|
|
1531
1546
|
}
|
|
1532
1547
|
},
|
|
1533
1548
|
connect: (target) => {
|
|
1549
|
+
if (!target) return;
|
|
1534
1550
|
const { set, events } = store.getState();
|
|
1535
1551
|
events.disconnect?.();
|
|
1536
1552
|
set((state) => ({ events: { ...state.events, connected: target } }));
|
|
@@ -1893,7 +1909,7 @@ function shouldRun(job, now) {
|
|
|
1893
1909
|
const minInterval = 1e3 / job.fps;
|
|
1894
1910
|
const lastRun = job.lastRun ?? 0;
|
|
1895
1911
|
const elapsed = now - lastRun;
|
|
1896
|
-
if (elapsed < minInterval) return false;
|
|
1912
|
+
if (elapsed < minInterval - 1) return false;
|
|
1897
1913
|
if (job.drop) {
|
|
1898
1914
|
job.lastRun = now;
|
|
1899
1915
|
} else {
|
|
@@ -2920,14 +2936,16 @@ const createStore = (invalidate, advance) => {
|
|
|
2920
2936
|
oldSize = size;
|
|
2921
2937
|
oldDpr = viewport.dpr;
|
|
2922
2938
|
updateCamera(camera, size);
|
|
2923
|
-
if (canvasTarget) {
|
|
2939
|
+
if (internal.isSecondary && canvasTarget) {
|
|
2924
2940
|
if (viewport.dpr > 0) canvasTarget.setPixelRatio(viewport.dpr);
|
|
2925
|
-
|
|
2926
|
-
canvasTarget.setSize(size.width, size.height, updateStyle);
|
|
2941
|
+
canvasTarget.setSize(size.width, size.height, false);
|
|
2927
2942
|
} else {
|
|
2928
2943
|
if (viewport.dpr > 0) actualRenderer.setPixelRatio(viewport.dpr);
|
|
2929
|
-
|
|
2930
|
-
|
|
2944
|
+
actualRenderer.setSize(size.width, size.height, false);
|
|
2945
|
+
if (canvasTarget) {
|
|
2946
|
+
if (viewport.dpr > 0) canvasTarget.setPixelRatio(viewport.dpr);
|
|
2947
|
+
canvasTarget.setSize(size.width, size.height, false);
|
|
2948
|
+
}
|
|
2931
2949
|
}
|
|
2932
2950
|
}
|
|
2933
2951
|
if (camera !== oldCamera) {
|
|
@@ -15212,7 +15230,6 @@ function createRoot(canvas) {
|
|
|
15212
15230
|
events,
|
|
15213
15231
|
onCreated: onCreatedCallback,
|
|
15214
15232
|
shadows = false,
|
|
15215
|
-
textureColorSpace = three.SRGBColorSpace,
|
|
15216
15233
|
orthographic = false,
|
|
15217
15234
|
frameloop = "always",
|
|
15218
15235
|
dpr = [1, 2],
|
|
@@ -15227,6 +15244,7 @@ function createRoot(canvas) {
|
|
|
15227
15244
|
_sizeProps,
|
|
15228
15245
|
forceEven
|
|
15229
15246
|
} = props;
|
|
15247
|
+
const textureColorSpace = is.obj(glConfig) && !is.fun(glConfig) && !isRenderer(glConfig) && glConfig.textureColorSpace || is.obj(rendererConfig) && !is.fun(rendererConfig) && !isRenderer(rendererConfig) && rendererConfig.textureColorSpace || three.SRGBColorSpace;
|
|
15230
15248
|
const state = store.getState();
|
|
15231
15249
|
const defaultGLProps = {
|
|
15232
15250
|
canvas,
|
|
@@ -15350,7 +15368,7 @@ function createRoot(canvas) {
|
|
|
15350
15368
|
lastConfiguredProps.performance = performance;
|
|
15351
15369
|
}
|
|
15352
15370
|
if (!state.xr) {
|
|
15353
|
-
const handleXRFrame = (timestamp,
|
|
15371
|
+
const handleXRFrame = (timestamp, _frame) => {
|
|
15354
15372
|
const state2 = store.getState();
|
|
15355
15373
|
if (state2.frameloop === "never") return;
|
|
15356
15374
|
advance(timestamp);
|
|
@@ -15386,15 +15404,22 @@ function createRoot(canvas) {
|
|
|
15386
15404
|
const oldType = renderer.shadowMap.type;
|
|
15387
15405
|
renderer.shadowMap.enabled = !!shadows;
|
|
15388
15406
|
if (is.boo(shadows)) {
|
|
15389
|
-
renderer.shadowMap.type = three.
|
|
15407
|
+
renderer.shadowMap.type = three.PCFShadowMap;
|
|
15390
15408
|
} else if (is.str(shadows)) {
|
|
15409
|
+
if (shadows === "soft") {
|
|
15410
|
+
notifyDepreciated({
|
|
15411
|
+
heading: 'shadows="soft" is deprecated',
|
|
15412
|
+
body: "Three has depreciated soft and improved basic PCFShadows, we converted for you.",
|
|
15413
|
+
link: "https://github.com/mrdoob/three.js/wiki/Migration-Guide?utm_source=chatgpt.com#181--182"
|
|
15414
|
+
});
|
|
15415
|
+
}
|
|
15391
15416
|
const types = {
|
|
15392
15417
|
basic: three.BasicShadowMap,
|
|
15393
15418
|
percentage: three.PCFShadowMap,
|
|
15394
|
-
soft: three.
|
|
15419
|
+
soft: three.PCFShadowMap,
|
|
15395
15420
|
variance: three.VSMShadowMap
|
|
15396
15421
|
};
|
|
15397
|
-
renderer.shadowMap.type = types[shadows] ?? three.
|
|
15422
|
+
renderer.shadowMap.type = types[shadows] ?? three.PCFShadowMap;
|
|
15398
15423
|
} else if (is.obj(shadows)) {
|
|
15399
15424
|
Object.assign(renderer.shadowMap, shadows);
|
|
15400
15425
|
}
|
|
@@ -15410,13 +15435,24 @@ function createRoot(canvas) {
|
|
|
15410
15435
|
if (state.textureColorSpace !== textureColorSpace) state.set(() => ({ textureColorSpace }));
|
|
15411
15436
|
lastConfiguredProps.textureColorSpace = textureColorSpace;
|
|
15412
15437
|
}
|
|
15438
|
+
const r3fProps = ["textureColorSpace"];
|
|
15439
|
+
const constructorOnlyProps = ["samples", "antialias", "alpha", "canvas", "powerPreference"];
|
|
15440
|
+
const nonApplyProps = [...r3fProps, ...constructorOnlyProps];
|
|
15413
15441
|
if (glConfig && !is.fun(glConfig) && !isRenderer(glConfig) && !is.equ(glConfig, renderer, shallowLoose)) {
|
|
15414
|
-
|
|
15442
|
+
const glProps = {};
|
|
15443
|
+
for (const key in glConfig) {
|
|
15444
|
+
if (!nonApplyProps.includes(key)) glProps[key] = glConfig[key];
|
|
15445
|
+
}
|
|
15446
|
+
applyProps(renderer, glProps);
|
|
15415
15447
|
}
|
|
15416
15448
|
if (rendererConfig && !is.fun(rendererConfig) && !isRenderer(rendererConfig) && state.renderer) {
|
|
15417
15449
|
const currentRenderer = state.renderer;
|
|
15418
15450
|
if (!is.equ(rendererConfig, currentRenderer, shallowLoose)) {
|
|
15419
|
-
|
|
15451
|
+
const rendererProps = {};
|
|
15452
|
+
for (const key in rendererConfig) {
|
|
15453
|
+
if (!nonApplyProps.includes(key)) rendererProps[key] = rendererConfig[key];
|
|
15454
|
+
}
|
|
15455
|
+
applyProps(currentRenderer, rendererProps);
|
|
15420
15456
|
}
|
|
15421
15457
|
}
|
|
15422
15458
|
const scheduler = getScheduler();
|
|
@@ -15730,8 +15766,18 @@ function CanvasImpl({
|
|
|
15730
15766
|
forceEven,
|
|
15731
15767
|
...props
|
|
15732
15768
|
}) {
|
|
15733
|
-
const
|
|
15734
|
-
|
|
15769
|
+
const isRendererConfig = typeof rendererProp === "object" && rendererProp !== null && !("render" in rendererProp) && ("primaryCanvas" in rendererProp || "scheduler" in rendererProp);
|
|
15770
|
+
let primaryCanvas;
|
|
15771
|
+
let scheduler;
|
|
15772
|
+
let renderer;
|
|
15773
|
+
if (isRendererConfig) {
|
|
15774
|
+
const { primaryCanvas: pc, scheduler: sc, ...rest } = rendererProp;
|
|
15775
|
+
primaryCanvas = pc;
|
|
15776
|
+
scheduler = sc;
|
|
15777
|
+
renderer = Object.keys(rest).length > 0 ? rest : rendererProp;
|
|
15778
|
+
} else {
|
|
15779
|
+
renderer = rendererProp;
|
|
15780
|
+
}
|
|
15735
15781
|
React__namespace.useMemo(() => extend(THREE), []);
|
|
15736
15782
|
const Bridge = useBridge();
|
|
15737
15783
|
const backgroundProps = React__namespace.useMemo(() => {
|
|
@@ -15941,7 +15987,16 @@ function CanvasImpl({
|
|
|
15941
15987
|
...style
|
|
15942
15988
|
},
|
|
15943
15989
|
...props,
|
|
15944
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: containerRef, className: "r3f-canvas-container", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15990
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: containerRef, className: "r3f-canvas-container", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15991
|
+
"canvas",
|
|
15992
|
+
{
|
|
15993
|
+
ref: canvasRef,
|
|
15994
|
+
id,
|
|
15995
|
+
className: "r3f-canvas",
|
|
15996
|
+
style: { display: "block", width: "100%", height: "100%" },
|
|
15997
|
+
children: fallback
|
|
15998
|
+
}
|
|
15999
|
+
) })
|
|
15945
16000
|
}
|
|
15946
16001
|
);
|
|
15947
16002
|
}
|
package/dist/legacy.d.cts
CHANGED
|
@@ -854,6 +854,20 @@ interface Renderer {
|
|
|
854
854
|
render: (scene: THREE$1.Scene, camera: THREE$1.Camera) => any
|
|
855
855
|
}
|
|
856
856
|
|
|
857
|
+
//* Color Management Config ==============================
|
|
858
|
+
|
|
859
|
+
/**
|
|
860
|
+
* Color management configuration shared by both WebGL and WebGPU renderers.
|
|
861
|
+
*/
|
|
862
|
+
interface ColorManagementConfig {
|
|
863
|
+
/**
|
|
864
|
+
* Color space assigned to 8-bit input textures (color maps).
|
|
865
|
+
* Defaults to sRGB. Most textures are authored in sRGB.
|
|
866
|
+
* @default THREE.SRGBColorSpace
|
|
867
|
+
*/
|
|
868
|
+
textureColorSpace?: THREE$1.ColorSpace
|
|
869
|
+
}
|
|
870
|
+
|
|
857
871
|
//* WebGL Renderer Props ==============================
|
|
858
872
|
|
|
859
873
|
type DefaultGLProps = Omit<THREE$1.WebGLRendererParameters, 'canvas'> & {
|
|
@@ -864,7 +878,7 @@ type GLProps =
|
|
|
864
878
|
| Renderer
|
|
865
879
|
| ((defaultProps: DefaultGLProps) => Renderer)
|
|
866
880
|
| ((defaultProps: DefaultGLProps) => Promise<Renderer>)
|
|
867
|
-
| Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters>
|
|
881
|
+
| (Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters> & ColorManagementConfig)
|
|
868
882
|
|
|
869
883
|
//* WebGPU Renderer Props ==============================
|
|
870
884
|
|
|
@@ -890,9 +904,9 @@ interface CanvasSchedulerConfig {
|
|
|
890
904
|
}
|
|
891
905
|
|
|
892
906
|
/**
|
|
893
|
-
* Extended renderer configuration for multi-canvas support.
|
|
907
|
+
* Extended renderer configuration for multi-canvas support and color management.
|
|
894
908
|
*/
|
|
895
|
-
interface RendererConfigExtended {
|
|
909
|
+
interface RendererConfigExtended extends ColorManagementConfig {
|
|
896
910
|
/** Share renderer from another canvas (WebGPU only) */
|
|
897
911
|
primaryCanvas?: string
|
|
898
912
|
/** Canvas-level scheduler options */
|
|
@@ -957,8 +971,6 @@ interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas$1> {
|
|
|
957
971
|
* @see https://threejs.org/docs/#api/en/renderers/WebGLRenderer.shadowMap
|
|
958
972
|
*/
|
|
959
973
|
shadows?: boolean | 'basic' | 'percentage' | 'soft' | 'variance' | Partial<THREE$1.WebGLShadowMap>
|
|
960
|
-
/** Color space assigned to 8-bit input textures (color maps). Defaults to sRGB. Most textures are authored in sRGB. */
|
|
961
|
-
textureColorSpace?: THREE$1.ColorSpace
|
|
962
974
|
/** Creates an orthographic camera */
|
|
963
975
|
orthographic?: boolean
|
|
964
976
|
/**
|
|
@@ -1211,7 +1223,7 @@ interface CanvasProps
|
|
|
1211
1223
|
*/
|
|
1212
1224
|
resize?: Options
|
|
1213
1225
|
/** The target where events are being subscribed to, default: the div that wraps canvas */
|
|
1214
|
-
eventSource?: HTMLElement | React$1.RefObject<HTMLElement>
|
|
1226
|
+
eventSource?: HTMLElement | React$1.RefObject<HTMLElement | null>
|
|
1215
1227
|
/** The event prefix that is cast into canvas pointer x/y events, default: "offset" */
|
|
1216
1228
|
eventPrefix?: 'offset' | 'client' | 'page' | 'layer' | 'screen'
|
|
1217
1229
|
/** Enable/disable automatic HMR refresh for TSL nodes and uniforms, default: true in dev */
|
|
@@ -4366,4 +4378,4 @@ declare function isOnce(value: unknown): value is {
|
|
|
4366
4378
|
declare function Canvas(props: CanvasProps): react_jsx_runtime.JSX.Element;
|
|
4367
4379
|
|
|
4368
4380
|
export { Block, Canvas, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, ErrorBoundary, FROM_REF, IsObject, ONCE, Portal, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, fromRef, getInstanceProps, getPrimary, getPrimaryIds, getRootState, getScheduler, getUuidPrefix, hasConstructor, hasPrimary, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isFromRef, isObject3D, isOnce, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, once, prepare, presetsObj, reconciler, registerPrimary, removeInteractivity, resolve, unmountComponentAtNode, unregisterPrimary, updateCamera, updateFrustum, useBridge, useEnvironment, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useRenderTarget, useStore, useTexture, useTextures, useThree, waitForPrimary };
|
|
4369
|
-
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
|
4381
|
+
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ColorManagementConfig, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
package/dist/legacy.d.mts
CHANGED
|
@@ -854,6 +854,20 @@ interface Renderer {
|
|
|
854
854
|
render: (scene: THREE$1.Scene, camera: THREE$1.Camera) => any
|
|
855
855
|
}
|
|
856
856
|
|
|
857
|
+
//* Color Management Config ==============================
|
|
858
|
+
|
|
859
|
+
/**
|
|
860
|
+
* Color management configuration shared by both WebGL and WebGPU renderers.
|
|
861
|
+
*/
|
|
862
|
+
interface ColorManagementConfig {
|
|
863
|
+
/**
|
|
864
|
+
* Color space assigned to 8-bit input textures (color maps).
|
|
865
|
+
* Defaults to sRGB. Most textures are authored in sRGB.
|
|
866
|
+
* @default THREE.SRGBColorSpace
|
|
867
|
+
*/
|
|
868
|
+
textureColorSpace?: THREE$1.ColorSpace
|
|
869
|
+
}
|
|
870
|
+
|
|
857
871
|
//* WebGL Renderer Props ==============================
|
|
858
872
|
|
|
859
873
|
type DefaultGLProps = Omit<THREE$1.WebGLRendererParameters, 'canvas'> & {
|
|
@@ -864,7 +878,7 @@ type GLProps =
|
|
|
864
878
|
| Renderer
|
|
865
879
|
| ((defaultProps: DefaultGLProps) => Renderer)
|
|
866
880
|
| ((defaultProps: DefaultGLProps) => Promise<Renderer>)
|
|
867
|
-
| Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters>
|
|
881
|
+
| (Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters> & ColorManagementConfig)
|
|
868
882
|
|
|
869
883
|
//* WebGPU Renderer Props ==============================
|
|
870
884
|
|
|
@@ -890,9 +904,9 @@ interface CanvasSchedulerConfig {
|
|
|
890
904
|
}
|
|
891
905
|
|
|
892
906
|
/**
|
|
893
|
-
* Extended renderer configuration for multi-canvas support.
|
|
907
|
+
* Extended renderer configuration for multi-canvas support and color management.
|
|
894
908
|
*/
|
|
895
|
-
interface RendererConfigExtended {
|
|
909
|
+
interface RendererConfigExtended extends ColorManagementConfig {
|
|
896
910
|
/** Share renderer from another canvas (WebGPU only) */
|
|
897
911
|
primaryCanvas?: string
|
|
898
912
|
/** Canvas-level scheduler options */
|
|
@@ -957,8 +971,6 @@ interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas$1> {
|
|
|
957
971
|
* @see https://threejs.org/docs/#api/en/renderers/WebGLRenderer.shadowMap
|
|
958
972
|
*/
|
|
959
973
|
shadows?: boolean | 'basic' | 'percentage' | 'soft' | 'variance' | Partial<THREE$1.WebGLShadowMap>
|
|
960
|
-
/** Color space assigned to 8-bit input textures (color maps). Defaults to sRGB. Most textures are authored in sRGB. */
|
|
961
|
-
textureColorSpace?: THREE$1.ColorSpace
|
|
962
974
|
/** Creates an orthographic camera */
|
|
963
975
|
orthographic?: boolean
|
|
964
976
|
/**
|
|
@@ -1211,7 +1223,7 @@ interface CanvasProps
|
|
|
1211
1223
|
*/
|
|
1212
1224
|
resize?: Options
|
|
1213
1225
|
/** The target where events are being subscribed to, default: the div that wraps canvas */
|
|
1214
|
-
eventSource?: HTMLElement | React$1.RefObject<HTMLElement>
|
|
1226
|
+
eventSource?: HTMLElement | React$1.RefObject<HTMLElement | null>
|
|
1215
1227
|
/** The event prefix that is cast into canvas pointer x/y events, default: "offset" */
|
|
1216
1228
|
eventPrefix?: 'offset' | 'client' | 'page' | 'layer' | 'screen'
|
|
1217
1229
|
/** Enable/disable automatic HMR refresh for TSL nodes and uniforms, default: true in dev */
|
|
@@ -4366,4 +4378,4 @@ declare function isOnce(value: unknown): value is {
|
|
|
4366
4378
|
declare function Canvas(props: CanvasProps): react_jsx_runtime.JSX.Element;
|
|
4367
4379
|
|
|
4368
4380
|
export { Block, Canvas, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, ErrorBoundary, FROM_REF, IsObject, ONCE, Portal, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, fromRef, getInstanceProps, getPrimary, getPrimaryIds, getRootState, getScheduler, getUuidPrefix, hasConstructor, hasPrimary, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isFromRef, isObject3D, isOnce, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, once, prepare, presetsObj, reconciler, registerPrimary, removeInteractivity, resolve, unmountComponentAtNode, unregisterPrimary, updateCamera, updateFrustum, useBridge, useEnvironment, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useRenderTarget, useStore, useTexture, useTextures, useThree, waitForPrimary };
|
|
4369
|
-
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
|
4381
|
+
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ColorManagementConfig, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
package/dist/legacy.d.ts
CHANGED
|
@@ -854,6 +854,20 @@ interface Renderer {
|
|
|
854
854
|
render: (scene: THREE$1.Scene, camera: THREE$1.Camera) => any
|
|
855
855
|
}
|
|
856
856
|
|
|
857
|
+
//* Color Management Config ==============================
|
|
858
|
+
|
|
859
|
+
/**
|
|
860
|
+
* Color management configuration shared by both WebGL and WebGPU renderers.
|
|
861
|
+
*/
|
|
862
|
+
interface ColorManagementConfig {
|
|
863
|
+
/**
|
|
864
|
+
* Color space assigned to 8-bit input textures (color maps).
|
|
865
|
+
* Defaults to sRGB. Most textures are authored in sRGB.
|
|
866
|
+
* @default THREE.SRGBColorSpace
|
|
867
|
+
*/
|
|
868
|
+
textureColorSpace?: THREE$1.ColorSpace
|
|
869
|
+
}
|
|
870
|
+
|
|
857
871
|
//* WebGL Renderer Props ==============================
|
|
858
872
|
|
|
859
873
|
type DefaultGLProps = Omit<THREE$1.WebGLRendererParameters, 'canvas'> & {
|
|
@@ -864,7 +878,7 @@ type GLProps =
|
|
|
864
878
|
| Renderer
|
|
865
879
|
| ((defaultProps: DefaultGLProps) => Renderer)
|
|
866
880
|
| ((defaultProps: DefaultGLProps) => Promise<Renderer>)
|
|
867
|
-
| Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters>
|
|
881
|
+
| (Partial<Properties<THREE$1.WebGLRenderer> | THREE$1.WebGLRendererParameters> & ColorManagementConfig)
|
|
868
882
|
|
|
869
883
|
//* WebGPU Renderer Props ==============================
|
|
870
884
|
|
|
@@ -890,9 +904,9 @@ interface CanvasSchedulerConfig {
|
|
|
890
904
|
}
|
|
891
905
|
|
|
892
906
|
/**
|
|
893
|
-
* Extended renderer configuration for multi-canvas support.
|
|
907
|
+
* Extended renderer configuration for multi-canvas support and color management.
|
|
894
908
|
*/
|
|
895
|
-
interface RendererConfigExtended {
|
|
909
|
+
interface RendererConfigExtended extends ColorManagementConfig {
|
|
896
910
|
/** Share renderer from another canvas (WebGPU only) */
|
|
897
911
|
primaryCanvas?: string
|
|
898
912
|
/** Canvas-level scheduler options */
|
|
@@ -957,8 +971,6 @@ interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas$1> {
|
|
|
957
971
|
* @see https://threejs.org/docs/#api/en/renderers/WebGLRenderer.shadowMap
|
|
958
972
|
*/
|
|
959
973
|
shadows?: boolean | 'basic' | 'percentage' | 'soft' | 'variance' | Partial<THREE$1.WebGLShadowMap>
|
|
960
|
-
/** Color space assigned to 8-bit input textures (color maps). Defaults to sRGB. Most textures are authored in sRGB. */
|
|
961
|
-
textureColorSpace?: THREE$1.ColorSpace
|
|
962
974
|
/** Creates an orthographic camera */
|
|
963
975
|
orthographic?: boolean
|
|
964
976
|
/**
|
|
@@ -1211,7 +1223,7 @@ interface CanvasProps
|
|
|
1211
1223
|
*/
|
|
1212
1224
|
resize?: Options
|
|
1213
1225
|
/** The target where events are being subscribed to, default: the div that wraps canvas */
|
|
1214
|
-
eventSource?: HTMLElement | React$1.RefObject<HTMLElement>
|
|
1226
|
+
eventSource?: HTMLElement | React$1.RefObject<HTMLElement | null>
|
|
1215
1227
|
/** The event prefix that is cast into canvas pointer x/y events, default: "offset" */
|
|
1216
1228
|
eventPrefix?: 'offset' | 'client' | 'page' | 'layer' | 'screen'
|
|
1217
1229
|
/** Enable/disable automatic HMR refresh for TSL nodes and uniforms, default: true in dev */
|
|
@@ -4366,4 +4378,4 @@ declare function isOnce(value: unknown): value is {
|
|
|
4366
4378
|
declare function Canvas(props: CanvasProps): react_jsx_runtime.JSX.Element;
|
|
4367
4379
|
|
|
4368
4380
|
export { Block, Canvas, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, ErrorBoundary, FROM_REF, IsObject, ONCE, Portal, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, fromRef, getInstanceProps, getPrimary, getPrimaryIds, getRootState, getScheduler, getUuidPrefix, hasConstructor, hasPrimary, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isFromRef, isObject3D, isOnce, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, once, prepare, presetsObj, reconciler, registerPrimary, removeInteractivity, resolve, unmountComponentAtNode, unregisterPrimary, updateCamera, updateFrustum, useBridge, useEnvironment, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useRenderTarget, useStore, useTexture, useTextures, useThree, waitForPrimary };
|
|
4369
|
-
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
|
4381
|
+
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BackgroundConfig, BackgroundProp, BaseRendererProps, Bridge, BufferLike, BufferRecord, BufferStore, Camera, CameraProps, CanvasProps, CanvasSchedulerConfig, Catalogue, Color, ColorManagementConfig, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EnvironmentLoaderProps, EnvironmentProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FiberRoot, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GeometryProps, GeometryTransformProps, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, LegacyInternalState as InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LegacyInternalState, LegacyRenderer, LegacyRootState, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NodeProps, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, PointerState, PresetsType, PrimaryCanvasEntry, Properties, Quaternion, LegacyRenderer as R3FRenderer, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererConfigExtended, RendererFactory, RendererProps, Root, RootOptions, LegacyRootState as RootState, RootStore, SchedulerApi, SetBlock, Size, StorageLike, StorageRecord, StorageStore, Subscription, TSLNodeInput, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager, XRPointerConfig };
|
package/dist/legacy.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as three from 'three';
|
|
2
|
-
import { WebGLRenderTarget, CubeReflectionMapping, EquirectangularReflectionMapping, CubeTextureLoader, Scene, WebGLCubeRenderTarget, HalfFloatType, Color, Frustum, Matrix4, Group, BoxGeometry, MeshBasicNodeMaterial, Mesh, Node, NodeUpdateType, Layers, SRGBColorSpace, RGBAFormat, UnsignedByteType, Vector3, Vector2, TextureLoader, Texture as Texture$1, Raycaster, OrthographicCamera, PerspectiveCamera,
|
|
2
|
+
import { WebGLRenderTarget, CubeReflectionMapping, EquirectangularReflectionMapping, CubeTextureLoader, Scene, WebGLCubeRenderTarget, HalfFloatType, Color, Frustum, Matrix4, Group, BoxGeometry, MeshBasicNodeMaterial, Mesh, Node, NodeUpdateType, Layers, SRGBColorSpace, RGBAFormat, UnsignedByteType, Vector3, Vector2, TextureLoader, Texture as Texture$1, Raycaster, OrthographicCamera, PerspectiveCamera, PCFShadowMap, VSMShadowMap, BasicShadowMap, ACESFilmicToneMapping, WebGLRenderer } from 'three';
|
|
3
3
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import React__default, { useLayoutEffect, useRef, useMemo, useEffect, useContext, useImperativeHandle, useCallback, useState } from 'react';
|
|
@@ -148,7 +148,7 @@ function useEnvironment({
|
|
|
148
148
|
useLoader$1.clear(loader, multiFile ? [files] : files);
|
|
149
149
|
}
|
|
150
150
|
renderer.domElement.addEventListener("webglcontextlost", clearGainmapTexture, { once: true });
|
|
151
|
-
}, [files, renderer.domElement]);
|
|
151
|
+
}, [extension, files, loader, multiFile, renderer.domElement]);
|
|
152
152
|
const loaderResult = useLoader$1(
|
|
153
153
|
loader,
|
|
154
154
|
multiFile ? [files] : files,
|
|
@@ -348,7 +348,22 @@ function EnvironmentPortal({
|
|
|
348
348
|
environmentIntensity,
|
|
349
349
|
environmentRotation
|
|
350
350
|
});
|
|
351
|
-
}, [
|
|
351
|
+
}, [
|
|
352
|
+
children,
|
|
353
|
+
virtualScene,
|
|
354
|
+
fbo.texture,
|
|
355
|
+
scene,
|
|
356
|
+
defaultScene,
|
|
357
|
+
background,
|
|
358
|
+
frames,
|
|
359
|
+
gl,
|
|
360
|
+
blur,
|
|
361
|
+
backgroundBlurriness,
|
|
362
|
+
backgroundIntensity,
|
|
363
|
+
backgroundRotation,
|
|
364
|
+
environmentIntensity,
|
|
365
|
+
environmentRotation
|
|
366
|
+
]);
|
|
352
367
|
let count = 1;
|
|
353
368
|
useFrame$1(() => {
|
|
354
369
|
if (frames === Infinity || count < frames) {
|
|
@@ -1275,7 +1290,7 @@ function createEvents(store) {
|
|
|
1275
1290
|
}
|
|
1276
1291
|
function processDeferredPointer(event, pointerId) {
|
|
1277
1292
|
const state = store.getState();
|
|
1278
|
-
const {
|
|
1293
|
+
const { internal } = state;
|
|
1279
1294
|
if (!state.events.enabled) return;
|
|
1280
1295
|
const filter = filterPointerEvents;
|
|
1281
1296
|
const hits = intersect(event, filter);
|
|
@@ -1510,6 +1525,7 @@ function createPointerEvents(store) {
|
|
|
1510
1525
|
}
|
|
1511
1526
|
},
|
|
1512
1527
|
connect: (target) => {
|
|
1528
|
+
if (!target) return;
|
|
1513
1529
|
const { set, events } = store.getState();
|
|
1514
1530
|
events.disconnect?.();
|
|
1515
1531
|
set((state) => ({ events: { ...state.events, connected: target } }));
|
|
@@ -1872,7 +1888,7 @@ function shouldRun(job, now) {
|
|
|
1872
1888
|
const minInterval = 1e3 / job.fps;
|
|
1873
1889
|
const lastRun = job.lastRun ?? 0;
|
|
1874
1890
|
const elapsed = now - lastRun;
|
|
1875
|
-
if (elapsed < minInterval) return false;
|
|
1891
|
+
if (elapsed < minInterval - 1) return false;
|
|
1876
1892
|
if (job.drop) {
|
|
1877
1893
|
job.lastRun = now;
|
|
1878
1894
|
} else {
|
|
@@ -2899,14 +2915,16 @@ const createStore = (invalidate, advance) => {
|
|
|
2899
2915
|
oldSize = size;
|
|
2900
2916
|
oldDpr = viewport.dpr;
|
|
2901
2917
|
updateCamera(camera, size);
|
|
2902
|
-
if (canvasTarget) {
|
|
2918
|
+
if (internal.isSecondary && canvasTarget) {
|
|
2903
2919
|
if (viewport.dpr > 0) canvasTarget.setPixelRatio(viewport.dpr);
|
|
2904
|
-
|
|
2905
|
-
canvasTarget.setSize(size.width, size.height, updateStyle);
|
|
2920
|
+
canvasTarget.setSize(size.width, size.height, false);
|
|
2906
2921
|
} else {
|
|
2907
2922
|
if (viewport.dpr > 0) actualRenderer.setPixelRatio(viewport.dpr);
|
|
2908
|
-
|
|
2909
|
-
|
|
2923
|
+
actualRenderer.setSize(size.width, size.height, false);
|
|
2924
|
+
if (canvasTarget) {
|
|
2925
|
+
if (viewport.dpr > 0) canvasTarget.setPixelRatio(viewport.dpr);
|
|
2926
|
+
canvasTarget.setSize(size.width, size.height, false);
|
|
2927
|
+
}
|
|
2910
2928
|
}
|
|
2911
2929
|
}
|
|
2912
2930
|
if (camera !== oldCamera) {
|
|
@@ -15191,7 +15209,6 @@ function createRoot(canvas) {
|
|
|
15191
15209
|
events,
|
|
15192
15210
|
onCreated: onCreatedCallback,
|
|
15193
15211
|
shadows = false,
|
|
15194
|
-
textureColorSpace = SRGBColorSpace,
|
|
15195
15212
|
orthographic = false,
|
|
15196
15213
|
frameloop = "always",
|
|
15197
15214
|
dpr = [1, 2],
|
|
@@ -15206,6 +15223,7 @@ function createRoot(canvas) {
|
|
|
15206
15223
|
_sizeProps,
|
|
15207
15224
|
forceEven
|
|
15208
15225
|
} = props;
|
|
15226
|
+
const textureColorSpace = is.obj(glConfig) && !is.fun(glConfig) && !isRenderer(glConfig) && glConfig.textureColorSpace || is.obj(rendererConfig) && !is.fun(rendererConfig) && !isRenderer(rendererConfig) && rendererConfig.textureColorSpace || SRGBColorSpace;
|
|
15209
15227
|
const state = store.getState();
|
|
15210
15228
|
const defaultGLProps = {
|
|
15211
15229
|
canvas,
|
|
@@ -15329,7 +15347,7 @@ function createRoot(canvas) {
|
|
|
15329
15347
|
lastConfiguredProps.performance = performance;
|
|
15330
15348
|
}
|
|
15331
15349
|
if (!state.xr) {
|
|
15332
|
-
const handleXRFrame = (timestamp,
|
|
15350
|
+
const handleXRFrame = (timestamp, _frame) => {
|
|
15333
15351
|
const state2 = store.getState();
|
|
15334
15352
|
if (state2.frameloop === "never") return;
|
|
15335
15353
|
advance(timestamp);
|
|
@@ -15365,15 +15383,22 @@ function createRoot(canvas) {
|
|
|
15365
15383
|
const oldType = renderer.shadowMap.type;
|
|
15366
15384
|
renderer.shadowMap.enabled = !!shadows;
|
|
15367
15385
|
if (is.boo(shadows)) {
|
|
15368
|
-
renderer.shadowMap.type =
|
|
15386
|
+
renderer.shadowMap.type = PCFShadowMap;
|
|
15369
15387
|
} else if (is.str(shadows)) {
|
|
15388
|
+
if (shadows === "soft") {
|
|
15389
|
+
notifyDepreciated({
|
|
15390
|
+
heading: 'shadows="soft" is deprecated',
|
|
15391
|
+
body: "Three has depreciated soft and improved basic PCFShadows, we converted for you.",
|
|
15392
|
+
link: "https://github.com/mrdoob/three.js/wiki/Migration-Guide?utm_source=chatgpt.com#181--182"
|
|
15393
|
+
});
|
|
15394
|
+
}
|
|
15370
15395
|
const types = {
|
|
15371
15396
|
basic: BasicShadowMap,
|
|
15372
15397
|
percentage: PCFShadowMap,
|
|
15373
|
-
soft:
|
|
15398
|
+
soft: PCFShadowMap,
|
|
15374
15399
|
variance: VSMShadowMap
|
|
15375
15400
|
};
|
|
15376
|
-
renderer.shadowMap.type = types[shadows] ??
|
|
15401
|
+
renderer.shadowMap.type = types[shadows] ?? PCFShadowMap;
|
|
15377
15402
|
} else if (is.obj(shadows)) {
|
|
15378
15403
|
Object.assign(renderer.shadowMap, shadows);
|
|
15379
15404
|
}
|
|
@@ -15389,13 +15414,24 @@ function createRoot(canvas) {
|
|
|
15389
15414
|
if (state.textureColorSpace !== textureColorSpace) state.set(() => ({ textureColorSpace }));
|
|
15390
15415
|
lastConfiguredProps.textureColorSpace = textureColorSpace;
|
|
15391
15416
|
}
|
|
15417
|
+
const r3fProps = ["textureColorSpace"];
|
|
15418
|
+
const constructorOnlyProps = ["samples", "antialias", "alpha", "canvas", "powerPreference"];
|
|
15419
|
+
const nonApplyProps = [...r3fProps, ...constructorOnlyProps];
|
|
15392
15420
|
if (glConfig && !is.fun(glConfig) && !isRenderer(glConfig) && !is.equ(glConfig, renderer, shallowLoose)) {
|
|
15393
|
-
|
|
15421
|
+
const glProps = {};
|
|
15422
|
+
for (const key in glConfig) {
|
|
15423
|
+
if (!nonApplyProps.includes(key)) glProps[key] = glConfig[key];
|
|
15424
|
+
}
|
|
15425
|
+
applyProps(renderer, glProps);
|
|
15394
15426
|
}
|
|
15395
15427
|
if (rendererConfig && !is.fun(rendererConfig) && !isRenderer(rendererConfig) && state.renderer) {
|
|
15396
15428
|
const currentRenderer = state.renderer;
|
|
15397
15429
|
if (!is.equ(rendererConfig, currentRenderer, shallowLoose)) {
|
|
15398
|
-
|
|
15430
|
+
const rendererProps = {};
|
|
15431
|
+
for (const key in rendererConfig) {
|
|
15432
|
+
if (!nonApplyProps.includes(key)) rendererProps[key] = rendererConfig[key];
|
|
15433
|
+
}
|
|
15434
|
+
applyProps(currentRenderer, rendererProps);
|
|
15399
15435
|
}
|
|
15400
15436
|
}
|
|
15401
15437
|
const scheduler = getScheduler();
|
|
@@ -15709,8 +15745,18 @@ function CanvasImpl({
|
|
|
15709
15745
|
forceEven,
|
|
15710
15746
|
...props
|
|
15711
15747
|
}) {
|
|
15712
|
-
const
|
|
15713
|
-
|
|
15748
|
+
const isRendererConfig = typeof rendererProp === "object" && rendererProp !== null && !("render" in rendererProp) && ("primaryCanvas" in rendererProp || "scheduler" in rendererProp);
|
|
15749
|
+
let primaryCanvas;
|
|
15750
|
+
let scheduler;
|
|
15751
|
+
let renderer;
|
|
15752
|
+
if (isRendererConfig) {
|
|
15753
|
+
const { primaryCanvas: pc, scheduler: sc, ...rest } = rendererProp;
|
|
15754
|
+
primaryCanvas = pc;
|
|
15755
|
+
scheduler = sc;
|
|
15756
|
+
renderer = Object.keys(rest).length > 0 ? rest : rendererProp;
|
|
15757
|
+
} else {
|
|
15758
|
+
renderer = rendererProp;
|
|
15759
|
+
}
|
|
15714
15760
|
React.useMemo(() => extend(THREE), []);
|
|
15715
15761
|
const Bridge = useBridge();
|
|
15716
15762
|
const backgroundProps = React.useMemo(() => {
|
|
@@ -15920,7 +15966,16 @@ function CanvasImpl({
|
|
|
15920
15966
|
...style
|
|
15921
15967
|
},
|
|
15922
15968
|
...props,
|
|
15923
|
-
children: /* @__PURE__ */ jsx("div", { ref: containerRef, className: "r3f-canvas-container", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ jsx(
|
|
15969
|
+
children: /* @__PURE__ */ jsx("div", { ref: containerRef, className: "r3f-canvas-container", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ jsx(
|
|
15970
|
+
"canvas",
|
|
15971
|
+
{
|
|
15972
|
+
ref: canvasRef,
|
|
15973
|
+
id,
|
|
15974
|
+
className: "r3f-canvas",
|
|
15975
|
+
style: { display: "block", width: "100%", height: "100%" },
|
|
15976
|
+
children: fallback
|
|
15977
|
+
}
|
|
15978
|
+
) })
|
|
15924
15979
|
}
|
|
15925
15980
|
);
|
|
15926
15981
|
}
|