@needle-tools/engine 4.8.4-next.68d6468 → 4.8.4-next.b63dc2f

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.
Files changed (50) hide show
  1. package/dist/{gltf-progressive-PB_58h1b.umd.cjs → gltf-progressive-C-U_onhf.umd.cjs} +1 -1
  2. package/dist/{gltf-progressive-DorC035H.min.js → gltf-progressive-DViD_J_l.min.js} +1 -1
  3. package/dist/{gltf-progressive-B3JW4cAu.js → gltf-progressive-DXRy9EQz.js} +35 -35
  4. package/dist/loader.worker-CiTwpNPW.js +27 -0
  5. package/dist/{needle-engine.bundle-D5UIUwHv.js → needle-engine.bundle-BR8P4m1O.js} +6360 -6394
  6. package/dist/{needle-engine.bundle-C0vgs1VP.umd.cjs → needle-engine.bundle-CuQtpPTN.umd.cjs} +134 -135
  7. package/dist/{needle-engine.bundle-BoN_WoMd.min.js → needle-engine.bundle-DA6dZylq.min.js} +139 -140
  8. package/dist/needle-engine.js +4 -4
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/{postprocessing-BgC7XZwK.umd.cjs → postprocessing-61aXdqNz.umd.cjs} +1 -1
  12. package/dist/{postprocessing-ChsrvDkI.min.js → postprocessing-Be9Ds4NK.min.js} +1 -1
  13. package/dist/{postprocessing-DddlM3CK.js → postprocessing-D9jDHD0U.js} +2 -2
  14. package/dist/{three-DrqIzZTH.js → three-BRSLmpyi.js} +2966 -2958
  15. package/dist/{three-DuDKwKB8.min.js → three-CsmWHVn7.min.js} +172 -172
  16. package/dist/{three-B_hneGZr.umd.cjs → three-Dceyffus.umd.cjs} +176 -176
  17. package/dist/{three-examples-BIuXQPSf.js → three-examples-BihZ_R96.js} +2761 -2623
  18. package/dist/{three-examples-CNRuT27G.umd.cjs → three-examples-Ce6Th3bv.umd.cjs} +17 -17
  19. package/dist/three-examples-DKY9Nfge.min.js +501 -0
  20. package/dist/{three-mesh-ui-DWcMuyQ_.min.js → three-mesh-ui-Bwy12Qvg.min.js} +1 -1
  21. package/dist/{three-mesh-ui-tt0buEDC.umd.cjs → three-mesh-ui-Cdh2iW8b.umd.cjs} +1 -1
  22. package/dist/{three-mesh-ui-D6Mz5Yl7.js → three-mesh-ui-gqAXlGNB.js} +1 -1
  23. package/dist/{vendor-C31T0mYm.min.js → vendor-BRpzuoJE.min.js} +1 -1
  24. package/dist/{vendor-D51IT5ns.umd.cjs → vendor-Ja-vKV-a.umd.cjs} +1 -1
  25. package/dist/{vendor-B_ytQUuR.js → vendor-p_xp9KuJ.js} +1 -1
  26. package/lib/engine/debug/debug_console.js +3 -33
  27. package/lib/engine/debug/debug_console.js.map +1 -1
  28. package/lib/engine/engine_pmrem.d.ts +2 -0
  29. package/lib/engine/engine_pmrem.js +100 -0
  30. package/lib/engine/engine_pmrem.js.map +1 -0
  31. package/lib/engine-components/Camera.js +1 -1
  32. package/lib/engine-components/Camera.js.map +1 -1
  33. package/lib/engine-components/Duplicatable.js +5 -2
  34. package/lib/engine-components/Duplicatable.js.map +1 -1
  35. package/lib/engine-components/Skybox.d.ts +0 -2
  36. package/lib/engine-components/Skybox.js +26 -110
  37. package/lib/engine-components/Skybox.js.map +1 -1
  38. package/lib/engine-components/TransformGizmo.js +2 -2
  39. package/lib/engine-components/TransformGizmo.js.map +1 -1
  40. package/package.json +3 -3
  41. package/src/engine/debug/debug_console.ts +3 -33
  42. package/src/engine/engine_pmrem.ts +118 -0
  43. package/src/engine-components/Camera.ts +1 -1
  44. package/src/engine-components/Duplicatable.ts +3 -2
  45. package/src/engine-components/Skybox.ts +30 -102
  46. package/src/engine-components/TransformGizmo.ts +3 -2
  47. package/src/include/ktx2/basis_transcoder.js +8 -10
  48. package/src/include/ktx2/basis_transcoder.wasm +0 -0
  49. package/dist/loader.worker-CrU5fNbR.js +0 -27
  50. package/dist/three-examples-D2zemuAM.min.js +0 -501
