@galacean/engine-core 1.0.0 → 1.1.0-alpha.0

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 (118) hide show
  1. package/dist/main.js +14441 -12563
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +14441 -12563
  4. package/dist/module.js +14426 -12558
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/assembler/TiledSpriteAssembler.d.ts +1 -0
  8. package/types/2d/atlas/SpriteAtlas.d.ts +2 -6
  9. package/types/2d/data/VertexData2D.d.ts +1 -0
  10. package/types/2d/enums/SpriteDrawMode.d.ts +4 -2
  11. package/types/2d/enums/SpriteTileMode.d.ts +11 -0
  12. package/types/2d/index.d.ts +1 -0
  13. package/types/2d/sprite/Sprite.d.ts +14 -8
  14. package/types/2d/sprite/SpriteMask.d.ts +16 -22
  15. package/types/2d/sprite/SpriteRenderer.d.ts +31 -17
  16. package/types/2d/text/Font.d.ts +2 -7
  17. package/types/2d/text/TextRenderer.d.ts +1 -13
  18. package/types/2d/text/index.d.ts +1 -0
  19. package/types/Camera.d.ts +35 -12
  20. package/types/Component.d.ts +1 -8
  21. package/types/ComponentsDependencies.d.ts +17 -9
  22. package/types/Engine.d.ts +39 -46
  23. package/types/Entity.d.ts +1 -1
  24. package/types/RenderPipeline/Basic2DBatcher.d.ts +6 -7
  25. package/types/RenderPipeline/BasicRenderPipeline.d.ts +8 -6
  26. package/types/RenderPipeline/MeshRenderData.d.ts +15 -0
  27. package/types/RenderPipeline/RenderData.d.ts +7 -0
  28. package/types/RenderPipeline/RenderElement.d.ts +5 -7
  29. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  30. package/types/RenderPipeline/RenderQueue.d.ts +3 -5
  31. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +4 -3
  32. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +10 -0
  33. package/types/RenderPipeline/SpriteRenderData.d.ts +12 -0
  34. package/types/RenderPipeline/TextRenderData.d.ts +6 -0
  35. package/types/RenderPipeline/enums/PipelineStage.d.ts +9 -0
  36. package/types/RenderPipeline/index.d.ts +4 -0
  37. package/types/Renderer.d.ts +5 -13
  38. package/types/SafeLoopArray.d.ts +37 -0
  39. package/types/Scene.d.ts +6 -5
  40. package/types/SceneManager.d.ts +28 -5
  41. package/types/Script.d.ts +18 -15
  42. package/types/Transform.d.ts +9 -12
  43. package/types/Utils.d.ts +28 -0
  44. package/types/animation/AnimationClip.d.ts +2 -1
  45. package/types/animation/Animator.d.ts +2 -3
  46. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +0 -1
  47. package/types/animation/internal/AnimationCurveLayerOwner.d.ts +1 -0
  48. package/types/animation/internal/AnimationCurveOwnerLayerData.d.ts +1 -0
  49. package/types/asset/AssetType.d.ts +16 -16
  50. package/types/asset/ContentRestorer.d.ts +17 -0
  51. package/types/asset/GraphicsResource.d.ts +5 -0
  52. package/types/asset/IReferable.d.ts +2 -0
  53. package/types/asset/ReferResource.d.ts +22 -0
  54. package/types/asset/ResourceManager.d.ts +17 -9
  55. package/types/base/Constant.d.ts +2 -1
  56. package/types/base/EngineObject.d.ts +1 -0
  57. package/types/base/EventDispatcher.d.ts +1 -14
  58. package/types/base/Time.d.ts +27 -24
  59. package/types/base/index.d.ts +0 -2
  60. package/types/enums/ActiveChangeFlag.d.ts +6 -0
  61. package/types/env-probe/CubeProbe.d.ts +0 -7
  62. package/types/env-probe/Probe.d.ts +0 -6
  63. package/types/graphic/Buffer.d.ts +5 -12
  64. package/types/graphic/Mesh.d.ts +5 -16
  65. package/types/index.d.ts +8 -7
  66. package/types/input/InputManager.d.ts +3 -3
  67. package/types/input/interface/IInput.d.ts +1 -1
  68. package/types/lighting/DirectLight.d.ts +0 -1
  69. package/types/lighting/Light.d.ts +0 -1
  70. package/types/lighting/SpotLight.d.ts +0 -1
  71. package/types/material/BaseMaterial.d.ts +8 -10
  72. package/types/material/BlinnPhongMaterial.d.ts +0 -3
  73. package/types/material/Material.d.ts +3 -10
  74. package/types/material/PBRMaterial.d.ts +12 -3
  75. package/types/material/PBRSpecularMaterial.d.ts +1 -1
  76. package/types/material/UnlitMaterial.d.ts +1 -1
  77. package/types/mesh/BlendShape.d.ts +1 -1
  78. package/types/mesh/BlendShapeFrame.d.ts +28 -6
  79. package/types/mesh/MeshRenderer.d.ts +7 -12
  80. package/types/mesh/ModelMesh.d.ts +5 -5
  81. package/types/mesh/PrimitiveMesh.d.ts +4 -2
  82. package/types/mesh/PrimitiveMeshRestorer.d.ts +1 -0
  83. package/types/mesh/SkinnedMeshRenderer.d.ts +0 -14
  84. package/types/particle/ParticleRenderer.d.ts +2 -2
  85. package/types/physics/CharacterController.d.ts +0 -2
  86. package/types/physics/Collider.d.ts +1 -1
  87. package/types/physics/Collision.d.ts +4 -0
  88. package/types/physics/PhysicsManager.d.ts +1 -20
  89. package/types/physics/PhysicsScene.d.ts +75 -0
  90. package/types/physics/index.d.ts +7 -7
  91. package/types/physics/joint/HingeJoint.d.ts +2 -2
  92. package/types/physics/joint/Joint.d.ts +2 -2
  93. package/types/physics/joint/SpringJoint.d.ts +1 -1
  94. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +8 -0
  95. package/types/renderingHardwareInterface/index.d.ts +1 -0
  96. package/types/shader/Shader.d.ts +32 -23
  97. package/types/shader/ShaderData.d.ts +24 -24
  98. package/types/shader/ShaderMacro.d.ts +16 -0
  99. package/types/shader/ShaderPart.d.ts +41 -0
  100. package/types/shader/ShaderPass.d.ts +9 -2
  101. package/types/shader/ShaderProperty.d.ts +7 -0
  102. package/types/shader/ShaderTagKey.d.ts +16 -0
  103. package/types/shader/SubShader.d.ts +19 -0
  104. package/types/shader/index.d.ts +5 -1
  105. package/types/shader/state/index.d.ts +6 -0
  106. package/types/shadow/CascadedShadowCasterPass.d.ts +1 -1
  107. package/types/sky/SkyBoxMaterial.d.ts +27 -9
  108. package/types/sky/SkyProceduralMaterial.d.ts +72 -0
  109. package/types/sky/index.d.ts +1 -0
  110. package/types/texture/RenderTarget.d.ts +2 -6
  111. package/types/texture/Texture.d.ts +2 -6
  112. package/types/trail/TrailRenderer.d.ts +0 -5
  113. package/types/utils/BoolUpdateFlag.d.ts +12 -0
  114. package/types/utils/DisorderedArray.d.ts +18 -0
  115. package/types/utils/SafeLoopArray.d.ts +41 -0
  116. package/types/utils/UpdateFlag.d.ts +20 -0
  117. package/types/utils/UpdateFlagManager.d.ts +1 -0
  118. package/types/utils/Utils.d.ts +31 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-alpha.0",
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.0.0"
18
+ "@galacean/engine-math": "1.1.0-alpha.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@galacean/engine-design": "1.0.0"
21
+ "@galacean/engine-design": "1.1.0-alpha.0"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
@@ -0,0 +1 @@
1
+ export {};
@@ -1,10 +1,10 @@
1
- import { RefObject } from "../../asset/RefObject";
1
+ import { ReferResource } from "../../asset/ReferResource";
2
2
  import { Engine } from "../../Engine";
