@galacean/engine-core 1.3.0-alpha.2 → 1.3.0-beta.10

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 (35) hide show
  1. package/dist/main.js +4210 -3999
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +4210 -3999
  4. package/dist/module.js +4208 -4001
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/assembler/IAssembler.d.ts +1 -0
  8. package/types/2d/data/VertexData2D.d.ts +1 -0
  9. package/types/2d/text/CharRenderData.d.ts +1 -0
  10. package/types/2d/text/CharRenderDataPool.d.ts +1 -0
  11. package/types/Entity.d.ts +4 -1
  12. package/types/RenderPipeline/Basic2DBatcher.d.ts +19 -0
  13. package/types/RenderPipeline/ClassPool.d.ts +19 -0
  14. package/types/RenderPipeline/IPoolElement.d.ts +3 -0
  15. package/types/RenderPipeline/RenderData.d.ts +14 -0
  16. package/types/RenderPipeline/SpriteBatcher.d.ts +1 -0
  17. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +11 -0
  18. package/types/RenderPipeline/SpriteMaskManager.d.ts +1 -0
  19. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +12 -0
  20. package/types/RenderPipeline/SpriteRenderData.d.ts +14 -0
  21. package/types/RenderPipeline/TextRenderData.d.ts +8 -0
  22. package/types/Renderer.d.ts +6 -1
  23. package/types/animation/Animator.d.ts +15 -2
  24. package/types/animation/AnimatorCondition.d.ts +2 -2
  25. package/types/animation/AnimatorController.d.ts +17 -17
  26. package/types/animation/AnimatorControllerParameter.d.ts +9 -5
  27. package/types/animation/AnimatorStateTransition.d.ts +2 -2
  28. package/types/animation/AnimatorTransition.d.ts +14 -0
  29. package/types/animation/index.d.ts +3 -0
  30. package/types/asset/ResourceManager.d.ts +3 -1
  31. package/types/lighting/Light.d.ts +4 -2
  32. package/types/mesh/SkinnedMeshRenderer.d.ts +1 -1
  33. package/types/particle/ParticleRenderer.d.ts +1 -1
  34. package/types/utils/SafeLoopArray.d.ts +5 -0
  35. package/types/utils/index.d.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "1.3.0-alpha.2",
3
+ "version": "1.3.0-beta.10",
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-math": "1.3.0-alpha.2"
18
+ "@galacean/engine-math": "1.3.0-beta.10"
19
19
  },