@@ -59,7 +59,6 @@ export declare class RemoteSkybox extends Behaviour {
59
59
  * @default true
60
60
  */
61
61
  allowNetworking: boolean;
62
- private _loader?;
63
62
  private _prevUrl?;
64
63
  private _prevLoadedEnvironment?;
65
64
  private _prevEnvironment;
@@ -76,7 +75,6 @@ export declare class RemoteSkybox extends Behaviour {
76
75
  * @returns Whether the skybox was successfully set
77
76
  */
78
77
  setSkybox(url: string | undefined | null, name?: string): Promise<boolean>;
79
- private loadTexture;
80
78
  private apply;
81
79
  private readonly validProtocols;
82
80
  private readonly validTextureTypes;
@@ -4,14 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { createLoaders } from "@needle-tools/gltf-progressive";
8
- import { CompressedCubeTexture, CubeTexture, EquirectangularRefractionMapping, SRGBColorSpace, TextureLoader } from "three";
9
- import { EXRLoader } from "three/examples/jsm/loaders/EXRLoader.js";
10
- import { KTX2Loader } from "three/examples/jsm/loaders/KTX2Loader.js";
11
- import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';
12
- import { disposeObjectResources, setDisposable } from "../engine/engine_assetdatabase.js";
7
+ import { CompressedCubeTexture, CubeTexture, CubeUVReflectionMapping, EquirectangularRefractionMapping } from "three";
13
8
  import { ContextEvent, ContextRegistry } from "../engine/engine_context_registry.js";
14
9
  import { syncField } from "../engine/engine_networking_auto.js";
10
+ import { loadPMREM } from "../engine/engine_pmrem.js";
15
11
  import { serializable } from "../engine/engine_serialization_decorator.js";
16
12
  import { addAttributeChangeCallback, getParam, removeAttributeChangeCallback } from "../engine/engine_utils.js";
17
13
  import { registerObservableAttribute } from "../engine/webcomponents/needle-engine.extras.js";
@@ -52,7 +48,8 @@ ContextRegistry.registerCallback(ContextEvent.ContextCreationStart, (args) => {
52
48
  const context = args.context;
53
49
  const skyboxImage = context.domElement.getAttribute("background-image");
54
50
  const environmentImage = context.domElement.getAttribute("environment-image");
55
- if (skyboxImage) {
51
+ const envAndSkyboxAreSame = skyboxImage === environmentImage;
52
+ if (skyboxImage && !envAndSkyboxAreSame) {
56
53
  if (debug)
57
54
  console.log("Creating remote skybox to load " + skyboxImage);
58
55
  // if the user is loading a GLB without a camera then the CameraUtils (which creates the default camera)
@@ -65,7 +62,7 @@ ContextRegistry.registerCallback(ContextEvent.ContextCreationStart, (args) => {
65
62
  if (environmentImage) {
66
63
  if (debug)
67
64
  console.log("Creating remote environment to load " + environmentImage);
68
- const promise = createRemoteSkyboxComponent(context, environmentImage, false, true, "environment-image");
65
+ const promise = createRemoteSkyboxComponent(context, environmentImage, envAndSkyboxAreSame, true, "environment-image");
69
66
  if (promise)
70
67
  promises.push(promise);
71
68
  }
@@ -75,40 +72,6 @@ ContextRegistry.registerCallback(ContextEvent.ContextCreationStart, () => {
75
72
  promises.length = 0;
76
73
  });
77
74
  });
78
- function ensureGlobalCache() {
79
- if (!globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"])
80
- globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"] = new Array();
81
- return globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"];
82
- }
83
- function tryGetPreviouslyLoadedTexture(src) {
84
- const cache = ensureGlobalCache();
85
- const found = cache.find(x => x.src === src);
86
- if (found) {
87
- if (debug)
88
- console.log("Skybox: Found previously loaded texture for " + src);
89
- return found.texture;
90
- }
91
- return null;
92
- }
93
- async function disposeCachedTexture(tex) {
94
- const texture = await tex;
95
- if (!texture)
96
- return;
97
- setDisposable(texture, true);
98
- disposeObjectResources(texture);
99
- }
100
- function registerLoadedTexture(src, texture) {
101
- const cache = ensureGlobalCache();
102
- // Make sure the cache doesnt get too big
103
- while (cache.length > 5) {
104
- const entry = cache.shift();
105
- if (entry) {
106
- disposeCachedTexture(entry.texture);
107
- }
108
- }
109
- texture.then(t => { return setDisposable(t, false); });
110
- cache.push({ src, texture });
111
- }
112
75
  /**
113
76
  * RemoteSkybox is a component that allows you to set the skybox of a scene from a URL or a local file.
114
77
  * It supports .hdr, .exr, .jpg, .png files.
@@ -169,7 +132,6 @@ export class RemoteSkybox extends Behaviour {
169
132
  * @default true
170
133
  */
171
134
  allowNetworking = true;
172
- _loader;
173
135
  _prevUrl;
174
136
  _prevLoadedEnvironment;
175
137
  _prevEnvironment = null;
@@ -229,7 +191,7 @@ export class RemoteSkybox extends Behaviour {
229
191
  this._prevLoadedEnvironment = undefined;
230
192
  }
231
193
  this._prevUrl = url;
232
- const texture = await this.loadTexture(url, name);
194
+ const texture = await loadPMREM(url, this.context.renderer);
233
195
  if (!texture) {
234
196
  if (debug)
235
197
  console.warn("RemoteSkybox: Failed to load texture from url", url);
@@ -249,61 +211,15 @@ export class RemoteSkybox extends Behaviour {
249
211
  }
250
212
  // Update the current url
251
213
  this.url = url;
252
- const nameIndex = url.lastIndexOf("/");
253
- texture.name = url.substring(nameIndex >= 0 ? nameIndex + 1 : 0);
254
- if (this._loader instanceof TextureLoader) {
255
- texture.colorSpace = SRGBColorSpace;
256
- }
257
214
  this._prevLoadedEnvironment = texture;
258
215
  this.apply();
259
216
  return true;
260
217
  }
261
- async loadTexture(url, name) {
262
- if (!url)
263
- return Promise.resolve(null);
264
- name ??= url;
265
- const cached = tryGetPreviouslyLoadedTexture(name);
266
- if (cached) {
267
- const res = await cached;
268
- if (res?.source?.data?.length > 0 || res?.source?.data?.data?.length)
269
- return res;
270
- }
271
- const isEXR = name.endsWith(".exr");
272
- const isHdr = name.endsWith(".hdr");
273
- const isKtx2 = name.endsWith(".ktx2");
274
- if (isEXR) {
275
- if (!(this._loader instanceof EXRLoader))
276
- this._loader = new EXRLoader();
277
- }
278
- else if (isHdr) {
279
- if (!(this._loader instanceof RGBELoader))
280
- this._loader = new RGBELoader();
281
- }
282
- else if (isKtx2) {
283
- if (!(this._loader instanceof KTX2Loader)) {
284
- const { ktx2Loader } = createLoaders(this.context.renderer);
285
- this._loader = ktx2Loader;
286
- }
287
- }
288
- else {
289
- if (!(this._loader instanceof TextureLoader))
290
- this._loader = new TextureLoader();
291
- }
292
- if (debug)
293
- console.log("Loading skybox: " + url);
294
- const loadingTask = this._loader.loadAsync(url).catch(_err => {
295
- console.warn("RemoteSkybox: Failed to load texture from url:", url);
296
- return null;
297
- });
298
- registerLoadedTexture(name, loadingTask);
299
- const envMap = await loadingTask;
300
- return envMap;
301
- }
302
218
  apply() {
303
219
  const envMap = this._prevLoadedEnvironment;
304
220
  if (!envMap)
305
221
  return;
306
- if ((envMap instanceof CubeTexture || envMap instanceof CompressedCubeTexture)) {
222
+ if ((envMap instanceof CubeTexture || envMap instanceof CompressedCubeTexture) || envMap.mapping == CubeUVReflectionMapping) {
307
223
  // Nothing to do
308
224
  }
309
225
  else {
@@ -422,13 +338,14 @@ export class RemoteSkybox extends Behaviour {
422
338
  console.warn(`[RemoteSkybox]: File \"${file.name}\" is not supported. Supported files are ${this.validTextureTypes.join(", ")}`);
423
339
  return;
424
340
  }
425
- if (tryGetPreviouslyLoadedTexture(file.name) === null) {
426
- const blob = new Blob([file]);
427
- const url = URL.createObjectURL(blob);
428
- e.preventDefault();
429
- this.setSkybox(url, file.name);
430
- }
431
- else {
341
+ // if (tryGetPreviouslyLoadedTexture(file.name) === null) {
342
+ // const blob = new Blob([file]);
343
+ // const url = URL.createObjectURL(blob);
344
+ // e.preventDefault();
345
+ // this.setSkybox(url, file.name);
346
+ // }
347
+ // else
348
+ {
432
349
  e.preventDefault();
433
350
  this.setSkybox(file.name);
434
351
  }
@@ -454,32 +371,31 @@ __decorate([
454
371
  serializable()
455
372
  ], RemoteSkybox.prototype, "allowNetworking", void 0);
456
373
  function tryParseMagicSkyboxName(str, environment, background) {
374
+ if (str === null || str === undefined)
375
+ return null;
457
376
  const useLowRes = environment && !background;
458
- switch (str?.toLowerCase()) {
377
+ switch (str.toLowerCase()) {
459
378
  case "studio":
460
379
  if (useLowRes) {
461
- return "https://cdn.needle.tools/static/skybox/modelviewer-Neutral-small.hdr";
380
+ return "https://cdn.needle.tools/static/skybox/modelviewer-Neutral-small.pmrem4x4.ktx2?pmrem";
462
381
  }
463
- else
464
- return "https://cdn.needle.tools/static/skybox/modelviewer-Neutral.hdr";
382
+ return "https://cdn.needle.tools/static/skybox/modelviewer-Neutral.pmrem4x4.ktx2?pmrem";
465
383
  case "blurred-skybox":
466
384
  if (useLowRes) {
467
- return "https://cdn.needle.tools/static/skybox/blurred-skybox-small.exr";
385
+ return "https://cdn.needle.tools/static/skybox/blurred-skybox-small.pmrem4x4.ktx2?pmrem";
468
386
  }
469
- return "https://cdn.needle.tools/static/skybox/blurred-skybox.exr";
387
+ return "https://cdn.needle.tools/static/skybox/blurred-skybox.pmrem4x4.ktx2?pmrem";
470
388
  case "quicklook-ar":
471
389
  if (useLowRes) {
472
- return "https://cdn.needle.tools/static/skybox/QuickLook-ARMode-small.exr";
390
+ return "https://cdn.needle.tools/static/skybox/QuickLook-ARMode-small.pmrem4x4.ktx2?pmrem";
473
391
  }
474
- return "https://cdn.needle.tools/static/skybox/QuickLook-ARMode.exr";
392
+ return "https://cdn.needle.tools/static/skybox/QuickLook-ARMode.pmrem4x4.ktx2?pmrem";
475
393
  case "quicklook":
476
394
  if (useLowRes) {
477
- return "https://cdn.needle.tools/static/skybox/QuickLook-ObjectMode-small.exr";
395
+ return "https://cdn.needle.tools/static/skybox/QuickLook-ObjectMode-small.pmrem4x4.ktx2?pmrem";
478
396
  }
479
- return "https://cdn.needle.tools/static/skybox/QuickLook-ObjectMode.exr";
397
+ return "https://cdn.needle.tools/static/skybox/QuickLook-ObjectMode.pmrem4x4.ktx2?pmrem";
480
398
  }
481
- if (str === undefined)
482
- return null;
483
399
  return str;
484
400
  }
485
401
  //# sourceMappingURL=Skybox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skybox.js","sourceRoot":"","sources":["../../src/engine-components/Skybox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Skybox.js","sourceRoot":"","sources":["../../src/engine-components/Skybox.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,7 @@ export class TransformGizmo extends Behaviour {
119
119
  orbit.enabled = !event.value;
120
120
  if (event.value) {
121
121
  // Start of interaction
122
- const sync = GameObject.getComponentInParent(this.gameObject, SyncedTransform);
122
+ const sync = this.gameObject.getComponentInParent(SyncedTransform);
123
123
  if (sync) {
124
124
  sync.fastMode = true;
125
125
  sync.requestOwnership();
@@ -127,7 +127,7 @@ export class TransformGizmo extends Behaviour {
127
127
  }
128
128
  else {
129
129
  // End of interaction
130
- const sync = GameObject.getComponentInParent(this.gameObject, SyncedTransform);
130
+ const sync = this.gameObject.getComponentInParent(SyncedTransform);
131
131
  if (sync) {
132
132
  sync.fastMode = false;
133
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransformGizmo.js","sourceRoot":"","sources":["../../src/engine-components/TransformGizmo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransformGizmo.js","sourceRoot":"","sources":["../../src/engine-components/TransformGizmo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.8.4-next.68d6468",
3
+ "version": "4.8.4-next.b63dc2f",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -93,7 +93,7 @@
93
93
  ],
94
94
  "dependencies": {
95
95
  "@dimforge/rapier3d-compat": "^0.14.0",
96
- "@needle-tools/gltf-progressive": "^3.3.1",
96
+ "@needle-tools/gltf-progressive": "3.3.2",
97
97
  "@webxr-input-profiles/motion-controllers": "^1.0.0",
98
98
  "flatbuffers": "2.0.4",
99
99
  "md5": "^2.3.0",
@@ -102,7 +102,7 @@
102
102
  "postprocessing": "^6.36.6",
103
103
  "simplex-noise": "^4.0.1",
104
104
  "stats.js": "^0.17.0",
105
- "three": "npm:@needle-tools/three@0.169.7",
105
+ "three": "npm:@needle-tools/three@0.169.8",
106
106
  "three-mesh-bvh": "^0.9.1",
107
107
  "three-mesh-ui": "npm:@needle-tools/three-mesh-ui@^7.1.5-alpha.5",
108
108
  "three.quarks": "0.15.6",
@@ -1,7 +1,5 @@
1
- import { isLocalNetwork } from "../engine_networking_utils.js";
2
- import { DeviceUtilities,getParam } from "../engine_utils.js";
3
- import { isDevEnvironment } from "./debug.js";
4
- import { getErrorCount, makeErrorsVisibleForDevelopment } from "./debug_overlay.js";
1
+ import { getParam } from "../engine_utils.js";
2
+ import { getErrorCount } from "./debug_overlay.js";
5
3
 
6
4
  let consoleInstance: VConsole | null | undefined = undefined;
7
5
  let consoleHtmlElement: HTMLElement | null = null;
@@ -12,38 +10,10 @@ let watchInterval: any = null;
12
10
  const defaultButtonIcon = "terminal";
13
11
 
14
12
  const showConsole = getParam("console");
15
- const suppressConsole = getParam("noerrors") || getParam("noconsole") || window.crossOriginIsolated;
16
13
  if (showConsole) {
17
14
  showDebugConsole();
18
15
  }
19
16
 
20
- if (!suppressConsole && (showConsole || isLocalNetwork())) {
21
- if (isLocalNetwork() && !showConsole) {
22
- const consoleUrl = new URL(window.location.href);
23
- consoleUrl.searchParams.set("console", "1");
24
- console.log("🌵 Tip: You can add the \"?console\" query parameter to the url to show the debug console (on mobile it will automatically open in the bottom right corner when your get errors during development. In VR a spatial console will appear.)", "\nOpen this page to get the console: " + consoleUrl.toString());
25
- }
26
- const enableConsole = DeviceUtilities.isMobileDevice() || (DeviceUtilities.isQuest() && isDevEnvironment());
27
- if (enableConsole || showConsole) {
28
- // we need to invoke this here - otherwise we will miss errors that happen after the console is loaded
29
- // and calling the method from the root needle-engine.ts import is evaluated later (if we import the method from the toplevel file and then invoke it)
30
- makeErrorsVisibleForDevelopment();
31
- beginWatchingLogs();
32
- createConsole(true);
33
- if (enableConsole) {
34
- const engineElement = document.querySelector("needle-engine");
35
- engineElement?.addEventListener("enter-ar", () => {
36
- if (showConsole || consoleInstance || getErrorCount() > 0) {
37
- if (getParam("noerrors")) return;
38
- }
39
- });
40
- engineElement?.addEventListener("exit-ar", () => {
41
- onResetConsoleElementToDefaultParent();
42
- });
43
- }
44
- }
45
- }
46
-
47
17
  const $defaultConsoleParent = Symbol("consoleParent");
48
18
 
49
19
  export function showDebugConsole() {
@@ -247,7 +217,7 @@ function createConsole(startHidden: boolean = false) {
247
217
  isLoading = false;
248
218
  consoleInstance = null;
249
219
  };
250
- script.src = "https://cdn.jsdelivr.net/npm/vconsole@3.9.1/dist/vconsole.min.js";
220
+ script.src = "https://cdn.jsdelivr.net/npm/vconsole@3.15.1/dist/vconsole.min.js";
251
221
  document.body.appendChild(script);
252
222
  }
253
223
 
@@ -0,0 +1,118 @@
1
+ import { createLoaders } from "@needle-tools/gltf-progressive";
2
+ import { CubeUVReflectionMapping, SRGBColorSpace, Texture, TextureLoader, WebGLRenderer } from "three";
3
+ import { EXRLoader } from "three/examples/jsm/loaders/EXRLoader";
4
+ import { KTX2Loader } from "three/examples/jsm/loaders/KTX2Loader";
5
+ import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
6
+ import { disposeObjectResources, setDisposable } from "./engine_assetdatabase.js";
7
+
8
+ const running: Map<string, Promise<Texture | null>> = new Map();
9
+
10
+ // #region api
11
+
12
+ export function loadPMREM(url: string, renderer: WebGLRenderer): Promise<Texture | null> {
13
+ if (running.has(url)) {
14
+ return running.get(url)!;
15
+ }
16
+ const actualUrl = new URL(url, window.location.href);
17
+ const promise = internalLoadPMREM(actualUrl, renderer);
18
+ running.set(url, promise);
19
+ return promise;
20
+ }
21
+
22
+
23
+
24
+ // #region Cache
25
+
26
+ declare type SkyboxCacheEntry = { src: string, texture: Promise<Texture | null> };
27
+ function ensureGlobalCache() {
28
+ if (!globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"])
29
+ globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"] = new Array<SkyboxCacheEntry>();
30
+ return globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"] as Array<SkyboxCacheEntry>;
31
+ }
32
+
33
+ function tryGetPreviouslyLoadedTexture(src: string) {
34
+ const cache = ensureGlobalCache();
35
+ const found = cache.find(x => x.src === src);
36
+ if (found) {
37
+ return found.texture;
38
+ }
39
+ return null;
40
+ }
41
+ async function disposeCachedTexture(tex: Promise<Texture | null>) {
42
+ const texture = await tex;
43
+ if (!texture) return;
44
+ setDisposable(texture, true);
45
+ disposeObjectResources(texture);
46
+ }
47
+ function registerPromise(src: string, texture: Promise<Texture | null>) {
48
+ const cache = ensureGlobalCache();
49
+ // Make sure the cache doesnt get too big
50
+ while (cache.length > 5) {
51
+ const entry = cache.shift();
52
+ if (entry) { disposeCachedTexture(entry.texture); }
53
+ }
54
+ texture.then(t => { return setDisposable(t, false) });
55
+ cache.push({ src, texture });
56
+ }
57
+
58
+
59
+
60
+ // #region loading
61
+
62
+
63
+ async function internalLoadPMREM(url: URL, renderer: WebGLRenderer) {
64
+ if (!url) return Promise.resolve(null);
65
+
66
+ const pathname = url.pathname;
67
+ const isPMREM_URL: boolean = url.toString().toLowerCase().includes("pmrem") || url.searchParams.get("pmrem") != null;
68
+
69
+ const cached = tryGetPreviouslyLoadedTexture(pathname);
70
+ if (cached) {
71
+ const res = await cached;
72
+ if (res?.source?.data?.length > 0 || res?.source?.data?.data?.length) return res;
73
+ }
74
+ const isEXR = pathname.endsWith(".exr");
75
+ const isHdr = pathname.endsWith(".hdr");
76
+ const isKtx2 = pathname.endsWith(".ktx2");
77
+
78
+ let loader: RGBELoader | EXRLoader | TextureLoader | KTX2Loader;
79
+
80
+ if (isEXR) {
81
+ loader = new EXRLoader();
82
+ }
83
+ else if (isHdr) {
84
+ loader = new RGBELoader();
85
+ }
86
+ else if (isKtx2) {
87
+ const { ktx2Loader } = createLoaders(renderer);
88
+ loader = ktx2Loader;
89
+ }
90
+ else {
91
+ loader = new TextureLoader();
92
+ }
93
+
94
+ const str = url.toString();
95
+ const promise = loader.loadAsync(str)
96
+ .then(tex => {
97
+ if (tex) {
98
+ const nameIndex = pathname.lastIndexOf("/");
99
+ tex.name = pathname.substring(nameIndex >= 0 ? nameIndex + 1 : 0);
100
+
101
+ if (isPMREM_URL) {
102
+ tex.mapping = CubeUVReflectionMapping;
103
+ }
104
+
105
+ if (loader instanceof TextureLoader) {
106
+ tex.colorSpace = SRGBColorSpace;
107
+ }
108
+ }
109
+ return tex;
110
+ });
111
+
112
+ registerPromise(str, promise);
113
+ const texture = await promise.catch(_err => {
114
+ console.warn("Failed to load texture from url:", url);
115
+ return null;
116
+ });
117
+ return texture;
118
+ }
@@ -694,7 +694,7 @@ class CameraSkybox {
694
694
  }
695
695
  else if (this.context.scene.background !== this._skybox) {
696
696
 
697
- const hasBackgroundAttribute = this.context.domElement.getAttribute("background-image") || this.context.domElement.getAttribute("background-color") || this.context.domElement.getAttribute("skybox-image");
697
+ const hasBackgroundAttribute = this.context.domElement.getAttribute("background-image") || this.context.domElement.getAttribute("background-color");
698
698
 
699
699
  if (debug) console.debug(`[Camera] Apply Skybox ${this._skybox?.name} ${hasBackgroundAttribute} - \"${this._camera.name}\"`);
700
700
  if (!hasBackgroundAttribute?.length) {
@@ -119,8 +119,9 @@ export class Duplicatable extends Behaviour implements IPointerEventHandler {
119
119
  const res = this.handleDuplication();
120
120
  if (res) {
121
121
  const dragControls = GameObject.getComponent(res, DragControls);
122
- if (!dragControls) console.warn("Duplicated object does not have DragControls", res);
123
- else {
122
+ if (!dragControls) {
123
+ if (isDevEnvironment()) console.warn(`Duplicated object (${res.name}) does not have DragControls`);
124
+ } else {
124
125
  dragControls.onPointerDown(args);
125
126
  this._forwardPointerEvents.set(args.event.space, dragControls);
126
127
  }