@galacean/engine-loader 0.0.0-experimental-renderSort.3 → 0.0.0-experimental-shaderlab.2

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 (45) hide show
  1. package/LICENSE +2 -2
  2. package/dist/main.js +1310 -706
  3. package/dist/main.js.map +1 -1
  4. package/dist/miniprogram.js +1309 -706
  5. package/dist/module.js +1298 -695
  6. package/dist/module.js.map +1 -1
  7. package/package.json +4 -5
  8. package/types/GLTFContentRestorer.d.ts +7 -6
  9. package/types/GLTFLoader.d.ts +7 -1
  10. package/types/PrimitiveMeshLoader.d.ts +1 -0
  11. package/types/ShaderChunkLoader.d.ts +1 -0
  12. package/types/ShaderLoader.d.ts +1 -0
  13. package/types/gltf/GLTFResource.d.ts +50 -16
  14. package/types/gltf/GLTFSchema.d.ts +1 -1
  15. package/types/gltf/GLTFUtils.d.ts +6 -10
  16. package/types/gltf/extensions/EXT_meshopt_compression.d.ts +13 -0
  17. package/types/gltf/extensions/GLTFExtensionParser.d.ts +1 -1
  18. package/types/gltf/extensions/GLTFExtensionSchema.d.ts +18 -10
  19. package/types/gltf/extensions/KHR_materials_anisotropy.d.ts +1 -0
  20. package/types/gltf/extensions/MeshoptDecoder.d.ts +8 -0
  21. package/types/gltf/extensions/index.d.ts +2 -1
  22. package/types/gltf/index.d.ts +2 -1
  23. package/types/gltf/parser/GLTFBufferViewParser.d.ts +5 -0
  24. package/types/gltf/parser/GLTFJSONParser.d.ts +7 -0
  25. package/types/gltf/parser/GLTFMeshParser.d.ts +7 -6
  26. package/types/gltf/parser/GLTFParser.d.ts +1 -1
  27. package/types/gltf/parser/GLTFParserContext.d.ts +20 -6
  28. package/types/gltf/parser/GLTFSchemaParser.d.ts +0 -1
  29. package/types/gltf/parser/index.d.ts +2 -1
  30. package/types/index.d.ts +5 -1
  31. package/types/ktx2/KTX2Loader.d.ts +4 -3
  32. package/types/resource-deserialize/index.d.ts +2 -1
  33. package/types/resource-deserialize/resources/animationClip/AnimationClipDecoder.d.ts +0 -1
  34. package/types/resource-deserialize/resources/parser/HierarchyParser.d.ts +36 -0
  35. package/types/resource-deserialize/resources/parser/ParserContext.d.ts +29 -0
  36. package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +4 -4
  37. package/types/resource-deserialize/resources/prefab/PrefabDesign.d.ts +70 -0
  38. package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +14 -0
  39. package/types/resource-deserialize/resources/prefab/PrefabParserContext.d.ts +5 -0
  40. package/types/resource-deserialize/resources/prefab/ReflectionParser.d.ts +14 -0
  41. package/types/resource-deserialize/resources/scene/SceneParser.d.ts +3 -17
  42. package/types/resource-deserialize/resources/scene/SceneParserContext.d.ts +6 -12
  43. package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +27 -1
  44. package/types/resource-deserialize/resources/schema/MaterialSchema.d.ts +2 -1
  45. package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +9 -1