20
20
  "devDependencies": {
21
- "@galacean/engine-design": "1.3.0-alpha.2"
21
+ "@galacean/engine-design": "1.3.0-beta.10"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/types/Entity.d.ts CHANGED
@@ -58,9 +58,10 @@ export declare class Entity extends EngineObject {
58
58
  /**
59
59
  * Add component based on the component type.
60
60
  * @param type - The type of the component
61
+ * @param args - The arguments of the component
61
62
  * @returns The component which has been added
62
63
  */
63
- addComponent<T extends Component>(type: new (entity: Entity) => T): T;
64
+ addComponent<T extends new (entity: Entity, ...args: any[]) => Component>(type: T, ...args: ComponentArguments<T>): InstanceType<T>;
64
65
  /**
65
66
  * Get component which match the type.
66
67
  * @param type - The type of the component
@@ -152,3 +153,5 @@ export declare class Entity extends EngineObject {
152
153
  */
153
154
  getInvModelMatrix(): Matrix;
154
155
  }
156
+ type ComponentArguments<T extends new (entity: Entity, ...args: any[]) => Component> = T extends new (entity: Entity, ...args: infer P) => Component ? P : never;
157
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Camera } from "../Camera";
2
+ import { Engine } from "../Engine";
3
+ import { ShaderTagKey } from "../shader/ShaderTagKey";
4
+ import { RenderElement } from "./RenderElement";
5
+ export declare abstract class Basic2DBatcher {
6
+ protected static _disableBatchTag: ShaderTagKey;
7
+ /** The maximum number of vertex. */
8
+ static MAX_VERTEX_COUNT: number;
9
+ static _canUploadSameBuffer: boolean;
10
+ constructor(engine: Engine);
11
+ drawElement(element: RenderElement, camera: Camera): void;
12
+ flush(camera: Camera): void;
13
+ clear(): void;
14
+ destroy(): void;
15
+ private _drawSubElement;
16
+ private _createMesh;
17
+ private _updateData;
18
+ private _getSubMeshFromPool;
19
+ }
@@ -0,0 +1,19 @@
1
+ import { IPoolElement } from "./IPoolElement";
2
+ /**
3
+ * Class pool utils.
4
+ */
5
+ export declare class ClassPool<T extends IPoolElement> {
6
+ private _elementPoolIndex;
7
+ private _elementPool;
8
+ private _type;
9
+ constructor(type: new () => T);
10
+ /**
11
+ * Get element from pool.
12
+ */
13
+ getFromPool(): T;
14
+ /**
15
+ * Reset pool.
16
+ */
17
+ resetPool(): void;
18
+ garbageCollection(): void;
19
+ }
@@ -0,0 +1,3 @@
1
+ export interface IPoolElement {
2
+ dispose?(): void;
3
+ }
@@ -0,0 +1,14 @@
1
+ import { SubMesh } from "../graphic";
2
+ import { Primitive } from "../graphic/Primitive";
3
+ import { Material } from "../material";
4
+ import { Renderer } from "../Renderer";
5
+ import { IPoolElement } from "./IPoolElement";
6
+ export declare class RenderData implements IPoolElement {
7
+ component: Renderer;
8
+ material: Material;
9
+ primitive: Primitive;
10
+ subPrimitive: SubMesh;
11
+ multiRenderData: boolean;
12
+ setX(component: Renderer, material: Material, primitive: Primitive, subPrimitive: SubMesh): void;
13
+ dispose(): void;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Camera } from "../Camera";
2
+ import { VertexElement } from "../graphic/VertexElement";
3
+ import { Basic2DBatcher } from "./Basic2DBatcher";
4
+ import { RenderElement } from "./RenderElement";
5
+ import { SpriteMaskRenderData } from "./SpriteMaskRenderData";
6
+ export declare class SpriteMaskBatcher extends Basic2DBatcher {
7
+ createVertexElements(vertexElements: VertexElement[]): number;
8
+ canBatch(preElement: RenderElement, curElement: RenderElement): boolean;
9
+ updateVertices(element: SpriteMaskRenderData, vertices: Float32Array, vertexIndex: number): number;
10
+ drawBatches(camera: Camera): void;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import { VertexData2D } from "../2d/data/VertexData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { IPoolElement } from "./IPoolElement";
5
+ import { RenderData } from "./RenderData";
6
+ export declare class SpriteMaskRenderData extends RenderData implements IPoolElement {
7
+ isAdd: boolean;
8
+ verticesData: VertexData2D;
9
+ constructor();
10
+ set(component: Renderer, material: Material, verticesData: VertexData2D): void;
11
+ dispose(): void;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { VertexData2D } from "../2d/data/VertexData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { Texture2D } from "../texture";
5
+ import { IPoolElement } from "./IPoolElement";
6
+ import { RenderData } from "./RenderData";
7
+ export declare class SpriteRenderData extends RenderData implements IPoolElement {
8
+ verticesData: VertexData2D;
9
+ texture: Texture2D;
10
+ dataIndex: number;
11
+ constructor();
12
+ set(component: Renderer, material: Material, verticesData: VertexData2D, texture: Texture2D, dataIndex?: number): void;
13
+ dispose(): void;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
2
+ import { RenderData } from "./RenderData";
3
+ import { SpriteRenderData } from "./SpriteRenderData";
4
+ export declare class TextRenderData extends RenderData implements IPoolElement {
5
+ charsData: SpriteRenderData[];
6
+ constructor();
7
+ dispose(): void;
8
+ }
@@ -1,6 +1,7 @@
1
1
  import { BoundingBox, Matrix, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
3
  import { RenderContext } from "./RenderPipeline/RenderContext";
4
+ import { Transform } from "./Transform";
4
5
  import { IComponentCustomClone } from "./clone/ComponentCloner";
5
6
  import { Material } from "./material";
6
7
  import { ShaderData } from "./shader/ShaderData";
@@ -23,6 +24,7 @@ export declare class Renderer extends Component implements IComponentCustomClone
23
24
  protected _materials: Material[];
24
25
  protected _dirtyUpdateFlag: number;
25
26
  protected _rendererLayer: Vector4;
27
+ protected _transform: Transform;
26
28
  private _shaderData;
27
29
  private _mvMatrix;
28
30
  private _mvpMatrix;
@@ -111,7 +113,10 @@ export declare class Renderer extends Component implements IComponentCustomClone
111
113
  */
112
114
  setMaterials(materials: Material[]): void;
113
115
  update(deltaTime: number): void;
114
- protected _updateRendererShaderData(context: RenderContext): void;
116
+ /**
117
+ * Update once per frame per renderer, not influenced by batched.
118
+ */
119
+ protected _update(context: RenderContext): void;
115
120
  protected _updateWorldViewRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
116
121
  protected _updateProjectionRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
117
122
  private _setMaterial;
@@ -2,7 +2,7 @@ import { BoolUpdateFlag } from "../BoolUpdateFlag";
2
2
  import { Component } from "../Component";
3
3
  import { AnimatorController } from "./AnimatorController";
4
4
  import { AnimatorControllerLayer } from "./AnimatorControllerLayer";
5
- import { AnimatorControllerParameter } from "./AnimatorControllerParameter";
5
+ import { AnimatorControllerParameter, AnimatorControllerParameterValue } from "./AnimatorControllerParameter";
6
6
  import { AnimatorState } from "./AnimatorState";
7
7
  import { AnimatorCullingMode } from "./enums/AnimatorCullingMode";
8
8
  /**
@@ -19,6 +19,7 @@ export declare class Animator extends Component {
19
19
  private _animatorLayersData;
20
20
  private _curveOwnerPool;
21
21
  private _animationEventHandlerPool;
22
+ private _parametersValueMap;
22
23
  private _tempAnimatorStateInfo;
23
24
  private _controlledRenderers;
24
25
  /**
@@ -75,6 +76,18 @@ export declare class Animator extends Component {
75
76
  * @param name - The name of the parameter
76
77
  */
77
78
  getParameter(name: string): AnimatorControllerParameter;
79
+ /**
80
+ * Get the value of the given parameter.
81
+ * @param name - The name of the parameter
82
+ * @param value - The value of the parameter
83
+ */
84
+ getParameterValue(name: string): AnimatorControllerParameterValue;
85
+ /**
86
+ * Set the value of the given parameter.
87
+ * @param name - The name of the parameter
88
+ * @param value - The value of the parameter
89
+ */
90
+ setParameterValue(name: string, value: AnimatorControllerParameterValue): void;
78
91
  private _getAnimatorStateInfo;
79
92
  private _getAnimatorStateData;
80
93
  private _saveAnimatorStateData;
@@ -87,7 +100,6 @@ export declare class Animator extends Component {
87
100
  private _prepareSrcCrossData;
88
101
  private _prepareDestCrossData;
89
102
  private _getAnimatorLayerData;
90
- private _updateLayer;
91
103
  private _updateState;
92
104
  private _updatePlayingState;
93
105
  private _evaluatePlayingState;
@@ -115,4 +127,5 @@ export declare class Animator extends Component {
115
127
  private _callAnimatorScriptOnExit;
116
128
  private _checkAnyAndEntryState;
117
129
  private _checkRevertOwner;
130
+ private _fireAnimationEventsAndCallScripts;
118
131
  }
@@ -1,4 +1,4 @@
1
- import { AnimatorControllerParameterValueType } from "./AnimatorControllerParameter";
1
+ import { AnimatorControllerParameterValue } from "./AnimatorControllerParameter";
2
2
  import { AnimatorConditionMode } from "./enums/AnimatorConditionMode";
3
3
  /**
4
4
  * Condition that is used to determine if a transition must be taken.
@@ -9,5 +9,5 @@ export declare class AnimatorCondition {
9
9
  /** The name of the parameter used in the condition. */
10
10
  parameterName: string;
11
11
  /** The AnimatorParameter's threshold value for the condition to be true. */
12
- threshold?: AnimatorControllerParameterValueType;
12
+ threshold?: AnimatorControllerParameterValue;
13
13
  }
@@ -1,9 +1,11 @@
1
- import { AnimatorControllerParameter, AnimatorControllerParameterValueType } from "./AnimatorControllerParameter";
1
+ import { AnimatorControllerParameter, AnimatorControllerParameterValue } from "./AnimatorControllerParameter";
2
2
  import { AnimatorControllerLayer } from "./AnimatorControllerLayer";
3
+ import { ReferResource } from "../asset/ReferResource";
4
+ import { Engine } from "../Engine";
3
5
  /**
4
6
  * Store the data for Animator playback.
5
7
  */
6
- export declare class AnimatorController {
8
+ export declare class AnimatorController extends ReferResource {
7
9
  private _updateFlagManager;
8
10
  /**
9
11
  * The layers in the controller.
@@ -14,32 +16,30 @@ export declare class AnimatorController {
14
16
  */
15
17
  get parameters(): Readonly<AnimatorControllerParameter[]>;
16
18
  /**
17
- * Add a parameter to the controller.
18
- * @param name - The name of the parameter
19
- * @param value - The value of the parameter
19
+ * Create an AnimatorController.
20
+ * @param engine - Engine to which the animatorController belongs
21
+ */
22
+ constructor(engine: Engine);
23
+ /**
24
+ * @deprecated
20
25
  */
21
- addParameter(name: string, value?: AnimatorControllerParameterValueType): AnimatorControllerParameter;
26
+ constructor();
22
27
  /**
23
28
  * Add a parameter to the controller.
24
- * @param parameter - The parameter
29
+ * @param name - The name of the parameter
30
+ * @param defaultValue - The default value of the parameter
25
31
  */
26
- addParameter(parameter: AnimatorControllerParameter): AnimatorControllerParameter;
32
+ addParameter(name: string, defaultValue?: AnimatorControllerParameterValue): AnimatorControllerParameter;
27
33
  /**
28
- * Remove a parameter from the controller.
29
- * @param parameter - The parameter
34
+ * Remove a parameter from the controller by name.
35
+ * @param name - The parameter name
30
36
  */
31
- removeParameter(parameter: AnimatorControllerParameter): void;
37
+ removeParameter(name: string): void;
32
38
  /**
33
39
  * Get the parameter by name.
34
40
  * @param name - The name of the parameter
35
41
  */
36
42
  getParameter(name: string): AnimatorControllerParameter;
37
- /**
38
- * Set the value of the given parameter.
39
- * @param name - The name of the parameter
40
- * @param value - The value of the parameter
41
- */
42
- setParameterValue(name: string, value: AnimatorControllerParameterValueType): void;
43
43
  /**
44
44
  * Get the layer by name.
45
45
  * @param name - The layer's name.
@@ -1,10 +1,14 @@
1
- export type AnimatorControllerParameterValueType = number | string | boolean;
1
+ export type AnimatorControllerParameterValue = number | string | boolean;
2
2
  /**
3
3
  * Used to communicate between scripting and the controller, parameters can be set in scripting and used by the controller.
4
4
  */
5
5
  export declare class AnimatorControllerParameter {
6
- /** The name of the parameter. */
7
- name: string;
8
- /** The value of the parameter. */
9
- value: AnimatorControllerParameterValueType;
6
+ /** The default value of the parameter. */
7
+ defaultValue: AnimatorControllerParameterValue;
8
+ private _name;
9
+ /**
10
+ * The name of the parameter.
11
+ */
12
+ get name(): string;
13
+ set name(name: string);
10
14
  }
@@ -1,4 +1,4 @@
1
- import { AnimatorControllerParameterValueType } from "./AnimatorControllerParameter";
1
+ import { AnimatorControllerParameterValue } from "./AnimatorControllerParameter";
2
2
  import { AnimatorConditionMode } from "./enums/AnimatorConditionMode";
3
3
  import { AnimatorCondition } from "./AnimatorCondition";
4
4
  import { AnimatorState } from "./AnimatorState";
@@ -37,7 +37,7 @@ export declare class AnimatorStateTransition {
37
37
  * @param parameterName - The name of the parameter
38
38
  * @param threshold - The threshold value of the condition
39
39
  */
40
- addCondition(mode: AnimatorConditionMode, parameterName: string, threshold?: AnimatorControllerParameterValueType): AnimatorCondition;
40
+ addCondition(mode: AnimatorConditionMode, parameterName: string, threshold?: AnimatorControllerParameterValue): AnimatorCondition;
41
41
  /**
42
42
  * Add a condition to a transition.
43
43
  * @param animatorCondition - The condition to add
@@ -0,0 +1,14 @@
1
+ import { AnimatorState } from "./AnimatorState";
2
+ /**
3
+ * Transitions define when and how the state machine switch from on state to another. AnimatorTransition always originate from a StateMachine or a StateMachine entry.
4
+ */
5
+ export declare class AnimatorStateTransition {
6
+ /** The duration of the transition. This is represented in normalized time. */
7
+ duration: number;
8
+ /** The time at which the destination state will start. This is represented in normalized time. */
9
+ offset: number;
10
+ /** ExitTime represents the exact time at which the transition can take effect. This is represented in normalized time. */
11
+ exitTime: number;
12
+ /** The destination state of the transition. */
13
+ destinationState: AnimatorState;
14
+ }
@@ -20,3 +20,6 @@ export { WrapMode } from "./enums/WrapMode";
20
20
  export * from "./Keyframe";
21
21
  export * from "./AnimatorLayerMask";
22
22
  export { StateMachineScript } from "./StateMachineScript";
23
+ export { AnimatorCondition } from "./AnimatorCondition";
24
+ export * from "./AnimatorControllerParameter";
25
+ export { LayerPathMask } from "./LayerPathMask";
@@ -102,11 +102,13 @@ export declare class ResourceManager {
102
102
  addContentRestorer<T extends EngineObject>(restorer: ContentRestorer<T>): void;
103
103
  private _assignDefaultOptions;
104
104
  private _loadSingleItem;
105
- private _pushSubAssetPromiseCallback;
105
+ private _loadMainAsset;
106
+ private _createSubAssetPromiseCallback;
106
107
  private _gc;
107
108
  private _getResolveResource;
108
109
  private _parseURL;
109
110
  private _parseQueryPath;
111
+ private _releaseSubAssetPromiseCallback;
110
112
  }
111
113
  /**
112
114
  * Declare ResourceLoader's decorator.
@@ -21,11 +21,13 @@ export declare abstract class Light extends Component {
21
21
  shadowNormalBias: number;
22
22
  /** Near plane value to use for shadow frustums. */
23
23
  shadowNearPlane: number;
24
- /** Shadow intensity, the larger the value, the clearer and darker the shadow. */
25
- shadowStrength: number;
24
+ private _shadowStrength;
26
25
  private _color;
27
26
  private _viewMat;
28
27
  private _inverseViewMat;
28
+ /** Shadow intensity, the larger the value, the clearer and darker the shadow, range [0,1]. */
29
+ get shadowStrength(): number;
30
+ set shadowStrength(value: number);
29
31
  /**
30
32
  * Light Color.
31
33
  */
@@ -32,7 +32,7 @@ export declare class SkinnedMeshRenderer extends MeshRenderer {
32
32
  */
33
33
  get localBounds(): BoundingBox;
34
34
  set localBounds(value: BoundingBox);
35
- protected _updateRendererShaderData(context: RenderContext): void;
35
+ protected _update(context: RenderContext): void;
36
36
  private _checkBlendShapeWeightLength;
37
37
  private _onLocalBoundsChanged;
38
38
  private _onSkinUpdated;
@@ -41,7 +41,7 @@ export declare class ParticleRenderer extends Renderer {
41
41
  get mesh(): ModelMesh;
42
42
  set mesh(value: ModelMesh);
43
43
  protected _updateBounds(worldBounds: BoundingBox): void;
44
- protected _updateRendererShaderData(context: RenderContext): void;
44
+ protected _update(context: RenderContext): void;
45
45
  protected _render(context: RenderContext): void;
46
46
  protected _onDestroy(): void;
47
47
  }
@@ -22,6 +22,11 @@ export declare class SafeLoopArray<T> {
22
22
  * @param index - The index of the array
23
23
  */
24
24
  removeByIndex(index: number): void;
25
+ /**
26
+ * Remove item from array that pass the specified comparison function.
27
+ * @param filter - The comparison function
28
+ */
29
+ findAndRemove(filter: (value: T) => boolean): void;
25
30
  /**
26
31
  * The index of the item.
27
32
  * @param item - The item which want to get the index
@@ -1,3 +1,4 @@
1
1
  export { ClearableObjectPool } from "./ClearableObjectPool";
2
2
  export type { IPoolElement } from "./ObjectPool";
3
3
  export { ReturnableObjectPool } from "./ReturnableObjectPool";
4
+ export { SafeLoopArray } from "./SafeLoopArray";