@galacean/engine-loader 1.1.0-beta.2 → 1.1.0-beta.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-loader",
3
- "version": "1.1.0-beta.2",
3
+ "version": "1.1.0-beta.21",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -15,10 +15,10 @@
15
15
  "types/**/*"
16
16
  ],
17
17
  "dependencies": {
18
- "@galacean/engine-draco": "1.1.0-beta.2",
19
- "@galacean/engine-math": "1.1.0-beta.2",
20
- "@galacean/engine-core": "1.1.0-beta.2",
21
- "@galacean/engine-rhi-webgl": "1.1.0-beta.2"
18
+ "@galacean/engine-core": "1.1.0-beta.21",
19
+ "@galacean/engine-draco": "1.1.0-beta.21",
20
+ "@galacean/engine-math": "1.1.0-beta.21",
21
+ "@galacean/engine-rhi-webgl": "1.1.0-beta.21"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
@@ -12,4 +12,5 @@ export interface GLTFParams {
12
12
  * Keep raw mesh data for glTF parser, default is false.
13
13
  */
14
14
  keepMeshData?: boolean;
15
+ [key: string]: any;
15
16
  }
@@ -1,5 +1,6 @@
1
1
  import { Buffer, Entity, ResourceManager, TypedArray } from "@galacean/engine-core";
2
2
  import { BufferDataRestoreInfo, GLTFContentRestorer } from "../../GLTFContentRestorer";
3
+ import { GLTFParams } from "../../GLTFLoader";
3
4
  import { GLTFResource } from "../GLTFResource";
4
5
  import type { IGLTF } from "../GLTFSchema";
5
6
  import { GLTFParser } from "./GLTFParser";
@@ -9,7 +10,7 @@ import { GLTFParser } from "./GLTFParser";
9
10
  export declare class GLTFParserContext {
10
11
  glTFResource: GLTFResource;
11
12
  resourceManager: ResourceManager;
12
- keepMeshData: boolean;
13
+ params: GLTFParams;
13
14
  private static readonly _parsers;
14
15
  static addParser(parserType: GLTFParserType, parser: GLTFParser): void;
15
16
  glTF: IGLTF;
@@ -17,7 +18,7 @@ export declare class GLTFParserContext {
17
18
  contentRestorer: GLTFContentRestorer;
18
19
  buffers?: ArrayBuffer[];
19
20
  private _resourceCache;
20
- constructor(glTFResource: GLTFResource, resourceManager: ResourceManager, keepMeshData: boolean);
21
+ constructor(glTFResource: GLTFResource, resourceManager: ResourceManager, params: GLTFParams);
21
22
  get<T>(type: GLTFParserType.Entity, index: number): Entity;
22
23
  get<T>(type: GLTFParserType.Entity): Entity[];
23
24
  get<T>(type: GLTFParserType.Schema): Promise<T>;
@@ -25,6 +26,7 @@ export declare class GLTFParserContext {
25
26
  get<T>(type: GLTFParserType, index: number): Promise<T>;
26
27
  get<T>(type: GLTFParserType): Promise<T[]>;
27
28
  parse(): Promise<GLTFResource>;
29
+ private _createAnimator;
28
30
  private _handleSubAsset;
29
31
  }
30
32
  /**
@@ -6,7 +6,6 @@ export declare class GLTFSceneParser extends GLTFParser {
6
6
  private _parseEntityComponent;
7
7
  private _createCamera;
8
8
  private _createRenderer;
9
- private _createAnimator;
10
9
  private _computeLocalBounds;
11
10
  private _computeApproximateBindMatrix;
12
11
  }
package/types/index.d.ts CHANGED
@@ -15,6 +15,7 @@ import "./SpriteAtlasLoader";
15
15
  import "./SpriteLoader";
16
16
  import "./Texture2DLoader";
17
17
  import "./TextureCubeLoader";
18
+ import "./ProjectLoader";
18
19
  import "./ktx2/KTX2Loader";
19
20
  export type { GLTFParams } from "./GLTFLoader";
20
21
  export * from "./SceneLoader";
@@ -5,6 +5,7 @@ export declare class KTX2Loader extends Loader<Texture2D | TextureCube> {
5
5
  private static _isBinomialInit;
6
6
  private static _binomialLLCTranscoder;
7
7
  private static _khronosTranscoder;
8
+ private static _priorityFormats;
8
9
  private static _supportedMap;
9
10
  /**
10
11
  * Destroy ktx2 transcoder worker.
@@ -37,7 +38,7 @@ export declare class KTX2Loader extends Loader<Texture2D | TextureCube> {
37
38
  * KTX2 loader params interface.
38
39
  */
39
40
  export interface KTX2Params {
40
- /** Priority transcoding format queue, default is ASTC/ETC/DXT/PVRTC/RGBA8. */
41
+ /** Priority transcoding format queue which is preferred options, default is BC7/ASTC/BC3_BC1/ETC/PVRTC/R8G8B8A8. */
41
42
  priorityFormats: KTX2TargetFormat[];
42
43
  }
43
44
  declare module "@galacean/engine-core" {
@@ -46,8 +47,8 @@ declare module "@galacean/engine-core" {
46
47
  ktx2Loader?: {
47
48
  /** Worker count for transcoder, default is 4. */
48
49
  workerCount?: number;
49
- /** Pre-initialization according to the priority transcoding format queue, default is ASTC/ETC/DXT/PVRTC/RGBA8. */
50
- priorityFormats?: KTX2TargetFormat[] | KTX2TargetFormat[][];
50
+ /** Global transcoding format queue which will be used if not specified in per-instance param, default is BC7/ASTC/BC3_BC1/ETC/PVRTC/R8G8B8A8. */
51
+ priorityFormats?: KTX2TargetFormat[];
51
52
  };
52
53
  }
53
54
  }
@@ -20,7 +20,7 @@ export interface InitMessage extends BaseMessage {
20
20
  export interface BinomialTranscodeMessage extends BaseMessage {
21
21
  type: "transcode";
22
22
  format: number;
23
- buffer: ArrayBuffer;
23
+ buffer: Uint8Array;
24
24
  }
25
25
  export type IBinomialMessage = InitMessage | BinomialTranscodeMessage;
26
26
  export type TranscodeResult = {
@@ -4,5 +4,5 @@ import { AbstractTranscoder, TranscodeResult } from "./AbstractTranscoder";
4
4
  export declare class BinomialLLCTranscoder extends AbstractTranscoder {
5
5
  constructor(workerLimitCount: number);
6
6
  _initTranscodeWorkerPool(): Promise<any>;
7
- transcode(buffer: ArrayBuffer, format: KTX2TargetFormat): Promise<TranscodeResult>;
7
+ transcode(buffer: Uint8Array, format: KTX2TargetFormat): Promise<TranscodeResult>;
8
8
  }
@@ -3,4 +3,4 @@ import { TranscodeResult } from "./AbstractTranscoder";
3
3
  export declare function TranscodeWorkerCode(): void;
4
4
  export declare const _init: () => (wasmBinary?: ArrayBuffer) => any;
5
5
  export declare const init: (wasmBinary?: ArrayBuffer) => any;
6
- export declare function transcode(buffer: ArrayBuffer, targetFormat: any, KTX2File: any): TranscodeResult;
6
+ export declare function transcode(buffer: Uint8Array, targetFormat: any, KTX2File: any): TranscodeResult;
@@ -1,14 +1,18 @@
1
- import { Engine, Entity } from "@galacean/engine-core";
1
+ import { Entity } from "@galacean/engine-core";
2
2
  import type { IBasicType, IClassObject, IEntity } from "../schema";
3
+ import { SceneParserContext } from "../scene/SceneParserContext";
3
4
  export declare class ReflectionParser {
5
+ private readonly _context;
4
6
  static customParseComponentHandles: Map<string, Function>;
5
7
  static registerCustomParseComponent(componentType: string, handle: Function): void;
6
- static parseEntity(entityConfig: IEntity, engine: Engine): Promise<Entity>;
7
- private static getEntityByConfig;
8
- static parseClassObject(item: IClassObject, engine: Engine, resourceManager?: any): Promise<any>;
9
- static parseBasicType(value: IBasicType, engine: Engine, resourceManager?: any): Promise<any>;
10
- static parsePropsAndMethods(instance: any, item: Omit<IClassObject, "class">, engine: Engine, resourceManager?: any): Promise<any>;
11
- static parseMethod(instance: any, methodName: string, methodParams: Array<IBasicType>, engine: Engine, resourceManager?: any): Promise<any>;
8
+ constructor(_context: SceneParserContext);
9
+ parseEntity(entityConfig: IEntity): Promise<Entity>;
10
+ parseClassObject(item: IClassObject): Promise<any>;
11
+ parsePropsAndMethods(instance: any, item: Omit<IClassObject, "class">): Promise<any>;
12
+ parseMethod(instance: any, methodName: string, methodParams: Array<IBasicType>): Promise<any>;
13
+ parseBasicType(value: IBasicType, originValue?: any): Promise<any>;
14
+ private _getEntityByConfig;
12
15
  private static _isClass;
13
- private static _isRef;
16
+ private static _isAssetRef;
17
+ private static _isEntityRef;
14
18
  }
@@ -18,6 +18,7 @@ export declare class SceneParser {
18
18
  private _resolve;
19
19
  private _reject;
20
20
  private _engine;
21
+ private _reflectionParser;
21
22
  constructor(context: SceneParserContext);
22
23
  /** start parse the scene */
23
24
  start(): void;
@@ -1,4 +1,4 @@
1
- import { Component, Entity, Scene } from "@galacean/engine-core";
1
+ import { Component, Engine, Entity, ResourceManager, Scene } from "@galacean/engine-core";
2
2
  import type { IEntity, IScene } from "../schema";
3
3
  export declare class SceneParserContext {
4
4
  readonly originalData: IScene;
@@ -8,6 +8,8 @@ export declare class SceneParserContext {
8
8
  assets: Map<string, any>;
9
9
  entityConfigMap: Map<string, IEntity>;
10
10
  rootIds: string[];
11
+ readonly engine: Engine;
12
+ readonly resourceManager: ResourceManager;
11
13
  constructor(originalData: IScene, scene: Scene);
12
14
  destroy(): void;
13
15
  }
@@ -23,21 +23,6 @@ export interface IPrefabFile {
23
23
  entities: Array<IEntity>;
24
24
  }
25
25
  export type IMethodParams = Array<IBasicType>;
26
- export type IClassObject = {
27
- class: string;
28
- constructParams?: IMethodParams;
29
- methods?: {
30
- [methodName: string]: Array<IMethodParams>;
31
- };
32
- props?: {
33
- [key: string]: IBasicType | IMethodParams;
34
- };
35
- };
36
- export type IBasicType = string | number | boolean | null | undefined | IAssetRef | IClassObject | IMethodParams;
37
- export type IAssetRef = {
38
- key?: string;
39
- refId: string;
40
- };
41
26
  export interface IBasicEntity {
42
27
  name?: string;
43
28
  id?: string;
@@ -59,3 +44,21 @@ export type IComponent = {
59
44
  id: string;
60
45
  refId?: string;
61
46
  } & IClassObject;
47
+ export type IClassObject = {
48
+ class: string;
49
+ constructParams?: IMethodParams;
50
+ methods?: {
51
+ [methodName: string]: Array<IMethodParams>;
52
+ };
53
+ props?: {
54
+ [key: string]: IBasicType | IMethodParams;
55
+ };
56
+ };
57
+ export type IBasicType = string | number | boolean | null | undefined | IAssetRef | IClassObject | IMethodParams | IEntityRef;
58
+ export type IAssetRef = {
59
+ key?: string;
60
+ refId: string;
61
+ };
62
+ export type IEntityRef = {
63
+ entityId: string;
64
+ };
@@ -79,7 +79,7 @@ export interface IMaterialSchema {
79
79
  shader: string;
80
80
  shaderData: {
81
81
  [key: string]: {
82
- type: "Vector2" | "Vector3" | "Vector4" | "Color" | "Float" | "Texture";
82
+ type: "Vector2" | "Vector3" | "Vector4" | "Color" | "Float" | "Texture" | "Boolean" | "Integer";
83
83
  value: IVector3 | IVector2 | IColor | number | IAssetRef;
84
84
  };
85
85
  };
@@ -2,7 +2,7 @@ export declare class BufferReader {
2
2
  data: Uint8Array;
3
3
  private _dataView;
4
4
  private _littleEndian;
5
- private _offset;
5
+ private _position;
6
6
  private _baseOffset;
7
7
  constructor(data: Uint8Array, byteOffset?: number, byteLength?: number, littleEndian?: boolean);
8
8
  get position(): number;
@@ -1,13 +0,0 @@
1
- import { KTX2TargetFormat } from "../KTX2TargetFormat";
2
- import { TranscodeResult } from "../TranscodeResult";
3
- /** @internal */
4
- export declare class BinomialLLCTranscoder {
5
- readonly workerLimit: number;
6
- static MessageId: number;
7
- private _transcodeWorkerPool;
8
- private _initPromise;
9
- constructor(workerLimit: number);
10
- init(): Promise<any>;
11
- transcode(buffer: ArrayBuffer, format: KTX2TargetFormat): Promise<TranscodeResult>;
12
- destroy(): void;
13
- }
@@ -1,33 +0,0 @@
1
- type MessageType = "init" | "transcode";
2
- export interface IBaseMessage {
3
- type: MessageType;
4
- }
5
- export interface IInitMessage extends IBaseMessage {
6
- type: "init";
7
- transcoderWasm: ArrayBuffer;
8
- }
9
- export interface ITranscodeMessage extends IBaseMessage {
10
- type: "transcode";
11
- format: number;
12
- buffer: ArrayBuffer;
13
- }
14
- export type IMessage = IInitMessage | ITranscodeMessage;
15
- export type TranscodeResult = {
16
- width: number;
17
- height: number;
18
- hasAlpha: boolean;
19
- format: number;
20
- faces: Array<{
21
- data: Uint8Array;
22
- width: number;
23
- height: number;
24
- }>[];
25
- faceCount: number;
26
- };
27
- export type TranscodeResponse = {
28
- id: number;
29
- type: "transcoded";
30
- } & TranscodeResult;
31
- /** @internal */
32
- export declare function TranscodeWorkerCode(): void;
33
- export {};
@@ -1,17 +0,0 @@
1
- import { KTX2Container } from "../KTX2Container";
2
- import { KTX2TargetFormat } from "../KTX2TargetFormat";
3
- import { TranscodeResult } from "./TranscoderWorkerCode";
4
- /** @internal */
5
- export declare class KhronosTranscoder {
6
- readonly workerLimit: number;
7
- readonly type: KTX2TargetFormat;
8
- static transcoderMap: {
9
- 0: string;
10
- };
11
- private _transcodeWorkerPool;
12
- private _initPromise;
13
- constructor(workerLimit: number, type: KTX2TargetFormat);
14
- init(): Promise<any>;
15
- transcode(ktx2Container: KTX2Container): Promise<TranscodeResult>;
16
- destroy(): void;
17
- }
@@ -1,34 +0,0 @@
1
- export interface EncodedData {
2
- buffer: Uint8Array;
3
- levelWidth: number;
4
- levelHeight: number;
5
- uncompressedByteLength: number;
6
- }
7
- type MessageType = "init" | "transcode";
8
- export interface IBaseMessage {
9
- type: MessageType;
10
- }
11
- export interface IInitMessage extends IBaseMessage {
12
- type: "init";
13
- transcoderWasm: ArrayBuffer;
14
- }
15
- export interface ITranscodeMessage extends IBaseMessage {
16
- type: "transcode";
17
- format: number;
18
- needZstd: boolean;
19
- data: EncodedData[][];
20
- }
21
- export type IMessage = IInitMessage | ITranscodeMessage;
22
- export type TranscodeResult = {
23
- data: Array<{
24
- data: Uint8Array;
25
- width: number;
26
- height: number;
27
- }>;
28
- };
29
- export type TranscodeResponse = {
30
- id: number;
31
- type: "transcoded";
32
- } & TranscodeResult;
33
- export declare function TranscodeWorkerCode(): void;
34
- export {};
@@ -1,10 +0,0 @@
1
- export interface TranscodeResult {
2
- width: number;
3
- height: number;
4
- hasAlpha: boolean;
5
- mipmaps: Array<{
6
- data: Uint8Array;
7
- width: number;
8
- height: number;
9
- }>;
10
- }
@@ -1,7 +0,0 @@
1
- export declare enum SupercompressionScheme {
2
- None = 0,
3
- BasisLZ = 1,
4
- Zstd = 2,
5
- ZLib = 3
6
- }
7
- export declare const KHR_DF_SAMPLE_DATATYPE_SIGNED = 64;
@@ -1,62 +0,0 @@
1
- /**
2
- * From https://github.com/donmccurdy/zstddec by Don McCurdy
3
- */
4
- interface DecoderExports {
5
- memory: Uint8Array;
6
- ZSTD_findDecompressedSize: (compressedPtr: number, compressedSize: number) => number;
7
- ZSTD_decompress: (uncompressedPtr: number, uncompressedSize: number, compressedPtr: number, compressedSize: number) => number;
8
- malloc: (ptr: number) => number;
9
- free: (ptr: number) => void;
10
- }
11
- /**
12
- * ZSTD (Zstandard) decoder.
13
- */
14
- export declare class ZSTDDecoder {
15
- static heap: Uint8Array;
16
- static IMPORT_OBJECT: {
17
- env: {
18
- emscripten_notify_memory_growth: () => void;
19
- };
20
- };
21
- static instance: {
22
- exports: DecoderExports;
23
- };
24
- static WasmModuleURL: string;
25
- _initPromise: Promise<any>;
26
- init(): Promise<void>;
27
- _init(result: WebAssembly.WebAssemblyInstantiatedSource): void;
28
- decode(array: Uint8Array, uncompressedSize?: number): Uint8Array;
29
- }
30
- export {};
31
- /**
32
- * BSD License
33
- *
34
- * For Zstandard software
35
- *
36
- * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. All rights reserved.
37
- *
38
- * Redistribution and use in source and binary forms, with or without modification,
39
- * are permitted provided that the following conditions are met:
40
- *
41
- * * Redistributions of source code must retain the above copyright notice, this
42
- * list of conditions and the following disclaimer.
43
- *
44
- * * Redistributions in binary form must reproduce the above copyright notice,
45
- * this list of conditions and the following disclaimer in the documentation
46
- * and/or other materials provided with the distribution.
47
- *
48
- * * Neither the name Facebook nor the names of its contributors may be used to
49
- * endorse or promote products derived from this software without specific
50
- * prior written permission.
51
- *
52
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
53
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
54
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
55
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
56
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
57
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
58
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
59
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
60
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
61
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62
- */