@galacean/engine-core 1.0.0-beta.0 → 1.0.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 (98) hide show
  1. package/dist/main.js +4854 -6253
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +4854 -6253
  4. package/dist/module.js +4850 -6245
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/atlas/SpriteAtlas.d.ts +6 -2
  8. package/types/2d/enums/SpriteDrawMode.d.ts +2 -4
  9. package/types/2d/index.d.ts +0 -1
  10. package/types/2d/sprite/Sprite.d.ts +6 -2
  11. package/types/2d/sprite/SpriteMask.d.ts +4 -4
  12. package/types/2d/sprite/SpriteRenderer.d.ts +1 -18
  13. package/types/2d/text/Font.d.ts +7 -2
  14. package/types/2d/text/TextRenderer.d.ts +0 -4
  15. package/types/2d/text/index.d.ts +0 -1
  16. package/types/Camera.d.ts +2 -28
  17. package/types/Component.d.ts +8 -0
  18. package/types/ComponentsDependencies.d.ts +9 -17
  19. package/types/Engine.d.ts +39 -31
  20. package/types/RenderPipeline/Basic2DBatcher.d.ts +7 -6
  21. package/types/RenderPipeline/BasicRenderPipeline.d.ts +6 -8
  22. package/types/RenderPipeline/MeshRenderElement.d.ts +17 -0
  23. package/types/RenderPipeline/RenderElement.d.ts +7 -5
  24. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  25. package/types/RenderPipeline/RenderQueue.d.ts +5 -3
  26. package/types/RenderPipeline/SpriteElement.d.ts +13 -0
  27. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +3 -4
  28. package/types/RenderPipeline/SpriteMaskElement.d.ts +10 -0
  29. package/types/RenderPipeline/TextRenderElement.d.ts +6 -0
  30. package/types/Renderer.d.ts +2 -2
  31. package/types/Scene.d.ts +0 -2
  32. package/types/Script.d.ts +15 -18
  33. package/types/Transform.d.ts +12 -9
  34. package/types/Utils.d.ts +0 -28
  35. package/types/animation/AnimationClip.d.ts +1 -2
  36. package/types/asset/AssetType.d.ts +16 -16
  37. package/types/asset/IRefObject.d.ts +2 -0
  38. package/types/asset/{ReferResource.d.ts → RefObject.d.ts} +5 -5
  39. package/types/asset/ResourceManager.d.ts +9 -17
  40. package/types/base/Constant.d.ts +1 -2
  41. package/types/base/EngineObject.d.ts +0 -1
  42. package/types/base/Event.d.ts +24 -0
  43. package/types/base/EventDispatcher.d.ts +14 -1
  44. package/types/base/Time.d.ts +24 -27
  45. package/types/base/Util.d.ts +14 -0
  46. package/types/base/index.d.ts +2 -0
  47. package/types/graphic/Buffer.d.ts +9 -5
  48. package/types/graphic/Mesh.d.ts +5 -4
  49. package/types/index.d.ts +7 -8
  50. package/types/input/InputManager.d.ts +1 -1
  51. package/types/input/interface/IInput.d.ts +1 -1
  52. package/types/lighting/DirectLight.d.ts +1 -0
  53. package/types/lighting/SpotLight.d.ts +1 -0
  54. package/types/material/BaseMaterial.d.ts +8 -8
  55. package/types/material/Material.d.ts +7 -3
  56. package/types/mesh/BlendShape.d.ts +1 -1
  57. package/types/mesh/BlendShapeFrame.d.ts +6 -28
  58. package/types/mesh/ModelMesh.d.ts +5 -5
  59. package/types/mesh/PrimitiveMesh.d.ts +2 -4
  60. package/types/mesh/SkinnedMeshRenderer.d.ts +1 -0
  61. package/types/particle/ParticleRenderer.d.ts +2 -2
  62. package/types/physics/Collider.d.ts +1 -1
  63. package/types/physics/PhysicsManager.d.ts +20 -1
  64. package/types/physics/joint/Joint.d.ts +2 -2
  65. package/types/renderingHardwareInterface/index.d.ts +0 -1
  66. package/types/shader/Shader.d.ts +23 -32
  67. package/types/shader/ShaderData.d.ts +24 -24
  68. package/types/shader/ShaderMacro.d.ts +0 -16
  69. package/types/shader/ShaderPass.d.ts +2 -9
  70. package/types/shader/ShaderProperty.d.ts +0 -7
  71. package/types/shader/index.d.ts +1 -4
  72. package/types/shadow/CascadedShadowCasterPass.d.ts +1 -0
  73. package/types/sky/SkyBoxMaterial.d.ts +9 -30
  74. package/types/sky/index.d.ts +0 -1
  75. package/types/texture/RenderTarget.d.ts +4 -4
  76. package/types/texture/Texture.d.ts +6 -2
  77. package/types/texture/Texture2DArray.d.ts +0 -4
  78. package/types/texture/TextureCube.d.ts +0 -4
  79. package/types/2d/data/VertexData2D.d.ts +0 -1
  80. package/types/2d/enums/SpriteTileMode.d.ts +0 -11
  81. package/types/RenderPipeline/MeshRenderData.d.ts +0 -15
  82. package/types/RenderPipeline/RenderData.d.ts +0 -7
  83. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +0 -10
  84. package/types/RenderPipeline/SpriteRenderData.d.ts +0 -12
  85. package/types/RenderPipeline/TextRenderData.d.ts +0 -6
  86. package/types/RenderPipeline/enums/PipelineStage.d.ts +0 -9
  87. package/types/RenderPipeline/index.d.ts +0 -4
  88. package/types/asset/ContentRestorer.d.ts +0 -17
  89. package/types/asset/GraphicsResource.d.ts +0 -9
  90. package/types/asset/IReferable.d.ts +0 -2
  91. package/types/mesh/PrimitiveMeshRestorer.d.ts +0 -1
  92. package/types/physics/Collision.d.ts +0 -4
  93. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +0 -8
  94. package/types/shader/ShaderPart.d.ts +0 -41
  95. package/types/shader/ShaderTagKey.d.ts +0 -16
  96. package/types/shader/SubShader.d.ts +0 -19
  97. package/types/sky/SkyProceduralMaterial.d.ts +0 -72
  98. /package/types/2d/{assembler/TiledSpriteAssembler.d.ts → data/RenderData2D.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.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-beta.0"
18
+ "@galacean/engine-math": "1.0.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@galacean/engine-design": "1.0.0-beta.0"
21
+ "@galacean/engine-design": "1.0.0"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
@@ -1,10 +1,10 @@
1
- import { ReferResource } from "../../asset/ReferResource";
1
+ import { RefObject } from "../../asset/RefObject";
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 ReferResource {
7
+ export declare class SpriteAtlas extends RefObject {
8
8
  private _sprites;
9
9
  private _spriteNamesToIndex;
10
10
  /**
@@ -29,4 +29,8 @@ export declare class SpriteAtlas extends ReferResource {
29
29
  * @param engine - Engine to which the SpriteAtlas belongs
30
30
  */
31
31
  constructor(engine: Engine);
32
+ /**
33
+ * @override
34
+ */
35
+ _onDestroy(): void;
32
36
  }
@@ -4,8 +4,6 @@
4
4
  export declare enum SpriteDrawMode {
5
5
  /** Overall scaling when modifying size. */
6
6
  Simple = 0,
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
7
+ /** When modifying the size, it is transformed according to the 9-slice settings (border). */
8
+ Sliced = 1
11
9
  }
@@ -5,6 +5,5 @@ 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";
9
8
  export * from "./sprite/index";
10
9
  export * from "./text/index";
@@ -1,11 +1,11 @@
1
1
  import { Rect, Vector2, Vector4 } from "@galacean/engine-math";
2
- import { ReferResource } from "../../asset/ReferResource";
2
+ import { RefObject } from "../../asset/RefObject";
3
3
  import { Engine } from "../../Engine";
4
4
  import { Texture2D } from "../../texture/Texture2D";
5
5
  /**
6
6
  * 2D sprite.
7
7
  */
8
- export declare class Sprite extends ReferResource {
8
+ export declare class Sprite extends RefObject {
9
9
  /** The name of sprite. */
10
10
  name: string;
11
11
  private _width;
@@ -86,6 +86,10 @@ export declare class Sprite extends ReferResource {
86
86
  * @returns Cloned sprite
87
87
  */
88
88
  clone(): Sprite;
89
+ /**
90
+ * @override
91
+ */
92
+ _onDestroy(): void;
89
93
  private _calDefaultSize;
90
94
  private _updatePositions;
91
95
  private _updateUVs;
@@ -47,17 +47,17 @@ export declare class SpriteMask extends Renderer implements ICustomClone {
47
47
  set alphaCutoff(value: number);
48
48
  /**
49
49
  * @override
50
+ * @inheritdoc
50
51
  */
51
- protected _updateBounds(worldBounds: BoundingBox): void;
52
+ _onDestroy(): void;
52
53
  /**
53
54
  * @override
54
- * @inheritdoc
55
55
  */
56
- protected _render(context: RenderContext): void;
56
+ protected _updateBounds(worldBounds: BoundingBox): void;
57
57
  /**
58
58
  * @override
59
59
  * @inheritdoc
60
60
  */
61
- protected _onDestroy(): void;
61
+ protected _render(context: RenderContext): void;
62
62
  private _onSpriteChange;
63
63
  }
@@ -4,7 +4,6 @@ import { Renderer } from "../../Renderer";
4
4
  import { RenderContext } from "../../RenderPipeline/RenderContext";
5
5
  import { SpriteDrawMode } from "../enums/SpriteDrawMode";
6
6
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
7
- import { SpriteTileMode } from "../enums/SpriteTileMode";
8
7
  import { Sprite } from "./Sprite";
9
8
  /**
10
9
  * Renders a Sprite for 2D graphics.
@@ -12,8 +11,6 @@ import { Sprite } from "./Sprite";
12
11
  export declare class SpriteRenderer extends Renderer implements ICustomClone {
13
12
  private _drawMode;
14
13
  private _assembler;
15
- private _tileMode;
16
- private _tiledAdaptiveThreshold;
17
14
  private _color;
18
15
  private _sprite;
19
16
  private _width;
@@ -26,17 +23,7 @@ export declare class SpriteRenderer extends Renderer implements ICustomClone {
26
23
  * The draw mode of the sprite renderer.
27
24
  */
28
25
  get 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);
26
+ set drawMode(drawMode: SpriteDrawMode);
40
27
  /**
41
28
  * The Sprite to render.
42
29
  */
@@ -77,10 +64,6 @@ export declare class SpriteRenderer extends Renderer implements ICustomClone {
77
64
  */
78
65
  get maskInteraction(): SpriteMaskInteraction;
79
66
  set maskInteraction(value: SpriteMaskInteraction);
80
- /**
81
- * @override
82
- */
83
- protected _updateShaderData(context: RenderContext): void;
84
67
  /**
85
68
  * @override
86
69
  */
@@ -1,9 +1,10 @@
1
- import { ReferResource } from "../../asset/ReferResource";
1
+ import { RefObject } from "../../asset/RefObject";
2
2
  import { Engine } from "../../Engine";
3
3
  /**
4
4
  * Font.
5
5
  */
6
- export declare class Font extends ReferResource {
6
+ export declare class Font extends RefObject {
7
+ private static _fontMap;
7
8
  /**
8
9
  * Create a system font.
9
10
  * @param engine - Engine to which the font belongs
@@ -18,4 +19,8 @@ export declare class Font extends ReferResource {
18
19
  */
19
20
  get name(): string;
20
21
  constructor(engine: Engine, name?: string);
22
+ /**
23
+ * @override
24
+ */
25
+ _onDestroy(): void;
21
26
  }
@@ -107,10 +107,6 @@ export declare class TextRenderer extends Renderer implements ICustomClone {
107
107
  */
108
108
  get bounds(): BoundingBox;
109
109
  constructor(entity: Entity);
110
- /**
111
- * @override
112
- */
113
- protected _updateShaderData(context: RenderContext): void;
114
110
  /**
115
111
  * @override
116
112
  */
@@ -1,3 +1,2 @@
1
1
  export { Font } from "./Font";
2
2
  export { TextRenderer } from "./TextRenderer";
3
- export { TextUtils } from "./TextUtils";
package/types/Camera.d.ts CHANGED
@@ -2,14 +2,12 @@ import { Matrix, Ray, Vector2, Vector3, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
3
  import { CameraClearFlags } from "./enums/CameraClearFlags";
4
4
  import { Layer } from "./Layer";
5
- import { Shader } from "./shader/Shader";
6
5
  import { ShaderData } from "./shader/ShaderData";
7
- import { ShaderTagKey } from "./shader/ShaderTagKey";
8
6
  import { TextureCubeFace } from "./texture/enums/TextureCubeFace";
9
7
  import { RenderTarget } from "./texture/RenderTarget";
10
8
  /**
11
9
  * Camera component, as the entrance to the three-dimensional world.
12
- * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
10
+ * @decorator `@dependentComponents(Transform)`
13
11
  */
14
12
  export declare class Camera extends Component {
15
13
  /** Shader data. */
@@ -179,30 +177,6 @@ export declare class Camera extends Component {
179
177
  * @param mipLevel - Set mip level the data want to write, only take effect in webgl2.0
180
178
  */
181
179
  render(cubeFace?: TextureCubeFace, mipLevel?: number): void;
182
- /**
183
- * Set the replacement shader.
184
- * @param shader - Replacement shader
185
- * @param replacementTagName - Sub shader tag name
186
- *
187
- * @remarks
188
- * If replacementTagName is not specified, the first sub shader will be replaced.
189
- * If replacementTagName is specified, the replacement shader will find the first sub shader which has the same tag value get by replacementTagKey.
190
- */
191
- setReplacementShader(shader: Shader, replacementTagName?: string): any;
192
- /**
193
- * Set the replacement shader.
194
- * @param shader - Replacement shader
195
- * @param replacementTag - Sub shader tag
196
- *
197
- * @remarks
198
- * If replacementTag is not specified, the first sub shader will be replaced.
199
- * If replacementTag is specified, the replacement shader will find the first sub shader which has the same tag value get by replacementTagKey.
200
- */
201
- setReplacementShader(shader: Shader, replacementTag?: ShaderTagKey): any;
202
- /**
203
- * Reset and clear the replacement shader.
204
- */
205
- resetReplacementShader(): void;
206
180
  /**
207
181
  * @override
208
182
  * @inheritdoc
@@ -217,7 +191,7 @@ export declare class Camera extends Component {
217
191
  * @override
218
192
  * @inheritdoc
219
193
  */
220
- protected _onDestroy(): void;
194
+ _onDestroy(): void;
221
195
  private _projMatChange;
222
196
  private _innerViewportToWorldPoint;
223
197
  private _updateShaderData;
@@ -12,6 +12,10 @@ export declare class Component extends EngineObject {
12
12
  */
13
13
  get enabled(): boolean;
14
14
  set enabled(value: boolean);
15
+ /**
16
+ * Indicates whether the component is destroyed.
17
+ */
18
+ get destroyed(): boolean;
15
19
  /**
16
20
  * The entity which the component belongs to.
17
21
  */
@@ -21,4 +25,8 @@ export declare class Component extends EngineObject {
21
25
  */
22
26
  get scene(): Scene;
23
27
  constructor(entity: Entity);
28
+ /**
29
+ * Destroy this instance.
30
+ */
31
+ destroy(): void;
24
32
  }
@@ -2,24 +2,16 @@ import { Component } from "./Component";
2
2
  import { Entity } from "./Entity";
3
3
  type ComponentConstructor = new (entity: Entity) => Component;
4
4
  /**
5
- * Declare dependent component.
6
- * @param component - Dependent component
7
- * @param dependentMode - Dependent mode
5
+ * Used for component dependency registration.
8
6
  */
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;
7
+ export declare class ComponentsDependencies {
8
+ private static _invDependenciesMap;
9
+ private static _addDependency;
10
+ private constructor();
11
+ }
16
12
  /**
17
- * Dependent mode.
13
+ * Dependent components, automatically added if they do not exist.
14
+ * @param components - Dependent components
18
15
  */
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
- }
16
+ export declare function dependentComponents(...components: ComponentConstructor[]): <T extends ComponentConstructor>(target: T) => void;
25
17
  export {};
package/types/Engine.d.ts CHANGED
@@ -1,22 +1,43 @@
1
- import { IPhysics } from "@galacean/engine-design";
1
+ import { Font } from "./2d/text/Font";
2
2
  import { ResourceManager } from "./asset/ResourceManager";
3
3
  import { EventDispatcher, Time } from "./base";
4
4
  import { Canvas } from "./Canvas";
5
+ import { ComponentsManager } from "./ComponentsManager";
5
6
  import { EngineSettings } from "./EngineSettings";
6
7
  import { Entity } from "./Entity";
7
- import { ColorSpace } from "./enums/ColorSpace";
8
8
  import { InputManager } from "./input";
9
+ import { LightManager } from "./lighting/LightManager";
10
+ import { Material } from "./material/Material";
9
11
  import { PhysicsManager } from "./physics";
10
12
  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";
11
20
  import { SceneManager } from "./SceneManager";
21
+ import { RenderState } from "./shader/state/RenderState";
12
22
  /**
13
23
  * Engine.
14
24
  */
15
25
  export declare class Engine extends EventDispatcher {
16
26
  /** Physics manager of Engine. */
17
27
  readonly physicsManager: PhysicsManager;
18
- /** Input manager of Engine. */
19
28
  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;
20
41
  protected _canvas: Canvas;
21
42
  private _settings;
22
43
  private _resourceManager;
@@ -31,8 +52,7 @@ export declare class Engine extends EventDispatcher {
31
52
  private _targetFrameInterval;
32
53
  private _destroyed;
33
54
  private _frameInProcess;
34
- private _waitingDestroy;
35
- private _isDeviceLost;
55
+ private _waittingDestroy;
36
56
  private _animate;
37
57
  /**
38
58
  * Settings of Engine.
@@ -43,15 +63,15 @@ export declare class Engine extends EventDispatcher {
43
63
  */
44
64
  get canvas(): Canvas;
45
65
  /**
46
- * The resource manager.
66
+ * Get the resource manager.
47
67
  */
48
68
  get resourceManager(): ResourceManager;
49
69
  /**
50
- * The scene manager.
70
+ * Get the scene manager.
51
71
  */
52
72
  get sceneManager(): SceneManager;
53
73
  /**
54
- * The time information of the engine.
74
+ * Get the Time class.
55
75
  */
56
76
  get time(): Time;
57
77
  /**
@@ -76,7 +96,13 @@ export declare class Engine extends EventDispatcher {
76
96
  * Indicates whether the engine is destroyed.
77
97
  */
78
98
  get destroyed(): boolean;
79
- protected constructor(canvas: Canvas, hardwareRenderer: IHardwareRenderer, configuration: EngineConfiguration);
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);
80
106
  /**
81
107
  * Create an entity.
82
108
  * @param name - The name of the entity
@@ -99,34 +125,16 @@ export declare class Engine extends EventDispatcher {
99
125
  * Execution engine loop.
100
126
  */
101
127
  run(): void;
102
- /**
103
- * Force lose graphic device.
104
- * @remarks Used to simulate the phenomenon after the real loss of device.
105
- */
106
- forceLoseDevice(): void;
107
- /**
108
- * Force restore graphic device.
109
- * @remarks Used to simulate the phenomenon after the real restore of device.
110
- */
111
- forceRestoreDevice(): void;
112
128
  private _destroy;
113
129
  /**
114
130
  * Destroy engine.
115
131
  * @remarks If call during frame execution will delay until the end of the frame
116
132
  */
117
133
  destroy(): void;
118
- protected _initialize(configuration: EngineConfiguration): Promise<Engine>;
134
+ /**
135
+ * @intenral
136
+ */
137
+ _render(scene: Scene): void;
119
138
  private _createSpriteMaterial;
120
139
  private _createSpriteMaskMaterial;
121
- private _onDeviceLost;
122
- private _onDeviceRestored;
123
- }
124
- /**
125
- * Engine configuration.
126
- */
127
- export interface EngineConfiguration {
128
- /** Physics. */
129
- physics?: IPhysics;
130
- /** Color space. */
131
- colorSpace?: ColorSpace;
132
140
  }
@@ -1,18 +1,19 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { Engine } from "../Engine";
3
- import { ShaderTagKey } from "../shader/ShaderTagKey";
4
- import { RenderElement } from "./RenderElement";
3
+ import { Material } from "../material";
4
+ import { SpriteElement } from "./SpriteElement";
5
+ import { SpriteMaskElement } from "./SpriteMaskElement";
6
+ import { TextRenderElement } from "./TextRenderElement";
5
7
  export declare abstract class Basic2DBatcher {
6
- protected static _disableBatchTag: ShaderTagKey;
7
8
  /** The maximum number of vertex. */
8
9
  static MAX_VERTEX_COUNT: number;
9
10
  static _canUploadSameBuffer: boolean;
10
11
  constructor(engine: Engine);
11
- drawElement(element: RenderElement, camera: Camera): void;
12
- flush(camera: Camera): void;
12
+ drawElement(element: SpriteMaskElement | SpriteElement | TextRenderElement, camera: Camera, replaceMaterial: Material): void;
13
+ private _drawSubElement;
14
+ flush(camera: Camera, replaceMaterial: Material): void;
13
15
  clear(): void;
14
16
  destroy(): void;
15
- private _drawSubElement;
16
17
  private _createMesh;
17
18
  private _updateData;
18
19
  private _getSubMeshFromPool;
@@ -3,14 +3,14 @@ import { Layer } from "../Layer";
3
3
  import { Material } from "../material";
4
4
  import { RenderTarget, TextureCubeFace } from "../texture";
5
5
  import { RenderContext } from "./RenderContext";
6
- import { RenderData } from "./RenderData";
6
+ import { RenderElement } from "./RenderElement";
7
7
  import { RenderPass } from "./RenderPass";
8
8
  /**
9
9
  * Basic render pipeline.
10
10
  */
11
11
  export declare class BasicRenderPipeline {
12
- private static _shadowCasterPipelineStageTagValue;
13
- private static _forwardPipelineStageTagValue;
12
+ private static _tempVector0;
13
+ private static _tempVector1;
14
14
  private _camera;
15
15
  private _defaultPass;
16
16
  private _renderPassArray;
@@ -57,12 +57,10 @@ export declare class BasicRenderPipeline {
57
57
  render(context: RenderContext, cubeFace?: TextureCubeFace, mipLevel?: number): void;
58
58
  private _drawRenderPass;
59
59
  /**
60
- * Push render data to render queue.
61
- * @param context - Render context
62
- * @param data - Render data
60
+ * Push a render element to the render queue.
61
+ * @param element - Render element
63
62
  */
64
- pushRenderData(context: RenderContext, data: RenderData): void;
65
- private pushRenderDataWihShader;
63
+ pushPrimitive(element: RenderElement): void;
66
64
  private _drawBackgroundTexture;
67
65
  private _callRender;
68
66
  }
@@ -0,0 +1,17 @@
1
+ import { Mesh } from "../graphic/Mesh";
2
+ import { SubMesh } from "../graphic/SubMesh";
3
+ import { Material } from "../material/Material";
4
+ import { Renderer } from "../Renderer";
5
+ import { ShaderPass } from "../shader/ShaderPass";
6
+ import { RenderState } from "../shader/state/RenderState";
7
+ import { RenderElement } from "./RenderElement";
8
+ /**
9
+ * Render element.
10
+ */
11
+ export declare class MeshRenderElement extends RenderElement {
12
+ /** Mesh. */
13
+ mesh: Mesh;
14
+ /** Sub mesh. */
15
+ subMesh: SubMesh;
16
+ setValue(component: Renderer, mesh: Mesh, subMesh: SubMesh, material: Material, renderState: RenderState, shaderPass: ShaderPass): void;
17
+ }
@@ -1,9 +1,11 @@
1
- import { ShaderPass } from "../shader/ShaderPass";
1
+ import { Material } from "../material/Material";
2
+ import { Renderer } from "../Renderer";
3
+ import { ShaderPass } from "../shader";
2
4
  import { RenderState } from "../shader/state/RenderState";
3
- import { RenderData } from "./RenderData";
4
5
  export declare class RenderElement {
5
- data: RenderData;
6
- shaderPass: ShaderPass;
6
+ component: Renderer;
7
+ material: Material;
8
+ multiRenderData: boolean;
7
9
  renderState: RenderState;
8
- set(data: RenderData, shaderPass: ShaderPass, renderState: RenderState): void;
10
+ shaderPass: ShaderPass;
9
11
  }
@@ -23,7 +23,7 @@ declare class RenderPass {
23
23
  * @param name - Pass name
24
24
  * @param priority - Priority, less than 0 before the default pass, greater than 0 after the default pass
25
25
  * @param renderTarget - The specified Render Target
26
- * @param replaceMaterial - Replaced material
26
+ * @param replaceMaterial - Replaced material
27
27
  * @param mask - Perform bit and operations with Entity.Layer to filter the objects that this Pass needs to render
28
28
  */
29
29
  constructor(name?: string, priority?: number, renderTarget?: any, replaceMaterial?: any, mask?: any);
@@ -1,19 +1,21 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { Engine } from "../Engine";
3
3
  import { Layer } from "../Layer";
4
+ import { Material } from "../material/Material";
5
+ import { Shader } from "../shader";
4
6
  import { RenderElement } from "./RenderElement";
5
7
  /**
6
8
  * Render queue.
7
9
  */
8
10
  export declare class RenderQueue {
9
- readonly elements: RenderElement[];
11
+ readonly items: RenderElement[];
10
12
  private _spriteBatcher;
11
13
  constructor(engine: Engine);
12
14
  /**
13
15
  * Push a render element.
14
16
  */
15
- pushRenderElement(element: RenderElement): void;
16
- render(camera: Camera, mask: Layer): void;
17
+ pushPrimitive(element: RenderElement): void;
18
+ render(camera: Camera, replaceMaterial: Material, mask: Layer, customShader: Shader): void;
17
19
  /**
18
20
  * Clear collection.
19
21
  */
@@ -0,0 +1,13 @@
1
+ import { RenderData2D } from "../2d/data/RenderData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { ShaderPass } from "../shader";
5
+ import { RenderState } from "../shader/state/RenderState";
6
+ import { Texture2D } from "../texture";
7
+ import { RenderElement } from "./RenderElement";
8
+ export declare class SpriteElement extends RenderElement {
9
+ renderData: RenderData2D;
10
+ texture: Texture2D;
11
+ constructor();
12
+ setValue(component: Renderer, renderDate: RenderData2D, material: Material, texture: Texture2D, renderState: RenderState, shaderPass: ShaderPass): void;
13
+ }
@@ -1,11 +1,10 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { VertexElement } from "../graphic/VertexElement";
3
3
  import { Basic2DBatcher } from "./Basic2DBatcher";
4
- import { RenderElement } from "./RenderElement";
5
- import { SpriteMaskRenderData } from "./SpriteMaskRenderData";
4
+ import { SpriteMaskElement } from "./SpriteMaskElement";
6
5
  export declare class SpriteMaskBatcher extends Basic2DBatcher {
7
6
  createVertexElements(vertexElements: VertexElement[]): number;
8
- canBatch(preElement: RenderElement, curElement: RenderElement): boolean;
9
- updateVertices(element: SpriteMaskRenderData, vertices: Float32Array, vertexIndex: number): number;
7
+ canBatch(preElement: SpriteMaskElement, curElement: SpriteMaskElement): boolean;
8
+ updateVertices(element: SpriteMaskElement, vertices: Float32Array, vertexIndex: number): number;
10
9
  drawBatches(camera: Camera): void;
11
10
  }
@@ -0,0 +1,10 @@
1
+ import { RenderData2D } from "../2d/data/RenderData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { RenderElement } from "./RenderElement";
5
+ export declare class SpriteMaskElement extends RenderElement {
6
+ renderData: RenderData2D;
7
+ isAdd: boolean;
8
+ constructor();
9
+ setValue(component: Renderer, renderData: RenderData2D, material: Material): void;
10
+ }
@@ -0,0 +1,6 @@
1
+ import { RenderElement } from "./RenderElement";
2
+ import { SpriteElement } from "./SpriteElement";
3
+ export declare class TextRenderElement extends RenderElement {
4
+ charElements: SpriteElement[];
5
+ constructor();
6
+ }
@@ -2,11 +2,11 @@ import { BoundingBox, Matrix, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
3
  import { RenderContext } from "./RenderPipeline/RenderContext";
4
4
  import { TransformModifyFlags } from "./Transform";
5
+ import { Material } from "./material/Material";
5
6
  import { ShaderData } from "./shader/ShaderData";
6
- import { Material } from "./material";
7
7
  /**
8
8
  * Basis for all renderers.
9
- * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
9
+ * @decorator `@dependentComponents(Transform)`
10
10
  */
11
11
  export declare class Renderer extends Component {
12
12
  private static _tempVector0;
package/types/Scene.d.ts CHANGED
@@ -14,8 +14,6 @@ import { ShadowResolution } from "./shadow/enum/ShadowResolution";
14
14
  export declare class Scene extends EngineObject {
15
15
  private static _fogColorProperty;
16
16
  private static _fogParamsProperty;
17
- private static _sunlightColorProperty;
18
- private static _sunlightDirectionProperty;
19
17
  /** Scene name. */
20
18
  name: string;
21
19
  /** The background of the scene. */