@@ -0,0 +1,70 @@
1
+ import type { BackgroundMode } from "@galacean/engine-core";
2
+ import { IReferable } from "@galacean/engine-core/types/asset/IReferable";
3
+ import { IColor } from "../mesh/IModelMesh";
4
+ export interface IPrefabFile {
5
+ entities: Array<IEntity>;
6
+ }
7
+ export interface IScene extends IPrefabFile {
8
+ scene: {
9
+ background: {
10
+ mode: BackgroundMode;
11
+ color: IColor;
12
+ texture?: IReferable;
13
+ sky?: IReferable;
14
+ };
15
+ ambient: {
16
+ ambientLight: IReferable;
17
+ diffuseSolidColor: IColor;
18
+ diffuseIntensity: number;
19
+ specularIntensity: number;
20
+ };
21
+ };
22
+ files: Array<{
23
+ id: string;
24
+ type: string;
25
+ virtualPath: string;
26
+ path: string;
27
+ }>;
28
+ }
29
+ export interface IVector3 {
30
+ x: number;
31
+ y: number;
32
+ z: number;
33
+ }
34
+ export interface IBasicEntity {
35
+ name?: string;
36
+ id?: string;
37
+ components?: Array<IComponent>;
38
+ isActive?: boolean;
39
+ position?: IVector3;
40
+ rotation?: IVector3;
41
+ scale?: IVector3;
42
+ children?: Array<string>;
43
+ parent?: string;
44
+ }
45
+ export type IEntity = IBasicEntity | IRefEntity;
46
+ export interface IRefEntity extends IBasicEntity {
47
+ assetRefId: string;
48
+ key?: string;
49
+ isClone?: boolean;
50
+ }
51
+ export type IComponent = {
52
+ id: string;
53
+ refId?: string;
54
+ } & IClassObject;
55
+ export type IMethodParams = Array<IBasicType>;
56
+ export type IClassObject = {
57
+ class: string;
58
+ constructParams?: IMethodParams;
59
+ methods?: {
60
+ [methodName: string]: Array<IMethodParams>;
61
+ };
62
+ props?: {
63
+ [key: string]: IBasicType | IMethodParams;
64
+ };
65
+ };
66
+ export type IBasicType = string | number | boolean | null | undefined | IAssetRef | IClassObject | IMethodParams;
67
+ export type IAssetRef = {
68
+ key?: string;
69
+ refId: string;
70
+ };
@@ -0,0 +1,14 @@
1
+ import { Entity, Engine } from "@galacean/engine-core";
2
+ import type { IPrefabFile } from "../schema";
3
+ import { PrefabParserContext } from "./PrefabParserContext";
4
+ import HierarchyParser from "../parser/HierarchyParser";
5
+ export declare class PrefabParser extends HierarchyParser<Entity, PrefabParserContext> {
6
+ /**
7
+ * Parse prefab data.
8
+ * @param engine - the engine of the parser context
9
+ * @param prefabData - prefab data which is exported by editor
10
+ * @returns a promise of prefab
11
+ */
12
+ static parse(engine: Engine, prefabData: IPrefabFile): PrefabParser;
13
+ protected handleRootEntity(id: string): void;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { Entity } from "@galacean/engine-core";
2
+ import { IPrefabFile } from "../schema";
3
+ import { ParserContext } from "../parser/ParserContext";
4
+ export declare class PrefabParserContext extends ParserContext<IPrefabFile, Entity> {
5
+ }
@@ -0,0 +1,14 @@
1
+ import { Engine, Entity } from "@galacean/engine-core";
2
+ import { IBasicType, IClassObject, IEntity } from "./PrefabDesign";
3
+ export declare class ReflectionParser {
4
+ static customParseComponentHandles: Map<string, Function>;
5
+ 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>;
12
+ private static _isClass;
13
+ private static _isRef;
14
+ }
@@ -1,9 +1,9 @@
1
1
  import { Engine, Scene } from "@galacean/engine-core";
2
2
  import type { IScene } from "../schema";
3
3
  import { SceneParserContext } from "./SceneParserContext";
4
+ import HierarchyParser from "../parser/HierarchyParser";
4
5
  /** @Internal */
5
- export declare class SceneParser {
6
- readonly context: SceneParserContext;
6
+ export declare class SceneParser extends HierarchyParser<Scene, SceneParserContext> {
7
7
  /**
8
8
  * Parse scene data.
9
9
  * @param engine - the engine of the parser context
@@ -11,19 +11,5 @@ export declare class SceneParser {
11
11
  * @returns a promise of scene
12
12
  */
13
13
  static parse(engine: Engine, sceneData: IScene): Promise<Scene>;
14
- /**
15
- * The promise of parsed scene.
16
- */
17
- readonly promise: Promise<Scene>;
18
- private _resolve;
19
- private _reject;
20
- private _engine;
21
- private _reflectionParser;
22
- constructor(context: SceneParserContext);
23
- /** start parse the scene */
24
- start(): void;
25
- private _parseEntities;
26
- private _organizeEntities;
27
- private _parseComponents;
28
- private _clearAndResolveScene;
14
+ protected handleRootEntity(id: string): void;
29
15
  }
@@ -1,15 +1,9 @@
1
- import { Component, Engine, Entity, ResourceManager, Scene } from "@galacean/engine-core";
2
- import type { IEntity, IScene } from "../schema";
3
- export declare class SceneParserContext {
1
+ import { Scene } from "@galacean/engine-core";
2
+ import { IScene } from "../schema";
3
+ import { ParserContext } from "../parser/ParserContext";
4
+ export declare class SceneParserContext extends ParserContext<IScene, Scene> {
4
5
  readonly originalData: IScene;
6
+ readonly engine: any;
5
7
  readonly scene: Scene;
6
- entityMap: Map<string, Entity>;
7
- components: Map<string, Component>;
8
- assets: Map<string, any>;
9
- entityConfigMap: Map<string, IEntity>;
10
- rootIds: string[];
11
- readonly engine: Engine;
12
- readonly resourceManager: ResourceManager;
13
- constructor(originalData: IScene, scene: Scene);
14
- destroy(): void;
8
+ constructor(originalData: IScene, engine: any, scene: Scene);
15
9
  }
@@ -36,11 +36,34 @@ export interface IBasicEntity {
36
36
  parent?: string;
37
37
  layer?: Layer;
38
38
  }
39
- export type IEntity = IBasicEntity | IRefEntity;
39
+ export type IEntity = IBasicEntity | IRefEntity | IStrippedEntity;
40
40
  export interface IRefEntity extends IBasicEntity {
41
41
  assetRefId: string;
42
42
  key?: string;
43
43
  isClone?: boolean;
44
+ modifications: {
45
+ target: IPrefabModifyTarget;
46
+ methods?: {
47
+ [methodName: string]: Array<IMethodParams>;
48
+ };
49
+ props?: {
50
+ [key: string]: IBasicType | IMethodParams;
51
+ };
52
+ }[];
53
+ removedEntities: IPrefabModifyTarget[];
54
+ removedComponents: IPrefabModifyTarget[];
55
+ }
56
+ export interface IPrefabModifyTarget {
57
+ entityId?: string;
58
+ componentId?: string;
59
+ }
60
+ export interface IStrippedEntity extends IBasicEntity {
61
+ strippedId: string;
62
+ prefabInstanceId: string;
63
+ prefabSource: {
64
+ assetId: string;
65
+ entityId: string;
66
+ };
44
67
  }
45
68
  export type IComponent = {
46
69
  id: string;
@@ -64,3 +87,6 @@ export type IAssetRef = {
64
87
  export type IEntityRef = {
65
88
  entityId: string;
66
89
  };
90
+ export type IShaderRef = {
91
+ refId: string;
92
+ };
@@ -1,5 +1,5 @@
1
1
  import { BlendFactor, BlendOperation, ColorWriteMask, CompareFunction, CullMode, RenderQueueType, StencilOperation } from "@galacean/engine-core";
2
- import type { IAssetRef, IColor, IVector2, IVector3 } from "./BasicSchema";
2
+ import type { IAssetRef, IColor, IShaderRef, IVector2, IVector3 } from "./BasicSchema";
3
3
  export interface IRenderState {
4
4
  /** Blend state. */
5
5
  blendState: {
@@ -88,4 +88,5 @@ export interface IMaterialSchema {
88
88
  value?: string;
89
89
  }>;
90
90
  renderState: IRenderState;
91
+ shaderRef: IShaderRef;
91
92
  }
@@ -1,4 +1,4 @@
1
- import { BackgroundMode, DiffuseMode, ShadowCascadesMode, ShadowResolution } from "@galacean/engine-core";
1
+ import { BackgroundMode, DiffuseMode, FogMode, ShadowCascadesMode, ShadowResolution } from "@galacean/engine-core";
2
2
  import type { IReferable } from "@galacean/engine-core/types/asset/IReferable";
3
3
  import type { IColor, IPrefabFile, IVector3 } from "./BasicSchema";
4
4
  export declare enum SpecularMode {
@@ -32,6 +32,14 @@ export interface IScene extends IPrefabFile {
32
32
  shadowCascades: ShadowCascadesMode;
33
33
  shadowTwoCascadeSplits: number;
34
34
  shadowFourCascadeSplits: IVector3;
35
+ shadowFadeBorder: number;
36
+ };
37
+ fog?: {
38
+ fogMode: FogMode;
39
+ fogStart: number;
40
+ fogEnd: number;
41
+ fogDensity: number;
42
+ fogColor: IColor;
35
43
  };
36
44
  };
37
45
  files: Array<{