@tresjs/core 5.3.1 → 5.3.3
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/template-compiler-options.d.mts +1 -1
- package/dist/template-compiler-options.mjs +1 -1
- package/dist/tres.d.ts +28 -14
- package/dist/tres.js +82 -32
- package/package.json +3 -3
package/dist/tres.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v5.3.
|
|
3
|
+
* version: v5.3.3
|
|
4
4
|
* (c) 2026
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
import * as
|
|
8
|
+
import * as vue4 from "vue";
|
|
9
9
|
import { App, ComputedRef, DefineComponent, MaybeRef, MaybeRefOrGetter, Reactive, Ref, ShallowRef, VNode, VNodeRef } from "vue";
|
|
10
10
|
import * as THREE from "three";
|
|
11
11
|
import { BufferGeometry, Camera, Color, ColorRepresentation, ColorSpace, Event, Fog, Group, Layers, Light, Loader, LoadingManager, Material, Mesh, Object3D, Object3DEventMap, OrthographicCamera, PerspectiveCamera, Scene, ShadowMapType, ToneMapping, Vector3, WebGLRenderer } from "three";
|
|
@@ -121,6 +121,14 @@ declare const useCameraManager: ({
|
|
|
121
121
|
sizes
|
|
122
122
|
}: UseCameraParams) => UseCameraReturn;
|
|
123
123
|
//#endregion
|
|
124
|
+
//#region src/utils/error.d.ts
|
|
125
|
+
type TresRendererErrorCode = 'INITIALIZATION_FAILED';
|
|
126
|
+
declare class TresRendererError extends Error {
|
|
127
|
+
readonly code: TresRendererErrorCode;
|
|
128
|
+
readonly name = "TresRendererError";
|
|
129
|
+
constructor(message: string, code: TresRendererErrorCode, options?: ErrorOptions);
|
|
130
|
+
}
|
|
131
|
+
//#endregion
|
|
124
132
|
//#region src/composables/useRenderer/useRendererManager.d.ts
|
|
125
133
|
/**
|
|
126
134
|
* If set to 'on-demand', the scene will only be rendered when the current frame is invalidated
|
|
@@ -311,10 +319,13 @@ declare function useRendererManager({
|
|
|
311
319
|
advance: () => void;
|
|
312
320
|
onReady: _vueuse_core0.EventHookOn<TresRenderer>;
|
|
313
321
|
onRender: _vueuse_core0.EventHookOn<TresRenderer>;
|
|
322
|
+
onError: _vueuse_core0.EventHookOn<TresRendererError>;
|
|
314
323
|
invalidate: (amountOfFramesToInvalidate?: number) => void;
|
|
315
|
-
canBeInvalidated:
|
|
324
|
+
canBeInvalidated: vue4.ComputedRef<boolean>;
|
|
316
325
|
mode: "always" | "on-demand" | "manual" | undefined;
|
|
317
326
|
replaceRenderFunction: (fn: RenderFunction) => void;
|
|
327
|
+
isInitialized: vue4.Ref<boolean, boolean>;
|
|
328
|
+
error: vue4.Ref<TresRendererError | null, TresRendererError | null>;
|
|
318
329
|
};
|
|
319
330
|
type UseRendererManagerReturn = ReturnType<typeof useRendererManager>;
|
|
320
331
|
//#endregion
|
|
@@ -499,7 +510,7 @@ declare function buildGraph(object: Object3D | TresObject): TresObjectMap;
|
|
|
499
510
|
//#endregion
|
|
500
511
|
//#region src/composables/useLoader/component.vue.d.ts
|
|
501
512
|
declare const __VLS_export$1: <T extends TresObjectMap>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
502
|
-
props:
|
|
513
|
+
props: vue4.PublicProps & __VLS_PrettifyLocal<{
|
|
503
514
|
/**
|
|
504
515
|
* The THREE.js loader to use
|
|
505
516
|
*/
|
|
@@ -522,20 +533,20 @@ declare const __VLS_export$1: <T extends TresObjectMap>(__VLS_props: NonNullable
|
|
|
522
533
|
attrs: any;
|
|
523
534
|
slots: {
|
|
524
535
|
default?: (props: {
|
|
525
|
-
state:
|
|
536
|
+
state: vue4.UnwrapRef<T>;
|
|
526
537
|
isLoading: boolean;
|
|
527
538
|
error: unknown;
|
|
528
539
|
}) => any;
|
|
529
540
|
};
|
|
530
541
|
emit: ((evt: "loaded", result: T) => void) & ((evt: "error", error: unknown) => void);
|
|
531
|
-
}>) =>
|
|
542
|
+
}>) => vue4.VNode & {
|
|
532
543
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
533
544
|
};
|
|
534
545
|
declare const _default$1: typeof __VLS_export$1;
|
|
535
546
|
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
536
547
|
//#endregion
|
|
537
548
|
//#region src/composables/useGraph/index.d.ts
|
|
538
|
-
declare const useGraph: (object: MaybeRef$1<TresObject | undefined>) =>
|
|
549
|
+
declare const useGraph: (object: MaybeRef$1<TresObject | undefined>) => vue4.ComputedRef<TresObjectMap | undefined>;
|
|
539
550
|
//#endregion
|
|
540
551
|
//#region src/utils/createPriorityEventHook.d.ts
|
|
541
552
|
type Callback<T> = Parameters<EventHookOff<T>>[0];
|
|
@@ -586,7 +597,7 @@ type LoopContext = RafLoopContext & TresPartialContext;
|
|
|
586
597
|
declare const useLoop: () => {
|
|
587
598
|
stop: () => void;
|
|
588
599
|
start: () => void;
|
|
589
|
-
isActive: Readonly<
|
|
600
|
+
isActive: Readonly<vue4.ShallowRef<boolean>>;
|
|
590
601
|
onBeforeRender: PriorityEventHookOn<LoopContext>;
|
|
591
602
|
onRender: PriorityEventHookOn<LoopContext>;
|
|
592
603
|
render: (fn: RenderFunction) => void;
|
|
@@ -676,6 +687,7 @@ interface ContextProps extends RendererOptions {
|
|
|
676
687
|
}
|
|
677
688
|
type ContextEmits = {
|
|
678
689
|
ready: [context: TresContext];
|
|
690
|
+
error: [error: Error];
|
|
679
691
|
pointermissed: [event: TresPointerEvent];
|
|
680
692
|
render: [context: TresContext];
|
|
681
693
|
beforeLoop: [context: TresContextWithClock];
|
|
@@ -692,7 +704,7 @@ interface TresCanvasInstance {
|
|
|
692
704
|
type __VLS_Slots = {
|
|
693
705
|
default: () => any;
|
|
694
706
|
};
|
|
695
|
-
declare const __VLS_base:
|
|
707
|
+
declare const __VLS_base: vue4.DefineComponent<ContextProps, TresCanvasInstance, {}, {}, {}, vue4.ComponentOptionsMixin, vue4.ComponentOptionsMixin, {
|
|
696
708
|
click: (event: TresPointerEvent) => any;
|
|
697
709
|
contextmenu: (event: TresPointerEvent) => any;
|
|
698
710
|
pointermove: (event: TresPointerEvent) => any;
|
|
@@ -706,12 +718,13 @@ declare const __VLS_base: vue9.DefineComponent<ContextProps, TresCanvasInstance,
|
|
|
706
718
|
pointercancel: (event: TresPointerEvent) => any;
|
|
707
719
|
lostpointercapture: (event: TresPointerEvent) => any;
|
|
708
720
|
wheel: (event: TresPointerEvent) => any;
|
|
721
|
+
error: (error: Error) => any;
|
|
709
722
|
ready: (context: TresContext) => any;
|
|
710
723
|
pointermissed: (event: TresPointerEvent) => any;
|
|
711
724
|
render: (context: TresContext) => any;
|
|
712
725
|
beforeLoop: (context: TresContextWithClock) => any;
|
|
713
726
|
loop: (context: TresContextWithClock) => any;
|
|
714
|
-
}, string,
|
|
727
|
+
}, string, vue4.PublicProps, Readonly<ContextProps> & Readonly<{
|
|
715
728
|
onClick?: ((event: TresPointerEvent) => any) | undefined;
|
|
716
729
|
onContextmenu?: ((event: TresPointerEvent) => any) | undefined;
|
|
717
730
|
onPointermove?: ((event: TresPointerEvent) => any) | undefined;
|
|
@@ -725,6 +738,7 @@ declare const __VLS_base: vue9.DefineComponent<ContextProps, TresCanvasInstance,
|
|
|
725
738
|
onPointercancel?: ((event: TresPointerEvent) => any) | undefined;
|
|
726
739
|
onLostpointercapture?: ((event: TresPointerEvent) => any) | undefined;
|
|
727
740
|
onWheel?: ((event: TresPointerEvent) => any) | undefined;
|
|
741
|
+
onError?: ((error: Error) => any) | undefined;
|
|
728
742
|
onReady?: ((context: TresContext) => any) | undefined;
|
|
729
743
|
onPointermissed?: ((event: TresPointerEvent) => any) | undefined;
|
|
730
744
|
onRender?: ((context: TresContext) => any) | undefined;
|
|
@@ -732,7 +746,6 @@ declare const __VLS_base: vue9.DefineComponent<ContextProps, TresCanvasInstance,
|
|
|
732
746
|
onLoop?: ((context: TresContextWithClock) => any) | undefined;
|
|
733
747
|
}>, {
|
|
734
748
|
windowSize: boolean;
|
|
735
|
-
enableProvideBridge: boolean;
|
|
736
749
|
antialias: boolean;
|
|
737
750
|
stencil: boolean;
|
|
738
751
|
depth: boolean;
|
|
@@ -747,7 +760,8 @@ declare const __VLS_base: vue9.DefineComponent<ContextProps, TresCanvasInstance,
|
|
|
747
760
|
shadowMapType: THREE.ShadowMapType;
|
|
748
761
|
useLegacyLights: boolean;
|
|
749
762
|
renderMode: "always" | "on-demand" | "manual";
|
|
750
|
-
|
|
763
|
+
enableProvideBridge: boolean;
|
|
764
|
+
}, {}, {}, {}, string, vue4.ComponentProvideOptions, false, {}, any>;
|
|
751
765
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
752
766
|
declare const _default: typeof __VLS_export;
|
|
753
767
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -992,7 +1006,7 @@ declare const isFog: (value: unknown) => value is Fog;
|
|
|
992
1006
|
* }
|
|
993
1007
|
* ```
|
|
994
1008
|
*/
|
|
995
|
-
declare const isScene: (value: unknown) => value is Scene
|
|
1009
|
+
declare const isScene: (value: unknown) => value is Scene<THREE.Object3DEventMap>;
|
|
996
1010
|
/**
|
|
997
1011
|
* Type guard to check if a value is a Three.js Group
|
|
998
1012
|
* @param value - The value to check
|
|
@@ -1081,4 +1095,4 @@ interface TresPlugin {
|
|
|
1081
1095
|
}
|
|
1082
1096
|
declare const plugin: TresPlugin;
|
|
1083
1097
|
//#endregion
|
|
1084
|
-
export { Args, AssetLoadData, AttachFnType, AttachType, ConstructorRepresentation, DevtoolsMessage, DevtoolsMessageType, DevtoolsMessenger, DevtoolsSubscriber, DisposeType, ElementProps, InstanceProps, LoaderMethods, LoaderProto, LocalState, LoopContext, MathType, Mutable, NonFunctionKeys, Overwrite, Properties, RenderFunction, RenderMode, RendererOptions, ThreeElement, ThreeInstances, TresCamera, _default as TresCanvas, type TresCanvasEmits, type TresCanvasInstance, type TresCanvasProps, TresCatalogue, TresColor, TresColorArray, TresComponents, type TresContext, TresContextWithClock, TresControl, type TresCustomRendererOptions, TresEuler, TresInstance, TresLayers, TresLoader, TresLoaderOptions, TresMaterial, TresObject, TresObject3D, TresObjectMap, TresOptions, TresPartialContext, TresPlugin, type TresPointerEvent, TresPrimitive, TresQuaternion, TresRenderer, TresRendererSetupContext, TresScene, TresVector2, TresVector3, TresVector4, UseCameraReturn, _default$1 as UseLoader, UseLoaderReturn, UseRendererManagerReturn, UseRendererOptions, VectorCoordinates, type VectorFlexibleParams, VueProps, WithMathProps, buildGraph, catalogue, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
|
1098
|
+
export { Args, AssetLoadData, AttachFnType, AttachType, ConstructorRepresentation, DevtoolsMessage, DevtoolsMessageType, DevtoolsMessenger, DevtoolsSubscriber, DisposeType, ElementProps, InstanceProps, LoaderMethods, LoaderProto, LocalState, LoopContext, MathType, Mutable, NonFunctionKeys, Overwrite, Properties, RenderFunction, RenderMode, RendererOptions, ThreeElement, ThreeInstances, TresCamera, _default as TresCanvas, type TresCanvasEmits, type TresCanvasInstance, type TresCanvasProps, TresCatalogue, TresColor, TresColorArray, TresComponents, type TresContext, TresContextWithClock, TresControl, type TresCustomRendererOptions, TresEuler, TresInstance, TresLayers, TresLoader, TresLoaderOptions, TresMaterial, TresObject, TresObject3D, TresObjectMap, TresOptions, TresPartialContext, TresPlugin, type TresPointerEvent, TresPrimitive, TresQuaternion, TresRenderer, TresRendererError, TresRendererErrorCode, TresRendererSetupContext, TresScene, TresVector2, TresVector3, TresVector4, UseCameraReturn, _default$1 as UseLoader, UseLoaderReturn, UseRendererManagerReturn, UseRendererOptions, VectorCoordinates, type VectorFlexibleParams, VueProps, WithMathProps, buildGraph, catalogue, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
package/dist/tres.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v5.3.
|
|
3
|
+
* version: v5.3.3
|
|
4
4
|
* (c) 2026
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createRenderer, defineComponent, getCurrentInstance, h, isRef, mergeProps, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, provide, reactive, readonly, ref, renderSlot, shallowRef, toValue, unref, useSlots, watch, watchEffect, withCtx } from "vue";
|
|
8
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createRenderer, defineComponent, getCurrentInstance, h, isRef, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, provide, reactive, readonly, ref, renderSlot, shallowRef, toValue, unref, useSlots, watch, watchEffect, withCtx } from "vue";
|
|
9
9
|
import * as THREE from "three";
|
|
10
10
|
import { ACESFilmicToneMapping, ArrowHelper, BackSide, BufferAttribute, BufferGeometry, Clock, Color, DirectionalLightHelper, DoubleSide, Float32BufferAttribute, HemisphereLightHelper, Layers, Line, LineBasicMaterial, Material, MathUtils, Mesh, MeshBasicMaterial, Object3D, PCFSoftShadowMap, PerspectiveCamera, PointLightHelper, Scene, SpotLightHelper, Vector3, WebGLRenderer } from "three";
|
|
11
11
|
import { createEventHook, createInjectionState, promiseTimeout, refDebounced, tryOnScopeDispose, unrefElement, useAsyncState, useDevicePixelRatio, useElementSize, useFps, useMemory, useRafFn, useTimeout, useWindowSize, whenever } from "@vueuse/core";
|
|
@@ -14,7 +14,7 @@ import { forwardHtmlEvents, getVoidObject } from "@pmndrs/pointer-events";
|
|
|
14
14
|
import { setupDevtoolsPlugin } from "@vue/devtools-api";
|
|
15
15
|
|
|
16
16
|
//#region package.json
|
|
17
|
-
var version = "5.3.
|
|
17
|
+
var version = "5.3.3";
|
|
18
18
|
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region src/utils/makeMap.ts
|
|
@@ -753,6 +753,16 @@ const useCreateRafLoop = (cycleFn) => {
|
|
|
753
753
|
};
|
|
754
754
|
};
|
|
755
755
|
|
|
756
|
+
//#endregion
|
|
757
|
+
//#region src/utils/error.ts
|
|
758
|
+
var TresRendererError = class extends Error {
|
|
759
|
+
name = "TresRendererError";
|
|
760
|
+
constructor(message, code, options) {
|
|
761
|
+
super(message, options);
|
|
762
|
+
this.code = code;
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
|
|
756
766
|
//#endregion
|
|
757
767
|
//#region src/composables/useRenderer/useRendererManager.ts
|
|
758
768
|
function useRendererManager({ scene, canvas, options, contextParts: { sizes, camera } }) {
|
|
@@ -795,11 +805,26 @@ function useRendererManager({ scene, canvas, options, contextParts: { sizes, cam
|
|
|
795
805
|
const isModeAlways = computed(() => toValue(options.renderMode) === "always");
|
|
796
806
|
const isRenderer = (value) => isObject(value) && "isRenderer" in value && Boolean(value.isRenderer);
|
|
797
807
|
const readyEventHook = createEventHook();
|
|
808
|
+
const errorEventHook = createEventHook();
|
|
798
809
|
let hasTriggeredReady = false;
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
810
|
+
const isInitialized = ref(false);
|
|
811
|
+
const error = ref(null);
|
|
812
|
+
const initializeRenderer = async () => {
|
|
813
|
+
try {
|
|
814
|
+
if (isRenderer(renderer)) await renderer.init();
|
|
815
|
+
isInitialized.value = true;
|
|
816
|
+
} catch (e) {
|
|
817
|
+
const rendererError = new TresRendererError(e instanceof Error ? e.message : "Unknown error", "INITIALIZATION_FAILED", { cause: e instanceof Error ? e : void 0 });
|
|
818
|
+
error.value = rendererError;
|
|
819
|
+
console.error(`[TresJS] Renderer initialization failed. This may occur if:
|
|
820
|
+
- WebGPU is not supported by your browser
|
|
821
|
+
- GPU is not available or lacks required features
|
|
822
|
+
- GPU drivers are outdated
|
|
823
|
+
Error details: ${rendererError.message}`, rendererError);
|
|
824
|
+
errorEventHook.trigger(rendererError);
|
|
825
|
+
}
|
|
826
|
+
};
|
|
827
|
+
initializeRenderer();
|
|
803
828
|
const renderEventHook = createEventHook();
|
|
804
829
|
const notifyFrameRendered = () => {
|
|
805
830
|
frames.value = isModeAlways.value ? 1 : Math.max(0, frames.value - 1);
|
|
@@ -817,16 +842,26 @@ function useRendererManager({ scene, canvas, options, contextParts: { sizes, cam
|
|
|
817
842
|
const loop = useCreateRafLoop(() => {
|
|
818
843
|
if (frames.value) renderFunction(notifyFrameRendered);
|
|
819
844
|
});
|
|
820
|
-
readyEventHook.on(
|
|
821
|
-
|
|
845
|
+
readyEventHook.on(() => {
|
|
846
|
+
if (isInitialized.value) loop.start();
|
|
847
|
+
});
|
|
848
|
+
watch([
|
|
849
|
+
sizes.width,
|
|
850
|
+
sizes.height,
|
|
851
|
+
isInitialized
|
|
852
|
+
], () => {
|
|
853
|
+
if (!isInitialized.value) return;
|
|
822
854
|
renderer.setSize(sizes.width.value, sizes.height.value);
|
|
823
855
|
if (!hasTriggeredReady && renderer.domElement.width && renderer.domElement.height) {
|
|
824
|
-
readyEventHook.trigger(renderer);
|
|
825
856
|
hasTriggeredReady = true;
|
|
857
|
+
nextTick(() => {
|
|
858
|
+
readyEventHook.trigger(renderer);
|
|
859
|
+
});
|
|
826
860
|
}
|
|
827
861
|
invalidateOnDemand();
|
|
828
862
|
}, { immediate: true });
|
|
829
863
|
watchEffect(() => {
|
|
864
|
+
if (!isInitialized.value) return;
|
|
830
865
|
setPixelRatio(renderer, sizes.pixelRatio.value, toValue(options.dpr));
|
|
831
866
|
});
|
|
832
867
|
if (toValue(options.renderMode) === "on-demand") invalidate();
|
|
@@ -846,29 +881,35 @@ function useRendererManager({ scene, canvas, options, contextParts: { sizes, cam
|
|
|
846
881
|
};
|
|
847
882
|
});
|
|
848
883
|
watchEffect(() => {
|
|
884
|
+
if (!isInitialized.value) return;
|
|
849
885
|
const value = clearColorAndAlpha.value;
|
|
850
886
|
if (value.color === void 0 || value.alpha === void 0) return;
|
|
851
887
|
renderer.setClearColor(value.color, value.alpha);
|
|
852
888
|
});
|
|
853
889
|
watchEffect(() => {
|
|
890
|
+
if (!isInitialized.value) return;
|
|
854
891
|
const value = options.toneMapping;
|
|
855
892
|
if (value) renderer.toneMapping = value;
|
|
856
893
|
});
|
|
857
894
|
watchEffect(() => {
|
|
895
|
+
if (!isInitialized.value) return;
|
|
858
896
|
const value = options.toneMappingExposure;
|
|
859
897
|
if (value) renderer.toneMappingExposure = value;
|
|
860
898
|
});
|
|
861
899
|
watchEffect(() => {
|
|
900
|
+
if (!isInitialized.value) return;
|
|
862
901
|
const value = options.outputColorSpace;
|
|
863
902
|
if (value) renderer.outputColorSpace = value;
|
|
864
903
|
});
|
|
865
904
|
watchEffect(() => {
|
|
905
|
+
if (!isInitialized.value) return;
|
|
866
906
|
const value = options.shadows;
|
|
867
907
|
if (value === void 0) return;
|
|
868
908
|
renderer.shadowMap.enabled = value;
|
|
869
909
|
forceMaterialUpdate();
|
|
870
910
|
});
|
|
871
911
|
watchEffect(() => {
|
|
912
|
+
if (!isInitialized.value) return;
|
|
872
913
|
const value = options.shadowMapType;
|
|
873
914
|
if (value === void 0) return;
|
|
874
915
|
renderer.shadowMap.type = value;
|
|
@@ -884,10 +925,13 @@ function useRendererManager({ scene, canvas, options, contextParts: { sizes, cam
|
|
|
884
925
|
advance,
|
|
885
926
|
onReady: readyEventHook.on,
|
|
886
927
|
onRender: renderEventHook.on,
|
|
928
|
+
onError: errorEventHook.on,
|
|
887
929
|
invalidate,
|
|
888
930
|
canBeInvalidated,
|
|
889
931
|
mode: toValue(options.renderMode),
|
|
890
|
-
replaceRenderFunction
|
|
932
|
+
replaceRenderFunction,
|
|
933
|
+
isInitialized,
|
|
934
|
+
error
|
|
891
935
|
};
|
|
892
936
|
}
|
|
893
937
|
|
|
@@ -1924,6 +1968,7 @@ var Context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
1924
1968
|
},
|
|
1925
1969
|
emits: [
|
|
1926
1970
|
"ready",
|
|
1971
|
+
"error",
|
|
1927
1972
|
"pointermissed",
|
|
1928
1973
|
"render",
|
|
1929
1974
|
"beforeLoop",
|
|
@@ -2008,7 +2053,6 @@ var Context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
2008
2053
|
};
|
|
2009
2054
|
const { camera, renderer } = context.value;
|
|
2010
2055
|
const { registerCamera, cameras, activeCamera, deregisterCamera } = camera;
|
|
2011
|
-
mountCustomRenderer(context.value);
|
|
2012
2056
|
const addDefaultCamera = () => {
|
|
2013
2057
|
const camera$1 = new PerspectiveCamera(45, window.innerWidth / window.innerHeight, .1, 1e3);
|
|
2014
2058
|
camera$1.position.set(3, 3, 3);
|
|
@@ -2032,7 +2076,6 @@ var Context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
2032
2076
|
deregisterCamera(toValue(oldCamera));
|
|
2033
2077
|
}
|
|
2034
2078
|
}, { immediate: true });
|
|
2035
|
-
if (!activeCamera.value) addDefaultCamera();
|
|
2036
2079
|
renderer.onRender(() => {
|
|
2037
2080
|
if (context.value) emit("render", context.value);
|
|
2038
2081
|
});
|
|
@@ -2049,7 +2092,12 @@ var Context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
2049
2092
|
});
|
|
2050
2093
|
});
|
|
2051
2094
|
renderer.onReady(() => {
|
|
2095
|
+
mountCustomRenderer(context.value, false);
|
|
2052
2096
|
emit("ready", context.value);
|
|
2097
|
+
if (!activeCamera.value) addDefaultCamera();
|
|
2098
|
+
});
|
|
2099
|
+
renderer.onError((error) => {
|
|
2100
|
+
emit("error", error);
|
|
2053
2101
|
});
|
|
2054
2102
|
if (import.meta.hot) import.meta.hot.on("vite:afterUpdate", () => handleHMR(context.value));
|
|
2055
2103
|
onMounted(async () => {
|
|
@@ -2194,6 +2242,7 @@ var TresCanvas_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
2194
2242
|
},
|
|
2195
2243
|
emits: [
|
|
2196
2244
|
"ready",
|
|
2245
|
+
"error",
|
|
2197
2246
|
"pointermissed",
|
|
2198
2247
|
"render",
|
|
2199
2248
|
"beforeLoop",
|
|
@@ -2248,23 +2297,24 @@ var TresCanvas_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
2248
2297
|
canvas: canvasRef.value
|
|
2249
2298
|
}, props, {
|
|
2250
2299
|
onReady: _cache[0] || (_cache[0] = ($event) => emit("ready", $event)),
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2300
|
+
onError: _cache[1] || (_cache[1] = ($event) => emit("error", $event)),
|
|
2301
|
+
onPointermissed: _cache[2] || (_cache[2] = ($event) => emit("pointermissed", $event)),
|
|
2302
|
+
onRender: _cache[3] || (_cache[3] = ($event) => emit("render", $event)),
|
|
2303
|
+
onBeforeLoop: _cache[4] || (_cache[4] = ($event) => emit("beforeLoop", $event)),
|
|
2304
|
+
onLoop: _cache[5] || (_cache[5] = ($event) => emit("loop", $event)),
|
|
2305
|
+
onClick: _cache[6] || (_cache[6] = ($event) => emit("click", $event)),
|
|
2306
|
+
onContextmenu: _cache[7] || (_cache[7] = ($event) => emit("contextmenu", $event)),
|
|
2307
|
+
onPointermove: _cache[8] || (_cache[8] = ($event) => emit("pointermove", $event)),
|
|
2308
|
+
onPointerenter: _cache[9] || (_cache[9] = ($event) => emit("pointerenter", $event)),
|
|
2309
|
+
onPointerleave: _cache[10] || (_cache[10] = ($event) => emit("pointerleave", $event)),
|
|
2310
|
+
onPointerover: _cache[11] || (_cache[11] = ($event) => emit("pointerover", $event)),
|
|
2311
|
+
onPointerout: _cache[12] || (_cache[12] = ($event) => emit("pointerout", $event)),
|
|
2312
|
+
onDblclick: _cache[13] || (_cache[13] = ($event) => emit("dblclick", $event)),
|
|
2313
|
+
onPointerdown: _cache[14] || (_cache[14] = ($event) => emit("pointerdown", $event)),
|
|
2314
|
+
onPointerup: _cache[15] || (_cache[15] = ($event) => emit("pointerup", $event)),
|
|
2315
|
+
onPointercancel: _cache[16] || (_cache[16] = ($event) => emit("pointercancel", $event)),
|
|
2316
|
+
onLostpointercapture: _cache[17] || (_cache[17] = ($event) => emit("lostpointercapture", $event)),
|
|
2317
|
+
onWheel: _cache[18] || (_cache[18] = ($event) => emit("wheel", $event))
|
|
2268
2318
|
}), {
|
|
2269
2319
|
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
2270
2320
|
_: 3
|
|
@@ -2345,7 +2395,7 @@ const vDistanceTo = {
|
|
|
2345
2395
|
};
|
|
2346
2396
|
|
|
2347
2397
|
//#endregion
|
|
2348
|
-
//#region ../../node_modules/.pnpm/three-stdlib@2.36.1_three@0.
|
|
2398
|
+
//#region ../../node_modules/.pnpm/three-stdlib@2.36.1_three@0.182.0/node_modules/three-stdlib/helpers/RectAreaLightHelper.js
|
|
2349
2399
|
var RectAreaLightHelper = class extends Line {
|
|
2350
2400
|
constructor(light, color) {
|
|
2351
2401
|
const positions = [
|
|
@@ -2478,4 +2528,4 @@ const plugin = { install(app) {
|
|
|
2478
2528
|
var src_default = plugin;
|
|
2479
2529
|
|
|
2480
2530
|
//#endregion
|
|
2481
|
-
export { DevtoolsMessenger, TresCanvas_default as TresCanvas, component_default as UseLoader, buildGraph, catalogue, src_default as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, template_compiler_options_default as templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
|
2531
|
+
export { DevtoolsMessenger, TresCanvas_default as TresCanvas, TresRendererError, component_default as UseLoader, buildGraph, catalogue, src_default as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, template_compiler_options_default as templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tresjs/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.3.
|
|
4
|
+
"version": "5.3.3",
|
|
5
5
|
"description": "Declarative ThreeJS using Vue Components",
|
|
6
6
|
"author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"radashi": "^12.6.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@types/three": "^0.
|
|
54
|
+
"@types/three": "^0.182.0",
|
|
55
55
|
"@typescript-eslint/eslint-plugin": "^8.42.0",
|
|
56
56
|
"@typescript-eslint/parser": "^8.42.0",
|
|
57
57
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
67
67
|
"rollup-plugin-copy": "^3.5.0",
|
|
68
68
|
"rollup-plugin-visualizer": "^6.0.3",
|
|
69
|
-
"three": "^0.
|
|
69
|
+
"three": "^0.182.0",
|
|
70
70
|
"tsdown": "0.18.3",
|
|
71
71
|
"typescript": "^5.8.3",
|
|
72
72
|
"vite": "^7.1.9",
|