@tresjs/core 5.9.3 → 5.10.1

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.
@@ -0,0 +1,193 @@
1
+ /**
2
+ * name: @tresjs/core
3
+ * version: v5.10.1
4
+ * (c) 2026
5
+ * description: Declarative ThreeJS using Vue Components
6
+ * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
+ */
8
+ import { $ as isProd, $t as TresPointerEvent, A as createTimer, At as TresCamera, B as catalogue, Bt as TresLayers, C as isNode, Ct as Mutable, D as isPerspectiveCamera, Dt as ThreeElement, E as isOrthographicCamera, Et as Properties, F as AssetLoadData, Ft as TresComponentsOf, G as TresCanvasEmits, Gt as TresQuaternion, H as _default$2, Ht as TresObject, I as DevtoolsMessage, It as TresContextWithClock, J as templateCompilerOptions, Jt as TresVector3, K as TresCanvasInstance, Kt as TresScene, L as DevtoolsMessageType, Lt as TresControl, M as vLightHelper, Mt as TresColor, N as vDistanceTo, Nt as TresColorArray, O as isScene, Ot as ThreeInstances, P as registerTresDevtools, Pt as TresComponents, Q as disposeObject3D, Qt as WithMathProps, R as DevtoolsMessenger, Rt as TresEuler, S as isMesh, Sn as useLoader, St as MathType, T as isObject3D, Tt as Overwrite, Ut as TresObject3D, V as extend, Vt as TresMaterial, Wt as TresPrimitive, X as normalizeColor, Xt as VectorCoordinates, Y as VectorFlexibleParams, Yt as TresVector4, Z as normalizeVectorFlexibleParam, Zt as VueProps, _ as isFog, _n as LoaderProto, _t as ConstructorRepresentation, a as isCopyable, an as RenderMode, at as useLoop, b as isLight, bn as UseLoaderReturn, bt as InstanceProps, c as isTresObject, cn as TresRendererSetupContext, ct as useGraph, d as isWebGLRenderer, dn as TresRendererError, dt as _default$3, en as INJECTION_KEY, et as logError, f as isWebGPURenderer, fn as TresRendererErrorCode, ft as TresObjectMap, g as isColorRepresentation, gn as LoaderMethods, gt as AttachType, h as isColor, hn as RafLoopContext, ht as AttachFnType, i as isClassInstance, in as RenderFunction, it as LoopContext, j as vLog, jt as TresCatalogue, k as TresTimer, kt as ThreeInstancesOf, l as isTresPrimitive, ln as UseRendererManagerReturn, m as isCamera, mn as useCameraManager, mt as Args, n as TresPlugin, nn as TresContextProviderOptions, nt as logWarning, o as isTresCamera, on as RendererOptions, ot as TresPartialContext, p as isBufferGeometry, pn as UseCameraReturn, pt as buildGraph, q as TresCanvasProps, qt as TresVector2, rn as useTresContext, rt as TresCustomRendererOptions, s as isTresInstance, sn as TresRenderer, t as TresOptions, tn as TresContext, tt as logMessage, u as isVectorLike, un as UseRendererOptions, v as isGroup, vn as TresLoader, vt as DisposeType, w as isNodeMaterial, wt as NonFunctionKeys, x as isMaterial, xn as UseLoaderReturnBase, xt as LocalState, y as isLayers, yn as TresLoaderOptions, yt as ElementProps, z as DevtoolsSubscriber, zt as TresInstance } from "./index-BGtWKBla.js";
9
+ import * as THREE_WEBGPU from "three/webgpu";
10
+ import { WebGPURenderer } from "three/webgpu";
11
+ //#region src/webgpu/TresCanvas.vue.d.ts
12
+ interface TresWebGPUCanvasProps extends Omit<TresCanvasProps, 'renderer'> {
13
+ /**
14
+ * Custom renderer factory. It must return a `WebGPURenderer`, because `useTres()` from this entry types the renderer as one.
15
+ */
16
+ renderer?: (ctx: TresRendererSetupContext) => WebGPURenderer;
17
+ }
18
+ type __VLS_Slots$1 = {
19
+ default: () => any;
20
+ };
21
+ declare const __VLS_base$1: import("vue").DefineComponent<TresWebGPUCanvasProps, TresCanvasInstance, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ click: (event: TresPointerEvent) => any;
23
+ contextmenu: (event: TresPointerEvent) => any;
24
+ pointermove: (event: TresPointerEvent) => any;
25
+ pointerenter: (event: TresPointerEvent) => any;
26
+ pointerleave: (event: TresPointerEvent) => any;
27
+ pointerover: (event: TresPointerEvent) => any;
28
+ pointerout: (event: TresPointerEvent) => any;
29
+ dblclick: (event: TresPointerEvent) => any;
30
+ pointerdown: (event: TresPointerEvent) => any;
31
+ pointerup: (event: TresPointerEvent) => any;
32
+ pointercancel: (event: TresPointerEvent) => any;
33
+ lostpointercapture: (event: TresPointerEvent) => any;
34
+ wheel: (event: TresPointerEvent) => any;
35
+ ready: (context: TresContext) => any;
36
+ error: (error: Error) => any;
37
+ pointermissed: (event: TresPointerEvent) => any;
38
+ render: (context: TresContext) => any;
39
+ beforeLoop: (context: TresContextWithClock) => any;
40
+ loop: (context: TresContextWithClock) => any;
41
+ }, string, import("vue").PublicProps, Readonly<TresWebGPUCanvasProps> & Readonly<{
42
+ onClick?: ((event: TresPointerEvent) => any) | undefined;
43
+ onContextmenu?: ((event: TresPointerEvent) => any) | undefined;
44
+ onPointermove?: ((event: TresPointerEvent) => any) | undefined;
45
+ onPointerenter?: ((event: TresPointerEvent) => any) | undefined;
46
+ onPointerleave?: ((event: TresPointerEvent) => any) | undefined;
47
+ onPointerover?: ((event: TresPointerEvent) => any) | undefined;
48
+ onPointerout?: ((event: TresPointerEvent) => any) | undefined;
49
+ onDblclick?: ((event: TresPointerEvent) => any) | undefined;
50
+ onPointerdown?: ((event: TresPointerEvent) => any) | undefined;
51
+ onPointerup?: ((event: TresPointerEvent) => any) | undefined;
52
+ onPointercancel?: ((event: TresPointerEvent) => any) | undefined;
53
+ onLostpointercapture?: ((event: TresPointerEvent) => any) | undefined;
54
+ onWheel?: ((event: TresPointerEvent) => any) | undefined;
55
+ onReady?: ((context: TresContext) => any) | undefined;
56
+ onError?: ((error: Error) => any) | undefined;
57
+ onPointermissed?: ((event: TresPointerEvent) => any) | undefined;
58
+ onRender?: ((context: TresContext) => any) | undefined;
59
+ onBeforeLoop?: ((context: TresContextWithClock) => any) | undefined;
60
+ onLoop?: ((context: TresContextWithClock) => any) | undefined;
61
+ }>, {
62
+ windowSize: boolean;
63
+ enableProvideBridge: boolean;
64
+ customRendererOptions: TresCustomRendererOptions;
65
+ antialias: boolean;
66
+ stencil: boolean;
67
+ depth: boolean;
68
+ logarithmicDepthBuffer: boolean;
69
+ preserveDrawingBuffer: boolean;
70
+ alpha: boolean;
71
+ failIfMajorPerformanceCaveat: boolean;
72
+ clearColor: import("three").ColorRepresentation;
73
+ clearAlpha: number;
74
+ shadows: boolean;
75
+ toneMapping: import("three").ToneMapping;
76
+ shadowMapType: import("three").ShadowMapType;
77
+ useLegacyLights: boolean;
78
+ renderMode: "always" | "on-demand" | "manual";
79
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
+ declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
81
+ declare const _default: typeof __VLS_export$1;
82
+ type __VLS_WithSlots$1<T, S> = T & {
83
+ new (): {
84
+ $slots: S;
85
+ };
86
+ };
87
+ //#endregion
88
+ //#region src/webgpu/WebGPUContext.vue.d.ts
89
+ type __VLS_Props = TresWebGPUCanvasProps & {
90
+ canvas: HTMLCanvasElement;
91
+ };
92
+ type __VLS_Slots = {
93
+ default: () => any;
94
+ };
95
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, TresCanvasInstance, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
96
+ click: (event: TresPointerEvent) => any;
97
+ contextmenu: (event: TresPointerEvent) => any;
98
+ pointermove: (event: TresPointerEvent) => any;
99
+ pointerenter: (event: TresPointerEvent) => any;
100
+ pointerleave: (event: TresPointerEvent) => any;
101
+ pointerover: (event: TresPointerEvent) => any;
102
+ pointerout: (event: TresPointerEvent) => any;
103
+ dblclick: (event: TresPointerEvent) => any;
104
+ pointerdown: (event: TresPointerEvent) => any;
105
+ pointerup: (event: TresPointerEvent) => any;
106
+ pointercancel: (event: TresPointerEvent) => any;
107
+ lostpointercapture: (event: TresPointerEvent) => any;
108
+ wheel: (event: TresPointerEvent) => any;
109
+ ready: (context: TresContext) => any;
110
+ error: (error: Error) => any;
111
+ pointermissed: (event: TresPointerEvent) => any;
112
+ render: (context: TresContext) => any;
113
+ beforeLoop: (context: TresContextWithClock) => any;
114
+ loop: (context: TresContextWithClock) => any;
115
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
116
+ onClick?: ((event: TresPointerEvent) => any) | undefined;
117
+ onContextmenu?: ((event: TresPointerEvent) => any) | undefined;
118
+ onPointermove?: ((event: TresPointerEvent) => any) | undefined;
119
+ onPointerenter?: ((event: TresPointerEvent) => any) | undefined;
120
+ onPointerleave?: ((event: TresPointerEvent) => any) | undefined;
121
+ onPointerover?: ((event: TresPointerEvent) => any) | undefined;
122
+ onPointerout?: ((event: TresPointerEvent) => any) | undefined;
123
+ onDblclick?: ((event: TresPointerEvent) => any) | undefined;
124
+ onPointerdown?: ((event: TresPointerEvent) => any) | undefined;
125
+ onPointerup?: ((event: TresPointerEvent) => any) | undefined;
126
+ onPointercancel?: ((event: TresPointerEvent) => any) | undefined;
127
+ onLostpointercapture?: ((event: TresPointerEvent) => any) | undefined;
128
+ onWheel?: ((event: TresPointerEvent) => any) | undefined;
129
+ onReady?: ((context: TresContext) => any) | undefined;
130
+ onError?: ((error: Error) => any) | undefined;
131
+ onPointermissed?: ((event: TresPointerEvent) => any) | undefined;
132
+ onRender?: ((context: TresContext) => any) | undefined;
133
+ onBeforeLoop?: ((context: TresContextWithClock) => any) | undefined;
134
+ onLoop?: ((context: TresContextWithClock) => any) | undefined;
135
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
136
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
137
+ declare const _default$1: typeof __VLS_export;
138
+ type __VLS_WithSlots<T, S> = T & {
139
+ new (): {
140
+ $slots: S;
141
+ };
142
+ };
143
+ //#endregion
144
+ //#region src/webgpu/renderer.d.ts
145
+ export declare const useRendererManager: (options: UseRendererOptions) => {
146
+ loop: {
147
+ start: () => void;
148
+ stop: () => void;
149
+ isActive: Readonly<import("vue").ShallowRef<boolean>>;
150
+ onBeforeLoop: import("@vueuse/core").EventHookOn<RafLoopContext>;
151
+ onLoop: import("@vueuse/core").EventHookOn<RafLoopContext>;
152
+ };
153
+ instance: TresRenderer;
154
+ advance: () => void;
155
+ onReady: import("@vueuse/core").EventHookOn<TresRenderer>;
156
+ onRender: import("@vueuse/core").EventHookOn<TresRenderer>;
157
+ onError: import("@vueuse/core").EventHookOn<TresRendererError>;
158
+ invalidate: (amountOfFramesToInvalidate?: number) => void;
159
+ canBeInvalidated: import("vue").ComputedRef<boolean>;
160
+ mode: "always" | "on-demand" | "manual" | undefined;
161
+ replaceRenderFunction: (fn: RenderFunction) => void;
162
+ isInitialized: import("vue").Ref<boolean, boolean>;
163
+ error: import("vue").Ref<TresRendererError | null, TresRendererError | null>;
164
+ };
165
+ export declare const useTresContextProvider: (options: TresContextProviderOptions) => TresContext;
166
+ //#endregion
167
+ //#region src/webgpu/types.d.ts
168
+ /**
169
+ * Tres components for the `three/webgpu` classes that `three` does not export
170
+ * (node materials, nodes, ...). Shared names keep the root types, which also matches the
171
+ * runtime catalogue (see `index.ts`).
172
+ */
173
+ type TresWebGPUComponents = Omit<TresComponentsOf<ThreeInstancesOf<typeof THREE_WEBGPU>>, keyof TresComponents>;
174
+ declare module 'vue' {
175
+ interface GlobalComponents extends TresWebGPUComponents {}
176
+ }
177
+ //#endregion
178
+ //#region src/webgpu/useTres.d.ts
179
+ interface TresWebGPUPartialContext extends Omit<TresPartialContext, 'renderer'> {
180
+ /**
181
+ * The renderer instance. The WebGPU `TresCanvas` only accepts renderer factories that return a `WebGPURenderer`.
182
+ */
183
+ renderer: WebGPURenderer;
184
+ }
185
+ /**
186
+ * `useTres` for canvases from `@tresjs/core/webgpu`, with the renderer typed as `WebGPURenderer`.
187
+ */
188
+ export declare function useTres(): TresWebGPUPartialContext;
189
+ //#endregion
190
+ //#region src/webgpu/index.d.ts
191
+ declare const plugin: TresPlugin;
192
+ //#endregion
193
+ export { Args, AssetLoadData, AttachFnType, AttachType, ConstructorRepresentation, DevtoolsMessage, DevtoolsMessageType, DevtoolsMessenger, DevtoolsSubscriber, DisposeType, ElementProps, INJECTION_KEY, InstanceProps, LoaderMethods, LoaderProto, LocalState, LoopContext, MathType, Mutable, NonFunctionKeys, Overwrite, Properties, type RenderFunction, type RenderMode, type RendererOptions, ThreeElement, ThreeInstances, ThreeInstancesOf, TresCamera, _default as TresCanvas, _default$1 as TresCanvasContext, type TresCanvasEmits, type TresCanvasInstance, type TresCanvasProps, TresCatalogue, TresColor, TresColorArray, TresComponents, TresComponentsOf, type TresContext, TresContextWithClock, TresControl, type TresCustomRendererOptions, TresEuler, TresInstance, TresLayers, TresLoader, TresLoaderOptions, TresMaterial, TresObject, TresObject3D, TresObjectMap, TresOptions, TresPartialContext, TresPlugin, type TresPointerEvent, _default$2 as TresPortal, TresPrimitive, TresQuaternion, type TresRenderer, TresRendererError, TresRendererErrorCode, type TresRendererSetupContext, TresScene, TresTimer, TresVector2, TresVector3, TresVector4, type TresWebGPUCanvasProps, type TresWebGPUComponents, type TresWebGPUPartialContext, UseCameraReturn, _default$3 as UseLoader, UseLoaderReturn, UseLoaderReturnBase, type UseRendererManagerReturn, type UseRendererOptions, VectorCoordinates, type VectorFlexibleParams, VueProps, WithMathProps, buildGraph, catalogue, createTimer, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isNode, isNodeMaterial, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, isWebGLRenderer, isWebGPURenderer, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useTresContext, vDistanceTo, vLightHelper, vLog };
package/dist/webgpu.js ADDED
@@ -0,0 +1,361 @@
1
+ /**
2
+ * name: @tresjs/core
3
+ * version: v5.10.1
4
+ * (c) 2026
5
+ * description: Declarative ThreeJS using Vue Components
6
+ * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
+ */
8
+ import { $ as isGroup, A as catalogue, B as isCopyable, C as disposeObject3D, D as useBaseTresContextProvider, E as INJECTION_KEY, F as isProd, G as isVectorLike, H as isTresInstance, I as logError, J as isBufferGeometry, K as isWebGLRenderer, L as logMessage, M as useBaseRendererManager, N as TresRendererError, O as useTresContext, P as createTimer, Q as isFog, R as logWarning, S as DevtoolsMessenger, U as isTresObject, V as isTresCamera, W as isTresPrimitive, X as isColor, Y as isCamera, Z as isColorRepresentation, _ as BaseCanvas_default, a as useLoop, at as isNodeMaterial, b as Context_default, c as buildGraph, ct as isPerspectiveCamera, d as TresPortal_default, et as isLayers, h as normalizeVectorFlexibleParam, i as vDistanceTo, it as isNode, j as extend, k as useCameraManager, l as component_default, lt as isScene, m as normalizeColor, n as vLog, nt as isMaterial, o as useTres$1, ot as isObject3D, p as templateCompilerOptions, q as isWebGPURenderer, r as vLightHelper, rt as isMesh, s as useGraph, st as isOrthographicCamera, tt as isLight, u as useLoader, v as tresCanvasDefaults, x as registerTresDevtools, y as forwardContext, z as isClassInstance } from "./src-D_6lJnFs.js";
9
+ import { createBlock, defineComponent, mergeDefaults, mergeProps, openBlock, renderSlot, shallowRef, toHandlers, toValue, unref, withCtx } from "vue";
10
+ import * as THREE_WEBGPU from "three/webgpu";
11
+ import { WebGPURenderer } from "three/webgpu";
12
+ //#region src/webgpu/renderer.ts
13
+ const WEBGPU_RENDERER_OPTIONS = [
14
+ "antialias",
15
+ "alpha",
16
+ "depth",
17
+ "stencil",
18
+ "logarithmicDepthBuffer"
19
+ ];
20
+ /**
21
+ * Picks the `TresCanvas` props that `WebGPURenderer` takes in its constructor.
22
+ * Undefined props are left out so three keeps its own defaults.
23
+ */
24
+ const toWebGPURendererParameters = (options) => {
25
+ const parameters = {};
26
+ for (const key of WEBGPU_RENDERER_OPTIONS) if (options[key] !== void 0) parameters[key] = options[key];
27
+ if (options.powerPreference && options.powerPreference !== "default") parameters.powerPreference = options.powerPreference;
28
+ return parameters;
29
+ };
30
+ const createWebGPURenderer = (ctx, options) => new WebGPURenderer({
31
+ ...toWebGPURendererParameters(options),
32
+ canvas: toValue(ctx.canvas)
33
+ });
34
+ const useRendererManager = (options) => useBaseRendererManager(options, createWebGPURenderer);
35
+ const useTresContextProvider = (options) => useBaseTresContextProvider(options, createWebGPURenderer);
36
+ //#endregion
37
+ //#region src/webgpu/TresCanvas.vue
38
+ var TresCanvas_default = /* @__PURE__ */ defineComponent({
39
+ __name: "TresCanvas",
40
+ props: /*@__PURE__*/ mergeDefaults({
41
+ renderer: {
42
+ type: Function,
43
+ required: false
44
+ },
45
+ camera: {
46
+ type: null,
47
+ required: false
48
+ },
49
+ windowSize: {
50
+ type: Boolean,
51
+ required: false
52
+ },
53
+ fpsLimit: {
54
+ type: Number,
55
+ required: false
56
+ },
57
+ enableProvideBridge: {
58
+ type: Boolean,
59
+ required: false
60
+ },
61
+ customRendererOptions: {
62
+ type: Object,
63
+ required: false
64
+ },
65
+ antialias: {
66
+ type: Boolean,
67
+ required: false
68
+ },
69
+ stencil: {
70
+ type: Boolean,
71
+ required: false
72
+ },
73
+ depth: {
74
+ type: Boolean,
75
+ required: false
76
+ },
77
+ precision: {
78
+ type: String,
79
+ required: false
80
+ },
81
+ logarithmicDepthBuffer: {
82
+ type: Boolean,
83
+ required: false
84
+ },
85
+ preserveDrawingBuffer: {
86
+ type: Boolean,
87
+ required: false
88
+ },
89
+ powerPreference: {
90
+ type: null,
91
+ required: false
92
+ },
93
+ alpha: {
94
+ type: Boolean,
95
+ required: false
96
+ },
97
+ premultipliedAlpha: {
98
+ type: Boolean,
99
+ required: false
100
+ },
101
+ failIfMajorPerformanceCaveat: {
102
+ type: Boolean,
103
+ required: false
104
+ },
105
+ clearColor: {
106
+ type: [
107
+ Object,
108
+ String,
109
+ Number
110
+ ],
111
+ required: false
112
+ },
113
+ clearAlpha: {
114
+ type: Number,
115
+ required: false
116
+ },
117
+ shadows: {
118
+ type: Boolean,
119
+ required: false
120
+ },
121
+ toneMapping: {
122
+ type: null,
123
+ required: false
124
+ },
125
+ shadowMapType: {
126
+ type: null,
127
+ required: false
128
+ },
129
+ useLegacyLights: {
130
+ type: Boolean,
131
+ required: false
132
+ },
133
+ outputColorSpace: {
134
+ type: null,
135
+ required: false
136
+ },
137
+ toneMappingExposure: {
138
+ type: Number,
139
+ required: false
140
+ },
141
+ renderMode: {
142
+ type: String,
143
+ required: false
144
+ },
145
+ dpr: {
146
+ type: [Number, Array],
147
+ required: false
148
+ }
149
+ }, tresCanvasDefaults),
150
+ emits: [
151
+ "ready",
152
+ "error",
153
+ "pointermissed",
154
+ "render",
155
+ "beforeLoop",
156
+ "loop",
157
+ "click",
158
+ "contextmenu",
159
+ "pointermove",
160
+ "pointerenter",
161
+ "pointerleave",
162
+ "pointerover",
163
+ "pointerout",
164
+ "dblclick",
165
+ "pointerdown",
166
+ "pointerup",
167
+ "pointercancel",
168
+ "lostpointercapture",
169
+ "wheel"
170
+ ],
171
+ setup(__props, { expose: __expose, emit: __emit }) {
172
+ const props = __props;
173
+ const emit = __emit;
174
+ const child = shallowRef();
175
+ const { listeners, exposed } = forwardContext(emit, child);
176
+ __expose(exposed);
177
+ const createDefaultRenderer = (ctx) => createWebGPURenderer(ctx, props);
178
+ return (_ctx, _cache) => {
179
+ return openBlock(), createBlock(BaseCanvas_default, mergeProps({
180
+ ref_key: "child",
181
+ ref: child
182
+ }, props, { renderer: props.renderer ?? createDefaultRenderer }, toHandlers(unref(listeners))), {
183
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
184
+ _: 3
185
+ }, 16, ["renderer"]);
186
+ };
187
+ }
188
+ });
189
+ //#endregion
190
+ //#region src/webgpu/WebGPUContext.vue
191
+ var WebGPUContext_default = /* @__PURE__ */ defineComponent({
192
+ __name: "WebGPUContext",
193
+ props: {
194
+ renderer: {
195
+ type: Function,
196
+ required: false
197
+ },
198
+ camera: {
199
+ type: null,
200
+ required: false
201
+ },
202
+ windowSize: {
203
+ type: Boolean,
204
+ required: false
205
+ },
206
+ fpsLimit: {
207
+ type: Number,
208
+ required: false
209
+ },
210
+ enableProvideBridge: {
211
+ type: Boolean,
212
+ required: false
213
+ },
214
+ customRendererOptions: {
215
+ type: Object,
216
+ required: false
217
+ },
218
+ antialias: {
219
+ type: Boolean,
220
+ required: false
221
+ },
222
+ stencil: {
223
+ type: Boolean,
224
+ required: false
225
+ },
226
+ depth: {
227
+ type: Boolean,
228
+ required: false
229
+ },
230
+ precision: {
231
+ type: String,
232
+ required: false
233
+ },
234
+ logarithmicDepthBuffer: {
235
+ type: Boolean,
236
+ required: false
237
+ },
238
+ preserveDrawingBuffer: {
239
+ type: Boolean,
240
+ required: false
241
+ },
242
+ powerPreference: {
243
+ type: null,
244
+ required: false
245
+ },
246
+ alpha: {
247
+ type: Boolean,
248
+ required: false
249
+ },
250
+ premultipliedAlpha: {
251
+ type: Boolean,
252
+ required: false
253
+ },
254
+ failIfMajorPerformanceCaveat: {
255
+ type: Boolean,
256
+ required: false
257
+ },
258
+ clearColor: {
259
+ type: [
260
+ Object,
261
+ String,
262
+ Number
263
+ ],
264
+ required: false
265
+ },
266
+ clearAlpha: {
267
+ type: Number,
268
+ required: false
269
+ },
270
+ shadows: {
271
+ type: Boolean,
272
+ required: false
273
+ },
274
+ toneMapping: {
275
+ type: null,
276
+ required: false
277
+ },
278
+ shadowMapType: {
279
+ type: null,
280
+ required: false
281
+ },
282
+ useLegacyLights: {
283
+ type: Boolean,
284
+ required: false
285
+ },
286
+ outputColorSpace: {
287
+ type: null,
288
+ required: false
289
+ },
290
+ toneMappingExposure: {
291
+ type: Number,
292
+ required: false
293
+ },
294
+ renderMode: {
295
+ type: String,
296
+ required: false
297
+ },
298
+ dpr: {
299
+ type: [Number, Array],
300
+ required: false
301
+ },
302
+ canvas: {
303
+ type: null,
304
+ required: true
305
+ }
306
+ },
307
+ emits: [
308
+ "ready",
309
+ "error",
310
+ "pointermissed",
311
+ "render",
312
+ "beforeLoop",
313
+ "loop",
314
+ "click",
315
+ "contextmenu",
316
+ "pointermove",
317
+ "pointerenter",
318
+ "pointerleave",
319
+ "pointerover",
320
+ "pointerout",
321
+ "dblclick",
322
+ "pointerdown",
323
+ "pointerup",
324
+ "pointercancel",
325
+ "lostpointercapture",
326
+ "wheel"
327
+ ],
328
+ setup(__props, { expose: __expose, emit: __emit }) {
329
+ const props = __props;
330
+ const emit = __emit;
331
+ const child = shallowRef();
332
+ const { listeners, exposed } = forwardContext(emit, child);
333
+ __expose(exposed);
334
+ const createDefaultRenderer = (ctx) => createWebGPURenderer(ctx, props);
335
+ return (_ctx, _cache) => {
336
+ return openBlock(), createBlock(Context_default, mergeProps({
337
+ ref_key: "child",
338
+ ref: child
339
+ }, props, { renderer: props.renderer ?? createDefaultRenderer }, toHandlers(unref(listeners))), {
340
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
341
+ _: 3
342
+ }, 16, ["renderer"]);
343
+ };
344
+ }
345
+ });
346
+ //#endregion
347
+ //#region src/webgpu/useTres.ts
348
+ /**
349
+ * `useTres` for canvases from `@tresjs/core/webgpu`, with the renderer typed as `WebGPURenderer`.
350
+ */
351
+ function useTres() {
352
+ return useTres$1();
353
+ }
354
+ //#endregion
355
+ //#region src/webgpu/index.ts
356
+ extend(THREE_WEBGPU);
357
+ const plugin = { install(app) {
358
+ app.component("TresCanvas", TresCanvas_default);
359
+ } };
360
+ //#endregion
361
+ export { DevtoolsMessenger, INJECTION_KEY, TresCanvas_default as TresCanvas, WebGPUContext_default as TresCanvasContext, TresPortal_default as TresPortal, TresRendererError, component_default as UseLoader, buildGraph, catalogue, createTimer, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isNode, isNodeMaterial, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, isWebGLRenderer, isWebGPURenderer, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, 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.9.3",
4
+ "version": "5.10.1",
5
5
  "description": "Declarative ThreeJS using Vue Components",
6
6
  "author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
7
7
  "license": "MIT",
@@ -17,9 +17,15 @@
17
17
  "three",
18
18
  "threejs-vue"
19
19
  ],
20
- "sideEffects": false,
20
+ "sideEffects": [
21
+ "./dist/webgpu.js"
22
+ ],
21
23
  "exports": {
22
24
  ".": "./dist/tres.js",
25
+ "./webgpu": {
26
+ "types": "./dist/webgpu.d.ts",
27
+ "default": "./dist/webgpu.js"
28
+ },
23
29
  "./template-compiler-options": "./dist/template-compiler-options.mjs",
24
30
  "./package.json": "./package.json"
25
31
  },
@@ -30,6 +36,9 @@
30
36
  "*": {
31
37
  "template-compiler-options": [
32
38
  "dist/template-compiler-options.d.mts"
39
+ ],
40
+ "webgpu": [
41
+ "dist/webgpu.d.ts"
33
42
  ]
34
43
  }
35
44
  },
@@ -86,7 +95,7 @@
86
95
  ]
87
96
  },
88
97
  "scripts": {
89
- "build": "tsdown",
98
+ "build": "tsdown && node ./scripts/check-entries.mjs && node ./scripts/check-bundle.mjs",
90
99
  "build:analyze": "ANALYZE=true tsdown",
91
100
  "test": "vitest",
92
101
  "test:ci": "vitest run --typecheck",