@needle-tools/gltf-progressive 4.0.0-alpha.6 → 4.0.0-alpha.8

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/README.md CHANGED
@@ -217,3 +217,7 @@ Read more about Needle Progressive GLTF loading in the [Needle Engine documentat
217
217
  [Twitter](https://twitter.com/NeedleTools) •
218
218
  [Discord](https://discord.needle.tools) •
219
219
  [Forum](https://forum.needle.tools)
220
+
221
+ ### Renderer types
222
+
223
+ Progressive loading accepts both WebGLRenderer and initialized WebGPURenderer instances. The exported ProgressiveRenderer type is shared by loader setup, the LOD manager, and plugin callbacks. Initialize a WebGPU renderer before configuring its loaders. Run npm run test:types to verify both public renderer contracts.
package/lib/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
+ export type { ProgressiveRenderer } from './renderer.js';
2
+ import type { ProgressiveRenderer } from './renderer.js';
1
3
  export { version as VERSION } from "./version.js";
2
4
  export * from "./extension.js";
3
5
  export * from "./plugins/index.js";
4
6
  export { LODsManager, calculateMeshLODLevel, getLODColor, lodDebugColors, type LOD_Results, type MeshLODSelectionOptions, type MeshLODSelectionResult } from "./lods.manager.js";
5
7
  export { setDracoDecoderLocation, setKTX2TranscoderLocation, createLoaders, disposeLoaders, addDracoAndKTX2Loaders, configureLoader } from "./loaders.js";
6
8
  export { getRaycastMesh, registerRaycastMesh, useRaycastMeshes } from "./utils.js";
7
- import { WebGLRenderer } from "three";
8
9
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
9
10
  import { SmartLoadingHints } from "./loaders.js";
10
11
  declare type UseNeedleGLTFProgressiveOptions = {
@@ -18,5 +19,5 @@ declare type UseNeedleGLTFProgressiveOptions = {
18
19
  hints?: Omit<SmartLoadingHints, "progressive">;
19
20
  };
20
21
  /** @deprecated Use `useNeedleProgressive(loader, renderer)` - this method will be removed in gltf-progressive 4 */
21
- export declare function useNeedleProgressive(url: string, renderer: WebGLRenderer, loader: GLTFLoader, opts?: UseNeedleGLTFProgressiveOptions): any;
22
- export declare function useNeedleProgressive(loader: GLTFLoader, renderer: WebGLRenderer, opts?: UseNeedleGLTFProgressiveOptions): any;
22
+ export declare function useNeedleProgressive(url: string, renderer: ProgressiveRenderer, loader: GLTFLoader, opts?: UseNeedleGLTFProgressiveOptions): any;
23
+ export declare function useNeedleProgressive(loader: GLTFLoader, renderer: ProgressiveRenderer, opts?: UseNeedleGLTFProgressiveOptions): any;
package/lib/loaders.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { WebGLRenderer } from 'three';
1
+ import type { ProgressiveRenderer } from './renderer.js';
2
2
  import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
3
3
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
4
4
  import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
@@ -25,7 +25,7 @@ export declare function setKTX2TranscoderLocation(location: string): void;
25
25
  * @param renderer - Provide a renderer to detect KTX2 support.
26
26
  * @returns The loaders/decoders.
27
27
  */
28
- export declare function createLoaders(renderer: WebGLRenderer | null): {
28
+ export declare function createLoaders(renderer: ProgressiveRenderer | null): {
29
29
  dracoLoader: DRACOLoader;
30
30
  ktx2Loader: KTX2Loader;
31
31
  meshoptDecoder: any;
@@ -1,4 +1,5 @@
1
- import { Box3, BufferGeometry, Camera, Color, Material, Matrix4, Object3D, Scene, Texture, Vector3, WebGLRenderer } from "three";
1
+ import type { ProgressiveRenderer } from './renderer.js';
2
+ import { Box3, BufferGeometry, Camera, Color, Material, Matrix4, Object3D, Scene, Texture, Vector3 } from "three";
2
3
  import { NEEDLE_progressive_plugin } from "./plugins/plugin.js";
3
4
  import { PromiseGroupOptions } from "./lods.promise.js";
4
5
  export type LODManagerContext = {
@@ -82,8 +83,8 @@ export declare class LODsManager {
82
83
  * @param renderer The renderer to get the LODsManager for.
83
84
  * @returns The LODsManager instance.
84
85
  */
85
- static get(renderer: WebGLRenderer, context?: LODManagerContext): LODsManager;
86
- readonly renderer: WebGLRenderer;
86
+ static get(renderer: ProgressiveRenderer, context?: LODManagerContext): LODsManager;
87
+ readonly renderer: ProgressiveRenderer;
87
88
  private readonly context;
88
89
  private readonly projectionScreenMatrix;
89
90
  /** @deprecated use static `LODsManager.addPlugin()` method. This getter will be removed in later versions */
@@ -1,13 +1,14 @@
1
- import { WebGLRenderer, Scene, Camera, Mesh } from 'three';
1
+ import type { ProgressiveRenderer } from '../renderer.js';
2
+ import { Scene, Camera, Mesh } from 'three';
2
3
  import { NEEDLE_ext_progressive_mesh } from '../extension.model.js';
3
4
  /**
4
5
  * This interface is used to define a plugin for the progressive extension. It can be registered using the `registerPlugin` function.
5
6
  */
6
7
  export interface NEEDLE_progressive_plugin {
7
8
  /** Called before the LOD level will be requested/updated for a object */
8
- onBeforeUpdateLOD?(renderer: WebGLRenderer, scene: Scene, camera: Camera, object: Mesh): void;
9
+ onBeforeUpdateLOD?(renderer: ProgressiveRenderer, scene: Scene, camera: Camera, object: Mesh): void;
9
10
  /** Called after the LOD level has been requested */
10
- onAfterUpdatedLOD?(renderer: WebGLRenderer, scene: Scene, camera: Camera, object: Mesh, level: {
11
+ onAfterUpdatedLOD?(renderer: ProgressiveRenderer, scene: Scene, camera: Camera, object: Mesh, level: {
11
12
  mesh_lod: number;
12
13
  texture_lod: number;
13
14
  }): void;
@@ -0,0 +1,4 @@
1
+ import type { WebGLRenderer } from 'three';
2
+ import type WebGPURenderer from 'three/src/renderers/webgpu/WebGPURenderer.js';
3
+ /** Renderers supported by Progressive loading and LOD updates. */
4
+ export type ProgressiveRenderer = WebGLRenderer | WebGPURenderer;
@@ -0,0 +1 @@
1
+ export {};
package/lib/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // replaced at build time
2
- export const version = "4.0.0-alpha.6";
2
+ export const version = "4.0.0-alpha.8";
3
3
  globalThis["GLTF_PROGRESSIVE_VERSION"] = version;
4
4
  console.debug(`[gltf-progressive] version ${version || "-"}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/gltf-progressive",
3
- "version": "4.0.0-alpha.6",
3
+ "version": "4.0.0-alpha.8",
4
4
  "description": "three.js support for loading glTF or GLB files that contain progressive loading data",
5
5
  "homepage": "https://needle.tools",
6
6
  "author": {
@@ -56,7 +56,7 @@
56
56
  }
57
57
  },
58
58
  "peerDependencies": {
59
- "three": ">= 0.183.0"
59
+ "three": "*"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@needle-tools/engine": "^5.1.0-alpha.6",