3
3
  import { Sprite } from "../sprite/Sprite";
4
4
  /**
5
5
  * Sprite Atlas.
6
6
  */
7
- export declare class SpriteAtlas extends RefObject {
7
+ export declare class SpriteAtlas extends ReferResource {
8
8
  private _sprites;
9
9
  private _spriteNamesToIndex;
10
10
  /**
@@ -29,8 +29,4 @@ export declare class SpriteAtlas extends RefObject {
29
29
  * @param engine - Engine to which the SpriteAtlas belongs
30
30
  */
31
31
  constructor(engine: Engine);
32
- /**
33
- * @override
34
- */
35
- _onDestroy(): void;
36
32
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -4,6 +4,8 @@
4
4
  export declare enum SpriteDrawMode {
5
5
  /** Overall scaling when modifying size. */
6
6
  Simple = 0,
7
- /** When modifying the size, it is transformed according to the 9-slice settings (border). */
8
- Sliced = 1
7
+ /** When modifying the size of the renderer, it scales to fill the range according to the sprite border settings. */
8
+ Sliced = 1,
9
+ /** When modifying the size of the renderer, it will tile to fill the range according to the sprite border settings. */
10
+ Tiled = 2
9
11
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Sprite's tiling mode enumeration.
3
+ * Only works in `SpriteDrawMode.tiled` mode.
4
+ */
5
+ export declare enum SpriteTileMode {
6
+ /** SpriteRenderer will tile continuously. */
7
+ Continuous = 0,
8
+ /** When the fractional part of the tiling multiple is greater than or equal to `SpriteRenderer.tileStretchValue`,
9
+ * a tile will be added,and the number of tiles can only be an integer. */
10
+ Adaptive = 1
11
+ }
@@ -5,5 +5,6 @@ export { OverflowMode } from "./enums/TextOverflow";
5
5
  export { FontStyle } from "./enums/FontStyle";
6
6
  export { SpriteAtlas } from "./atlas/SpriteAtlas";
7
7
  export { SpriteDrawMode } from "./enums/SpriteDrawMode";
8
+ export { SpriteTileMode } from "./enums/SpriteTileMode";
8
9
  export * from "./sprite/index";
9
10
  export * from "./text/index";
@@ -1,15 +1,17 @@
1
1
  import { Rect, Vector2, Vector4 } from "@galacean/engine-math";
2
- import { RefObject } from "../../asset/RefObject";
3
2
  import { Engine } from "../../Engine";
3
+ import { ReferResource } from "../../asset/ReferResource";
4
4
  import { Texture2D } from "../../texture/Texture2D";
5
5
  /**
6
6
  * 2D sprite.
7
7
  */
8
- export declare class Sprite extends RefObject {
8
+ export declare class Sprite extends ReferResource {
9
9
  /** The name of sprite. */
10
10
  name: string;
11
- private _width;
12
- private _height;
11
+ private _automaticWidth;
12
+ private _automaticHeight;
13
+ private _customWidth;
14
+ private _customHeight;
13
15
  private _positions;
14
16
  private _uvs;
15
17
  private _bounds;
@@ -28,11 +30,19 @@ export declare class Sprite extends RefObject {
28
30
  set texture(value: Texture2D);
29
31
  /**
30
32
  * The width of the sprite (in world coordinates).
33
+ *
34
+ * @remarks
35
+ * If width is set, return the set value,
36
+ * otherwise return the width calculated according to `Texture.width`, `Sprite.region`, `Sprite.atlasRegion`, `Sprite.atlasRegionOffset` and `Engine._pixelsPerUnit`.
31
37
  */
32
38
  get width(): number;
33
39
  set width(value: number);
34
40
  /**
35
41
  * The height of the sprite (in world coordinates).
42
+ *
43
+ * @remarks
44
+ * If height is set, return the set value,
45
+ * otherwise return the height calculated according to `Texture.height`, `Sprite.region`, `Sprite.atlasRegion`, `Sprite.atlasRegionOffset` and `Engine._pixelsPerUnit`.
36
46
  */
37
47
  get height(): number;
38
48
  set height(value: number);
@@ -86,10 +96,6 @@ export declare class Sprite extends RefObject {
86
96
  * @returns Cloned sprite
87
97
  */
88
98
  clone(): Sprite;
89
- /**
90
- * @override
91
- */
92
- _onDestroy(): void;
93
99
  private _calDefaultSize;
94
100
  private _updatePositions;
95
101
  private _updateUVs;
@@ -1,27 +1,34 @@
1
- import { BoundingBox } from "@galacean/engine-math";
2
- import { ICustomClone } from "../../clone/ComponentCloner";
3
1
  import { Renderer } from "../../Renderer";
4
- import { RenderContext } from "../../RenderPipeline/RenderContext";
5
2
  import { Sprite } from "./Sprite";
6
3
  /**
7
4
  * A component for masking Sprites.
8
5
  */
9
- export declare class SpriteMask extends Renderer implements ICustomClone {
6
+ export declare class SpriteMask extends Renderer {
10
7
  /** The mask layers the sprite mask influence to. */
11
8
  influenceLayers: number;
12
9
  private _sprite;
13
- private _width;
14
- private _height;
10
+ private _automaticWidth;
11
+ private _automaticHeight;
12
+ private _customWidth;
13
+ private _customHeight;
15
14
  private _flipX;
16
15
  private _flipY;
17
16
  private _alphaCutoff;
18
17
  /**
19
- * Render width.
18
+ * Render width (in world coordinates).
19
+ *
20
+ * @remarks
21
+ * If width is set, return the set value,
22
+ * otherwise return `SpriteMask.sprite.width`.
20
23
  */
21
24
  get width(): number;
22
25
  set width(value: number);
23
26
  /**
24
- * Render height.
27
+ * Render height (in world coordinates).
28
+ *
29
+ * @remarks
30
+ * If height is set, return the set value,
31
+ * otherwise return `SpriteMask.sprite.height`.
25
32
  */
26
33
  get height(): number;
27
34
  set height(value: number);
@@ -45,19 +52,6 @@ export declare class SpriteMask extends Renderer implements ICustomClone {
45
52
  */
46
53
  get alphaCutoff(): number;
47
54
  set alphaCutoff(value: number);
48
- /**
49
- * @override
50
- * @inheritdoc
51
- */
52
- _onDestroy(): void;
53
- /**
54
- * @override
55
- */
56
- protected _updateBounds(worldBounds: BoundingBox): void;
57
- /**
58
- * @override
59
- * @inheritdoc
60
- */
61
- protected _render(context: RenderContext): void;
55
+ private _calDefaultSize;
62
56
  private _onSpriteChange;
63
57
  }
@@ -1,20 +1,23 @@
1
- import { BoundingBox, Color } from "@galacean/engine-math";
2
- import { ICustomClone } from "../../clone/ComponentCloner";
1
+ import { Color } from "@galacean/engine-math";
3
2
  import { Renderer } from "../../Renderer";
4
- import { RenderContext } from "../../RenderPipeline/RenderContext";
5
3
  import { SpriteDrawMode } from "../enums/SpriteDrawMode";
6
4
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
5
+ import { SpriteTileMode } from "../enums/SpriteTileMode";
7
6
  import { Sprite } from "./Sprite";
8
7
  /**
9
8
  * Renders a Sprite for 2D graphics.
10
9
  */
11
- export declare class SpriteRenderer extends Renderer implements ICustomClone {
10
+ export declare class SpriteRenderer extends Renderer {
12
11
  private _drawMode;
13
12
  private _assembler;
13
+ private _tileMode;
14
+ private _tiledAdaptiveThreshold;
14
15
  private _color;
15
16
  private _sprite;
16
- private _width;
17
- private _height;
17
+ private _automaticWidth;
18
+ private _automaticHeight;
19
+ private _customWidth;
20
+ private _customHeight;
18
21
  private _flipX;
19
22
  private _flipY;
20
23
  private _maskLayer;
@@ -23,7 +26,17 @@ export declare class SpriteRenderer extends Renderer implements ICustomClone {
23
26
  * The draw mode of the sprite renderer.
24
27
  */
25
28
  get drawMode(): SpriteDrawMode;
26
- set drawMode(drawMode: SpriteDrawMode);
29
+ set drawMode(value: SpriteDrawMode);
30
+ /**
31
+ * The tiling mode of the sprite renderer. (Only works in tiled mode.)
32
+ */
33
+ get tileMode(): SpriteTileMode;
34
+ set tileMode(value: SpriteTileMode);
35
+ /**
36
+ * Stretch Threshold in Tile Adaptive Mode, specified in normalized. (Only works in tiled adaptive mode.)
37
+ */
38
+ get tiledAdaptiveThreshold(): number;
39
+ set tiledAdaptiveThreshold(value: number);
27
40
  /**
28
41
  * The Sprite to render.
29
42
  */
@@ -35,12 +48,20 @@ export declare class SpriteRenderer extends Renderer implements ICustomClone {
35
48
  get color(): Color;
36
49
  set color(value: Color);
37
50
  /**
38
- * Render width.
51
+ * Render width (in world coordinates).
52
+ *
53
+ * @remarks
54
+ * If width is set, return the set value,
55
+ * otherwise return `SpriteRenderer.sprite.width`.
39
56
  */
40
57
  get width(): number;
41
58
  set width(value: number);
42
59
  /**
43
- * Render height.
60
+ * Render height (in world coordinates).
61
+ *
62
+ * @remarks
63
+ * If height is set, return the set value,
64
+ * otherwise return `SpriteRenderer.sprite.height`.
44
65
  */
45
66
  get height(): number;
46
67
  set height(value: number);
@@ -64,14 +85,7 @@ export declare class SpriteRenderer extends Renderer implements ICustomClone {
64
85
  */
65
86
  get maskInteraction(): SpriteMaskInteraction;
66
87
  set maskInteraction(value: SpriteMaskInteraction);
67
- /**
68
- * @override
69
- */
70
- protected _updateBounds(worldBounds: BoundingBox): void;
71
- /**
72
- * @override
73
- */
74
- protected _render(context: RenderContext): void;
88
+ private _calDefaultSize;
75
89
  private _updateStencilState;
76
90
  private _onSpriteChange;
77
91
  }
@@ -1,10 +1,9 @@
1
- import { RefObject } from "../../asset/RefObject";
1
+ import { ReferResource } from "../../asset/ReferResource";
2
2
  import { Engine } from "../../Engine";
3
3
  /**
4
4
  * Font.
5
5
  */
6
- export declare class Font extends RefObject {
7
- private static _fontMap;
6
+ export declare class Font extends ReferResource {
8
7
  /**
9
8
  * Create a system font.
10
9
  * @param engine - Engine to which the font belongs
@@ -19,8 +18,4 @@ export declare class Font extends RefObject {
19
18
  */
20
19
  get name(): string;
21
20
  constructor(engine: Engine, name?: string);
22
- /**
23
- * @override
24
- */
25
- _onDestroy(): void;
26
21
  }
@@ -1,9 +1,6 @@
1
1
  import { BoundingBox, Color } from "@galacean/engine-math";
2
- import { ICustomClone } from "../../clone/ComponentCloner";
3
2
  import { Entity } from "../../Entity";
4
3
  import { Renderer } from "../../Renderer";
5
- import { RenderContext } from "../../RenderPipeline/RenderContext";
6
- import { TransformModifyFlags } from "../../Transform";
7
4
  import { FontStyle } from "../enums/FontStyle";
8
5
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
9
6
  import { TextHorizontalAlignment, TextVerticalAlignment } from "../enums/TextAlignment";
@@ -12,7 +9,7 @@ import { Font } from "./Font";
12
9
  /**
13
10
  * Renders a text for 2D graphics.
14
11
  */
15
- export declare class TextRenderer extends Renderer implements ICustomClone {
12
+ export declare class TextRenderer extends Renderer {
16
13
  private static _charRenderDataPool;
17
14
  private static _tempVec30;
18
15
  private static _tempVec31;
@@ -107,17 +104,8 @@ export declare class TextRenderer extends Renderer implements ICustomClone {
107
104
  */
108
105
  get bounds(): BoundingBox;
109
106
  constructor(entity: Entity);
110
- /**
111
- * @override
112
- */
113
- protected _updateBounds(worldBounds: BoundingBox): void;
114
- /**
115
- * @override
116
- */
117
- protected _render(context: RenderContext): void;
118
107
  private _updateStencilState;
119
108
  private _resetSubFont;
120
109
  private _updatePosition;
121
110
  private _updateLocalData;
122
- protected _onTransformChanged(bit: TransformModifyFlags): void;
123
111
  }
@@ -1,2 +1,3 @@
1
1
  export { Font } from "./Font";
2
2
  export { TextRenderer } from "./TextRenderer";
3
+ export { TextUtils } from "./TextUtils";
package/types/Camera.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  import { Matrix, Ray, Vector2, Vector3, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
- import { CameraClearFlags } from "./enums/CameraClearFlags";
4
3
  import { Layer } from "./Layer";
4
+ import { CameraClearFlags } from "./enums/CameraClearFlags";
5
+ import { Shader } from "./shader/Shader";
5
6
  import { ShaderData } from "./shader/ShaderData";
6
- import { TextureCubeFace } from "./texture/enums/TextureCubeFace";
7
+ import { ShaderTagKey } from "./shader/ShaderTagKey";
7
8
  import { RenderTarget } from "./texture/RenderTarget";
9
+ import { TextureCubeFace } from "./texture/enums/TextureCubeFace";
8
10
  /**
9
11
  * Camera component, as the entrance to the three-dimensional world.
10
- * @decorator `@dependentComponents(Transform)`
12
+ * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
11
13
  */
12
14
  export declare class Camera extends Component {
13
15
  /** Shader data. */
14
16
  readonly shaderData: ShaderData;
15
- /** Rendering priority - A Camera with higher priority will be rendered on top of a camera with lower priority. */
16
- priority: number;
17
17
  /** Whether to enable frustum culling, it is enabled by default. */
18
18
  enableFrustumCulling: boolean;
19
19
  /**
@@ -26,6 +26,7 @@ export declare class Camera extends Component {
26
26
  * @remarks Support bit manipulation, corresponding to `Layer`.
27
27
  */
28
28
  cullingMask: Layer;
29
+ private _priority;
29
30
  private _isProjMatSetting;
30
31
  private _nearClipPlane;
31
32
  private _farClipPlane;
@@ -71,6 +72,11 @@ export declare class Camera extends Component {
71
72
  */
72
73
  get viewport(): Vector4;
73
74
  set viewport(value: Vector4);
75
+ /**
76
+ * Rendering priority, higher priority will be rendered on top of a camera with lower priority.
77
+ */
78
+ get priority(): number;
79
+ set priority(value: number);
74
80
  /**
75
81
  * Whether it is orthogonal, the default is false. True will use orthographic projection, false will use perspective projection.
76
82
  */
@@ -178,20 +184,37 @@ export declare class Camera extends Component {
178
184
  */
179
185
  render(cubeFace?: TextureCubeFace, mipLevel?: number): void;
180
186
  /**
181
- * @override
182
- * @inheritdoc
187
+ * Set the replacement shader.
188
+ * @param shader - Replacement shader
189
+ * @param replacementTagName - Sub shader tag name
190
+ *
191
+ * @remarks
192
+ * If replacementTagName is not specified, the first sub shader will be replaced.
193
+ * If replacementTagName is specified, the replacement shader will find the first sub shader which has the same tag value get by replacementTagKey.
194
+ */
195
+ setReplacementShader(shader: Shader, replacementTagName?: string): any;
196
+ /**
197
+ * Set the replacement shader.
198
+ * @param shader - Replacement shader
199
+ * @param replacementTag - Sub shader tag
200
+ *
201
+ * @remarks
202
+ * If replacementTag is not specified, the first sub shader will be replaced.
203
+ * If replacementTag is specified, the replacement shader will find the first sub shader which has the same tag value get by replacementTagKey.
204
+ */
205
+ setReplacementShader(shader: Shader, replacementTag?: ShaderTagKey): any;
206
+ /**
207
+ * Reset and clear the replacement shader.
183
208
  */
184
- _onEnable(): void;
209
+ resetReplacementShader(): void;
185
210
  /**
186
- * @override
187
211
  * @inheritdoc
188
212
  */
189
- _onDisable(): void;
213
+ _onEnableInScene(): void;
190
214
  /**
191
- * @override
192
215
  * @inheritdoc
193
216
  */
194
- _onDestroy(): void;
217
+ _onDisableInScene(): void;
195
218
  private _projMatChange;
196
219
  private _innerViewportToWorldPoint;
197
220
  private _updateShaderData;
@@ -6,16 +6,13 @@ import { Scene } from "./Scene";
6
6
  */
7
7
  export declare class Component extends EngineObject {
8
8
  private _phasedActive;
9
+ private _phasedActiveInScene;
9
10
  private _enabled;
10
11
  /**
11
12
  * Indicates whether the component is enabled.
12
13
  */
13
14
  get enabled(): boolean;
14
15
  set enabled(value: boolean);
15
- /**
16
- * Indicates whether the component is destroyed.
17
- */
18
- get destroyed(): boolean;
19
16
  /**
20
17
  * The entity which the component belongs to.
21
18
  */
@@ -25,8 +22,4 @@ export declare class Component extends EngineObject {
25
22
  */
26
23
  get scene(): Scene;
27
24
  constructor(entity: Entity);
28
- /**
29
- * Destroy this instance.
30
- */
31
- destroy(): void;
32
25
  }
@@ -2,16 +2,24 @@ import { Component } from "./Component";
2
2
  import { Entity } from "./Entity";
3
3
  type ComponentConstructor = new (entity: Entity) => Component;
4
4
  /**
5
- * Used for component dependency registration.
5
+ * Declare dependent component.
6
+ * @param component - Dependent component
7
+ * @param dependentMode - Dependent mode
6
8
  */
7
- export declare class ComponentsDependencies {
8
- private static _invDependenciesMap;
9
- private static _addDependency;
10
- private constructor();
11
- }
9
+ export declare function dependentComponents(component: ComponentConstructor, dependentMode?: DependentMode): any;
10
+ /**
11
+ * Declare dependent components.
12
+ * @param components - Dependent components
13
+ * @param dependentMode - Dependent mode
14
+ */
15
+ export declare function dependentComponents(components: ComponentConstructor[], dependentMode?: DependentMode): any;
12
16
  /**
13
- * Dependent components, automatically added if they do not exist.
14
- * @param components - Dependent components
17
+ * Dependent mode.
15
18
  */
16
- export declare function dependentComponents(...components: ComponentConstructor[]): <T extends ComponentConstructor>(target: T) => void;
19
+ export declare enum DependentMode {
20
+ /** Check only, throw error if dependent components do not exist. */
21
+ CheckOnly = 0,
22
+ /** Auto add if dependent components do not exist. */
23
+ AutoAdd = 1
24
+ }
17
25
  export {};
package/types/Engine.d.ts CHANGED
@@ -1,44 +1,20 @@
1
- import { Font } from "./2d/text/Font";
2
- import { ResourceManager } from "./asset/ResourceManager";
3
- import { EventDispatcher, Time } from "./base";
1
+ import { IPhysics } from "@galacean/engine-design";
4
2
  import { Canvas } from "./Canvas";
5
- import { ComponentsManager } from "./ComponentsManager";
6
3
  import { EngineSettings } from "./EngineSettings";
7
4
  import { Entity } from "./Entity";
5
+ import { SceneManager } from "./SceneManager";
6
+ import { ResourceManager } from "./asset/ResourceManager";
7
+ import { EventDispatcher, Time } from "./base";
8
+ import { ColorSpace } from "./enums/ColorSpace";
8
9
  import { InputManager } from "./input";
9
- import { LightManager } from "./lighting/LightManager";
10
- import { Material } from "./material/Material";
11
- import { PhysicsManager } from "./physics";
10
+ import { PhysicsScene } from "./physics/PhysicsScene";
12
11
  import { IHardwareRenderer } from "./renderingHardwareInterface";
13
- import { ClassPool } from "./RenderPipeline/ClassPool";
14
- import { MeshRenderElement } from "./RenderPipeline/MeshRenderElement";
15
- import { RenderContext } from "./RenderPipeline/RenderContext";
16
- import { SpriteElement } from "./RenderPipeline/SpriteElement";
17
- import { SpriteMaskElement } from "./RenderPipeline/SpriteMaskElement";
18
- import { TextRenderElement } from "./RenderPipeline/TextRenderElement";
19
- import { Scene } from "./Scene";
20
- import { SceneManager } from "./SceneManager";
21
- import { RenderState } from "./shader/state/RenderState";
22
12
  /**
23
13
  * Engine.
24
14
  */
25
15
  export declare class Engine extends EventDispatcher {
26
- /** Physics manager of Engine. */
27
- readonly physicsManager: PhysicsManager;
16
+ /** Input manager of Engine. */
28
17
  readonly inputManager: InputManager;
29
- _lightManager: LightManager;
30
- _componentsManager: ComponentsManager;
31
- _hardwareRenderer: IHardwareRenderer;
32
- _lastRenderState: RenderState;
33
- _renderElementPool: ClassPool<MeshRenderElement>;
34
- _spriteElementPool: ClassPool<SpriteElement>;
35
- _spriteMaskElementPool: ClassPool<SpriteMaskElement>;
36
- _textElementPool: ClassPool<TextRenderElement>;
37
- _spriteDefaultMaterial: Material;
38
- _spriteMaskDefaultMaterial: Material;
39
- _textDefaultFont: Font;
40
- _renderContext: RenderContext;
41
- protected _canvas: Canvas;
42
18
  private _settings;
43
19
  private _resourceManager;
44
20
  private _sceneManager;
@@ -52,7 +28,8 @@ export declare class Engine extends EventDispatcher {
52
28
  private _targetFrameInterval;
53
29
  private _destroyed;
54
30
  private _frameInProcess;
55
- private _waittingDestroy;
31
+ private _waitingDestroy;
32
+ private _isDeviceLost;
56
33
  private _animate;
57
34
  /**
58
35
  * Settings of Engine.
@@ -63,15 +40,15 @@ export declare class Engine extends EventDispatcher {
63
40
  */
64
41
  get canvas(): Canvas;
65
42
  /**
66
- * Get the resource manager.
43
+ * The resource manager.
67
44
  */
68
45
  get resourceManager(): ResourceManager;
69
46
  /**
70
- * Get the scene manager.
47
+ * The scene manager.
71
48
  */
72
49
  get sceneManager(): SceneManager;
73
50
  /**
74
- * Get the Time class.
51
+ * The time information of the engine.
75
52
  */
76
53
  get time(): Time;
77
54
  /**
@@ -96,13 +73,7 @@ export declare class Engine extends EventDispatcher {
96
73
  * Indicates whether the engine is destroyed.
97
74
  */
98
75
  get destroyed(): boolean;
99
- /**
100
- * Create engine.
101
- * @param canvas - The canvas to use for rendering
102
- * @param hardwareRenderer - Graphics API renderer
103
- * @param settings - Engine Settings
104
- */
105
- constructor(canvas: Canvas, hardwareRenderer: IHardwareRenderer, settings?: EngineSettings);
76
+ protected constructor(canvas: Canvas, hardwareRenderer: IHardwareRenderer, configuration: EngineConfiguration);
106
77
  /**
107
78
  * Create an entity.
108
79
  * @param name - The name of the entity
@@ -125,16 +96,38 @@ export declare class Engine extends EventDispatcher {
125
96
  * Execution engine loop.
126
97
  */
127
98
  run(): void;
99
+ /**
100
+ * Force lose graphic device.
101
+ * @remarks Used to simulate the phenomenon after the real loss of device.
102
+ */
103
+ forceLoseDevice(): void;
104
+ /**
105
+ * Force restore graphic device.
106
+ * @remarks Used to simulate the phenomenon after the real restore of device.
107
+ */
108
+ forceRestoreDevice(): void;
128
109
  private _destroy;
129
110
  /**
130
111
  * Destroy engine.
131
112
  * @remarks If call during frame execution will delay until the end of the frame
132
113
  */
133
114
  destroy(): void;
134
- /**
135
- * @intenral
136
- */
137
- _render(scene: Scene): void;
138
115
  private _createSpriteMaterial;
139
116
  private _createSpriteMaskMaterial;
117
+ private _onDeviceLost;
118
+ private _onDeviceRestored;
119
+ /**
120
+ * @deprecated
121
+ * The first scene physics manager.
122
+ */
123
+ get physicsManager(): PhysicsScene;
124
+ }
125
+ /**
126
+ * Engine configuration.
127
+ */
128
+ export interface EngineConfiguration {
129
+ /** Physics. */
130
+ physics?: IPhysics;
131
+ /** Color space. */
132
+ colorSpace?: ColorSpace;
140
133
  }
package/types/Entity.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Matrix } from "@galacean/engine-math";
2
- import { EngineObject } from "./base";
3
2
  import { Component } from "./Component";
4
3
  import { Engine } from "./Engine";
5
4
  import { Layer } from "./Layer";
6
5
  import { Scene } from "./Scene";
7
6
  import { Transform } from "./Transform";
7
+ import { EngineObject } from "./base";
8
8
  /**
9
9
  * Entity, be used as components container.
10
10
  */