@galacean/engine-core 0.0.0-experimental-1.3-xr.10 → 0.0.0-experimental-1.4-small-language.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 (105) hide show
  1. package/dist/main.js +17182 -15529
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +16241 -14706
  4. package/dist/module.js.map +1 -1
  5. package/package.json +3 -3
  6. package/types/2d/assembler/ISpriteAssembler.d.ts +11 -1
  7. package/types/2d/assembler/ISpriteRenderer.d.ts +16 -0
  8. package/types/2d/assembler/SimpleSpriteAssembler.d.ts +13 -1
  9. package/types/2d/assembler/SlicedSpriteAssembler.d.ts +15 -1
  10. package/types/2d/assembler/TiledSpriteAssembler.d.ts +17 -1
  11. package/types/2d/enums/SpriteModifyFlags.d.ts +9 -0
  12. package/types/2d/index.d.ts +12 -5
  13. package/types/2d/sprite/Sprite.d.ts +2 -2
  14. package/types/2d/sprite/SpriteMask.d.ts +4 -2
  15. package/types/2d/sprite/SpriteRenderer.d.ts +5 -4
  16. package/types/2d/sprite/index.d.ts +1 -1
  17. package/types/2d/text/ITextRenderer.d.ts +8 -0
  18. package/types/2d/text/TextRenderer.d.ts +26 -5
  19. package/types/2d/text/index.d.ts +3 -1
  20. package/types/BasicResources.d.ts +2 -1
  21. package/types/Camera.d.ts +7 -3
  22. package/types/ComponentsManager.d.ts +4 -0
  23. package/types/Engine.d.ts +12 -3
  24. package/types/Entity.d.ts +18 -4
  25. package/types/Polyfill.d.ts +1 -0
  26. package/types/RenderPipeline/BasicRenderPipeline.d.ts +4 -0
  27. package/types/RenderPipeline/Blitter.d.ts +28 -0
  28. package/types/RenderPipeline/enums/RenderQueueMaskType.d.ts +1 -0
  29. package/types/RenderPipeline/index.d.ts +3 -1
  30. package/types/Renderer.d.ts +15 -3
  31. package/types/Scene.d.ts +4 -1
  32. package/types/Script.d.ts +42 -18
  33. package/types/Transform.d.ts +17 -7
  34. package/types/animation/Animator.d.ts +27 -5
  35. package/types/animation/AnimatorController.d.ts +12 -2
  36. package/types/animation/AnimatorState.d.ts +0 -1
  37. package/types/animation/AnimatorStateMachine.d.ts +10 -6
  38. package/types/animation/AnimatorStateTransition.d.ts +13 -5
  39. package/types/animation/AnimatorStateTransitionCollection.d.ts +1 -0
  40. package/types/asset/AssetPromise.d.ts +30 -5
  41. package/types/asset/AssetType.d.ts +8 -2
  42. package/types/asset/Loader.d.ts +0 -2
  43. package/types/asset/ResourceManager.d.ts +4 -1
  44. package/types/asset/request.d.ts +10 -3
  45. package/types/audio/AudioClip.d.ts +24 -0
  46. package/types/audio/AudioManager.d.ts +1 -0
  47. package/types/audio/AudioSource.d.ts +72 -0
  48. package/types/audio/index.d.ts +3 -0
  49. package/types/base/Constant.d.ts +22 -22
  50. package/types/enums/CameraModifyFlags.d.ts +17 -0
  51. package/types/enums/EntityModifyFlags.d.ts +9 -0
  52. package/types/{2d/enums → enums}/SpriteMaskLayer.d.ts +3 -1
  53. package/types/index.d.ts +6 -1
  54. package/types/input/index.d.ts +5 -2
  55. package/types/input/pointer/Pointer.d.ts +8 -2
  56. package/types/input/pointer/PointerEventData.d.ts +12 -0
  57. package/types/input/pointer/PointerManager.d.ts +9 -1
  58. package/types/input/pointer/emitter/IHitResult.d.ts +1 -0
  59. package/types/input/pointer/emitter/PhysicsPointerEventEmitter.d.ts +1 -0
  60. package/types/input/pointer/emitter/PointerEventEmitter.d.ts +30 -0
  61. package/types/lighting/DirectLight.d.ts +5 -0
  62. package/types/lighting/Light.d.ts +4 -1
  63. package/types/material/BaseMaterial.d.ts +4 -2
  64. package/types/material/Material.d.ts +1 -0
  65. package/types/material/PBRMaterial.d.ts +130 -0
  66. package/types/material/enums/Refraction.d.ts +9 -0
  67. package/types/material/index.d.ts +1 -0
  68. package/types/material/utils/PrefilteredDFG.d.ts +7 -0
  69. package/types/particle/ParticleGenerator.d.ts +1 -0
  70. package/types/particle/modules/MainModule.d.ts +1 -2
  71. package/types/physics/CharacterController.d.ts +5 -6
  72. package/types/physics/Collider.d.ts +3 -1
  73. package/types/physics/Collision.d.ts +18 -0
  74. package/types/physics/ContactPoint.d.ts +14 -0
  75. package/types/physics/DynamicCollider.d.ts +35 -4
  76. package/types/physics/HitResult.d.ts +1 -1
  77. package/types/physics/PhysicsMaterial.d.ts +5 -1
  78. package/types/physics/index.d.ts +2 -0
  79. package/types/physics/joint/FixedJoint.d.ts +1 -0
  80. package/types/physics/joint/HingeJoint.d.ts +11 -7
  81. package/types/physics/joint/Joint.d.ts +32 -10
  82. package/types/physics/joint/JointLimits.d.ts +34 -10
  83. package/types/physics/joint/JointMotor.d.ts +27 -8
  84. package/types/physics/joint/SpringJoint.d.ts +2 -6
  85. package/types/physics/shape/BoxColliderShape.d.ts +1 -0
  86. package/types/physics/shape/CapsuleColliderShape.d.ts +1 -0
  87. package/types/physics/shape/ColliderShape.d.ts +11 -3
  88. package/types/physics/shape/PlaneColliderShape.d.ts +2 -0
  89. package/types/physics/shape/SphereColliderShape.d.ts +1 -1
  90. package/types/postProcess/PostProcess.d.ts +64 -0
  91. package/types/postProcess/PostProcessEffect.d.ts +26 -0
  92. package/types/postProcess/PostProcessEffectParameter.d.ts +119 -0
  93. package/types/postProcess/PostProcessManager.d.ts +37 -1
  94. package/types/postProcess/PostProcessPass.d.ts +50 -0
  95. package/types/postProcess/PostProcessUberPass.d.ts +25 -0
  96. package/types/postProcess/effects/BloomEffect.d.ts +22 -66
  97. package/types/postProcess/effects/TonemappingEffect.d.ts +6 -16
  98. package/types/postProcess/index.d.ts +6 -2
  99. package/types/shader/Shader.d.ts +1 -1
  100. package/types/shader/index.d.ts +1 -0
  101. package/types/shaderlib/ShaderLib.d.ts +2 -0
  102. package/types/shaderlib/pbr/index.d.ts +2 -0
  103. package/types/ui/IUICanvas.d.ts +1 -0
  104. package/types/ui/UIUtils.d.ts +11 -0
  105. package/dist/miniprogram.js +0 -34626
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "0.0.0-experimental-1.3-xr.10",
3
+ "version": "0.0.0-experimental-1.4-small-language.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -18,10 +18,10 @@
18
18
  "types/**/*"
19
19
  ],
20
20
  "dependencies": {
21
- "@galacean/engine-math": "0.0.0-experimental-1.3-xr.10"
21
+ "@galacean/engine-math": "0.0.0-experimental-1.4-small-language.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@galacean/engine-design": "0.0.0-experimental-1.3-xr.10"
24
+ "@galacean/engine-design": "0.0.0-experimental-1.4-small-language.0"
25
25
  },
26
26
  "scripts": {
27
27
  "b:types": "tsc"
@@ -1 +1,11 @@
1
- export {};
1
+ import { Matrix, Vector2 } from "@galacean/engine-math";
2
+ import { ISpriteRenderer } from "./ISpriteRenderer";
3
+ /**
4
+ * Interface for sprite assembler.
5
+ */
6
+ export interface ISpriteAssembler {
7
+ resetData(renderer: ISpriteRenderer, vertexCount?: number): void;
8
+ updatePositions(renderer: ISpriteRenderer, worldMatrix: Matrix, width: number, height: number, pivot: Vector2, flipX: boolean, flipY: boolean, referenceResolutionPerUnit?: number): void;
9
+ updateUVs(renderer: ISpriteRenderer): void;
10
+ updateColor(renderer: ISpriteRenderer, alpha: number): void;
11
+ }
@@ -0,0 +1,16 @@
1
+ import { Color } from "@galacean/engine-math";
2
+ import { PrimitiveChunkManager } from "../../RenderPipeline/PrimitiveChunkManager";
3
+ import { SubPrimitiveChunk } from "../../RenderPipeline/SubPrimitiveChunk";
4
+ import { SpriteTileMode } from "../enums/SpriteTileMode";
5
+ import { Sprite } from "../sprite";
6
+ /**
7
+ * Interface for sprite renderer.
8
+ */
9
+ export interface ISpriteRenderer {
10
+ sprite: Sprite;
11
+ color?: Color;
12
+ tileMode?: SpriteTileMode;
13
+ tiledAdaptiveThreshold?: number;
14
+ _subChunk: SubPrimitiveChunk;
15
+ _getChunkManager(): PrimitiveChunkManager;
16
+ }
@@ -1 +1,13 @@
1
- export {};
1
+ import { Matrix, Vector2 } from "@galacean/engine-math";
2
+ import { ISpriteRenderer } from "./ISpriteRenderer";
3
+ /**
4
+ * Assemble vertex data for the sprite renderer in simple mode.
5
+ */
6
+ export declare class SimpleSpriteAssembler {
7
+ private static _rectangleTriangles;
8
+ private static _matrix;
9
+ static resetData(renderer: ISpriteRenderer): void;
10
+ static updatePositions(renderer: ISpriteRenderer, worldMatrix: Matrix, width: number, height: number, pivot: Vector2, flipX: boolean, flipY: boolean): void;
11
+ static updateUVs(renderer: ISpriteRenderer): void;
12
+ static updateColor(renderer: ISpriteRenderer, alpha: number): void;
13
+ }
@@ -1 +1,15 @@
1
- export {};
1
+ import { Matrix, Vector2 } from "@galacean/engine-math";
2
+ import { ISpriteRenderer } from "./ISpriteRenderer";
3
+ /**
4
+ * Assemble vertex data for the sprite renderer in sliced mode.
5
+ */
6
+ export declare class SlicedSpriteAssembler {
7
+ private static _rectangleTriangles;
8
+ private static _matrix;
9
+ private static _row;
10
+ private static _column;
11
+ static resetData(renderer: ISpriteRenderer): void;
12
+ static updatePositions(renderer: ISpriteRenderer, worldMatrix: Matrix, width: number, height: number, pivot: Vector2, flipX: boolean, flipY: boolean, referenceResolutionPerUnit?: number): void;
13
+ static updateUVs(renderer: ISpriteRenderer): void;
14
+ static updateColor(renderer: ISpriteRenderer, alpha: number): void;
15
+ }
@@ -1 +1,17 @@
1
- export {};
1
+ import { Matrix, Vector2 } from "@galacean/engine-math";
2
+ import { ISpriteRenderer } from "./ISpriteRenderer";
3
+ /**
4
+ * Assemble vertex data for the sprite renderer in tiled mode.
5
+ */
6
+ export declare class TiledSpriteAssembler {
7
+ private static _matrix;
8
+ private static _posRow;
9
+ private static _posColumn;
10
+ private static _uvRow;
11
+ private static _uvColumn;
12
+ static resetData(renderer: ISpriteRenderer, vertexCount: number): void;
13
+ static updatePositions(renderer: ISpriteRenderer, worldMatrix: Matrix, width: number, height: number, pivot: Vector2, flipX: boolean, flipY: boolean, referenceResolutionPerUnit?: number): void;
14
+ static updateUVs(renderer: ISpriteRenderer): void;
15
+ static updateColor(renderer: ISpriteRenderer, alpha: number): void;
16
+ private static _calculateDividing;
17
+ }
@@ -2,13 +2,22 @@
2
2
  * Sprite Property Dirty Flag.
3
3
  */
4
4
  export declare enum SpriteModifyFlags {
5
+ /** The texture of sprite changes. */
5
6
  texture = 1,
7
+ /** The size of sprite changes. */
6
8
  size = 2,
9
+ /** The rotation of sprite changes. */
7
10
  atlasRotate = 4,
11
+ /** The atlasRegion of sprite changes. */
8
12
  atlasRegion = 8,
13
+ /** The atlasRegionOffset of sprite changes. */
9
14
  atlasRegionOffset = 16,
15
+ /** The region of sprite changes. */
10
16
  region = 32,
17
+ /** The pivot of sprite changes. */
11
18
  pivot = 64,
19
+ /** The border of sprite changes. */
12
20
  border = 128,
21
+ /** The sprite destroyed. */
13
22
  destroy = 256
14
23
  }
@@ -1,10 +1,17 @@
1
- export { SpriteMaskInteraction } from "./enums/SpriteMaskInteraction";
2
- export { SpriteMaskLayer } from "./enums/SpriteMaskLayer";
3
- export { TextHorizontalAlignment, TextVerticalAlignment } from "./enums/TextAlignment";
4
- export { OverflowMode } from "./enums/TextOverflow";
5
- export { FontStyle } from "./enums/FontStyle";
1
+ export type { ISpriteAssembler } from "./assembler/ISpriteAssembler";
2
+ export type { ISpriteRenderer } from "./assembler/ISpriteRenderer";
3
+ export { SimpleSpriteAssembler } from "./assembler/SimpleSpriteAssembler";
4
+ export { SlicedSpriteAssembler } from "./assembler/SlicedSpriteAssembler";
5
+ export { TiledSpriteAssembler } from "./assembler/TiledSpriteAssembler";
6
6
  export { SpriteAtlas } from "./atlas/SpriteAtlas";
7
+ export { FontAtlas } from "./atlas/FontAtlas";
8
+ export { FontStyle } from "./enums/FontStyle";
7
9
  export { SpriteDrawMode } from "./enums/SpriteDrawMode";
10
+ export { SpriteMaskInteraction } from "./enums/SpriteMaskInteraction";
11
+ export { SpriteModifyFlags } from "./enums/SpriteModifyFlags";
8
12
  export { SpriteTileMode } from "./enums/SpriteTileMode";
13
+ export { TextHorizontalAlignment, TextVerticalAlignment } from "./enums/TextAlignment";
14
+ export { OverflowMode } from "./enums/TextOverflow";
9
15
  export * from "./sprite/index";
10
16
  export * from "./text/index";
17
+ export type { ITextRenderer } from "./text/ITextRenderer";
@@ -33,7 +33,7 @@ export declare class Sprite extends ReferResource {
33
33
  *
34
34
  * @remarks
35
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`.
36
+ * otherwise return the width calculated according to `Texture.width`, `Sprite.region`, `Sprite.atlasRegion` and `Sprite.atlasRegionOffset`.
37
37
  */
38
38
  get width(): number;
39
39
  set width(value: number);
@@ -42,7 +42,7 @@ export declare class Sprite extends ReferResource {
42
42
  *
43
43
  * @remarks
44
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`.
45
+ * otherwise return the height calculated according to `Texture.height`, `Sprite.region`, `Sprite.atlasRegion` and `Sprite.atlasRegionOffset`.
46
46
  */
47
47
  get height(): number;
48
48
  set height(value: number);
@@ -1,13 +1,15 @@
1
1
  import { BoundingBox } from "@galacean/engine-math";
2
2
  import { RenderContext } from "../../RenderPipeline/RenderContext";
3
3
  import { Renderer } from "../../Renderer";
4
+ import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
5
+ import { ISpriteRenderer } from "../assembler/ISpriteRenderer";
4
6
  import { Sprite } from "./Sprite";
5
7
  /**
6
8
  * A component for masking Sprites.
7
9
  */
8
- export declare class SpriteMask extends Renderer {
10
+ export declare class SpriteMask extends Renderer implements ISpriteRenderer {
9
11
  /** The mask layers the sprite mask influence to. */
10
- influenceLayers: number;
12
+ influenceLayers: SpriteMaskLayer;
11
13
  private _sprite;
12
14
  private _automaticWidth;
13
15
  private _automaticHeight;
@@ -1,14 +1,16 @@
1
1
  import { BoundingBox, Color } from "@galacean/engine-math";
2
2
  import { RenderContext } from "../../RenderPipeline/RenderContext";
3
3
  import { Renderer } from "../../Renderer";
4
+ import { ISpriteRenderer } from "../assembler/ISpriteRenderer";
4
5
  import { SpriteDrawMode } from "../enums/SpriteDrawMode";
5
6
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
6
7
  import { SpriteTileMode } from "../enums/SpriteTileMode";
7
8
  import { Sprite } from "./Sprite";
9
+ import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
8
10
  /**
9
11
  * Renders a Sprite for 2D graphics.
10
12
  */
11
- export declare class SpriteRenderer extends Renderer {
13
+ export declare class SpriteRenderer extends Renderer implements ISpriteRenderer {
12
14
  private _drawMode;
13
15
  private _assembler;
14
16
  private _tileMode;
@@ -77,8 +79,8 @@ export declare class SpriteRenderer extends Renderer {
77
79
  /**
78
80
  * The mask layer the sprite renderer belongs to.
79
81
  */
80
- get maskLayer(): number;
81
- set maskLayer(value: number);
82
+ get maskLayer(): SpriteMaskLayer;
83
+ set maskLayer(value: SpriteMaskLayer);
82
84
  /**
83
85
  * Interacts with the masks.
84
86
  */
@@ -88,7 +90,6 @@ export declare class SpriteRenderer extends Renderer {
88
90
  protected _render(context: RenderContext): void;
89
91
  protected _onDestroy(): void;
90
92
  private _calDefaultSize;
91
- private _updateStencilState;
92
93
  private _onSpriteChange;
93
94
  private _onColorChanged;
94
95
  }
@@ -1,3 +1,3 @@
1
1
  export { Sprite } from "./Sprite";
2
- export { SpriteRenderer } from "./SpriteRenderer";
3
2
  export { SpriteMask } from "./SpriteMask";
3
+ export { SpriteRenderer } from "./SpriteRenderer";
@@ -0,0 +1,8 @@
1
+ import { OverflowMode } from "../enums/TextOverflow";
2
+ import { SubFont } from "./SubFont";
3
+ export interface ITextRenderer {
4
+ text: string;
5
+ overflowMode: OverflowMode;
6
+ lineSpacing: number;
7
+ _getSubFont(): SubFont;
8
+ }
@@ -1,21 +1,28 @@
1
1
  import { BoundingBox, Color } from "@galacean/engine-math";
2
2
  import { Entity } from "../../Entity";
3
3
  import { RenderContext } from "../../RenderPipeline/RenderContext";
4
+ import { SubPrimitiveChunk } from "../../RenderPipeline/SubPrimitiveChunk";
4
5
  import { Renderer } from "../../Renderer";
6
+ import { TransformModifyFlags } from "../../Transform";
7
+ import { Texture2D } from "../../texture";
5
8
  import { FontStyle } from "../enums/FontStyle";
6
9
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
7
10
  import { TextHorizontalAlignment, TextVerticalAlignment } from "../enums/TextAlignment";
8
11
  import { OverflowMode } from "../enums/TextOverflow";
12
+ import { CharRenderInfo } from "./CharRenderInfo";
9
13
  import { Font } from "./Font";
14
+ import { ITextRenderer } from "./ITextRenderer";
15
+ import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
10
16
  /**
11
17
  * Renders a text for 2D graphics.
12
18
  */
13
- export declare class TextRenderer extends Renderer {
19
+ export declare class TextRenderer extends Renderer implements ITextRenderer {
14
20
  private static _textureProperty;
15
21
  private static _tempVec30;
16
22
  private static _tempVec31;
17
23
  private static _worldPositions;
18
24
  private static _charRenderInfos;
25
+ private _textChunks;
19
26
  private _color;
20
27
  private _text;
21
28
  private _width;
@@ -97,8 +104,8 @@ export declare class TextRenderer extends Renderer {
97
104
  /**
98
105
  * The mask layer the sprite renderer belongs to.
99
106
  */
100
- get maskLayer(): number;
101
- set maskLayer(value: number);
107
+ get maskLayer(): SpriteMaskLayer;
108
+ set maskLayer(value: SpriteMaskLayer);
102
109
  /**
103
110
  * The bounding volume of the TextRenderer.
104
111
  */
@@ -106,13 +113,27 @@ export declare class TextRenderer extends Renderer {
106
113
  constructor(entity: Entity);
107
114
  protected _updateBounds(worldBounds: BoundingBox): void;
108
115
  protected _render(context: RenderContext): void;
109
- private _updateStencilState;
110
116
  private _resetSubFont;
111
117
  private _updatePosition;
112
118
  private _updateColor;
113
- private _updateLocalData;
119
+ protected _updateLocalData(): void;
120
+ protected _onTransformChanged(bit: TransformModifyFlags): void;
114
121
  private _isTextNoVisible;
115
122
  private _buildChunk;
116
123
  private _freeTextChunks;
117
124
  private _onColorChanged;
118
125
  }
126
+ export declare class TextChunk {
127
+ charRenderInfos: CharRenderInfo[];
128
+ subChunk: SubPrimitiveChunk;
129
+ texture: Texture2D;
130
+ }
131
+ export declare enum DirtyFlag {
132
+ SubFont = 1,
133
+ LocalPositionBounds = 2,
134
+ WorldPosition = 4,
135
+ WorldBounds = 8,
136
+ Color = 16,
137
+ Position = 14,
138
+ Font = 15
139
+ }
@@ -1,3 +1,5 @@
1
1
  export { Font } from "./Font";
2
- export { TextRenderer } from "./TextRenderer";
2
+ export { TextRenderer, TextChunk, DirtyFlag } from "./TextRenderer";
3
+ export { CharRenderInfo } from "./CharRenderInfo";
4
+ export { SubFont } from "./SubFont";
3
5
  export { TextUtils } from "./TextUtils";
@@ -1 +1,2 @@
1
- export {};
1
+ import { RenderStateElementKey } from "./shader/enums/RenderStateElementKey";
2
+ export type RenderStateElementMap = Record<RenderStateElementKey, number | boolean>;
package/types/Camera.d.ts CHANGED
@@ -34,6 +34,10 @@ export declare class Camera extends Component {
34
34
  * @remarks Support bit manipulation, corresponding to `Layer`.
35
35
  */
36
36
  cullingMask: Layer;
37
+ /**
38
+ * Determines which PostProcess to use.
39
+ */
40
+ postProcessMask: Layer;
37
41
  /**
38
42
  * Depth texture mode.
39
43
  * If `DepthTextureMode.PrePass` is used, the depth texture can be accessed in the shader using `camera_DepthTexture`.
@@ -50,7 +54,7 @@ export declare class Camera extends Component {
50
54
  /**
51
55
  * Multi-sample anti-aliasing samples when use independent canvas mode.
52
56
  *
53
- * @remarks The `independentCanvasEnabled` property should be `true` to take effect, otherwise it will be invalid.
57
+ * @remarks It will take effect when `independentCanvasEnabled` property is `true`, otherwise it will be invalid.
54
58
  */
55
59
  msaaSamples: MSAASamples;
56
60
  private _priority;
@@ -67,8 +71,8 @@ export declare class Camera extends Component {
67
71
  private _opaqueTextureEnabled;
68
72
  private _enableHDR;
69
73
  private _enablePostProcess;
74
+ private _updateFlagManager;
70
75
  private _frustumChangeFlag;
71
- private _transform;
72
76
  private _isViewMatrixDirty;
73
77
  private _isInvViewProjDirty;
74
78
  private _viewport;
@@ -86,7 +90,6 @@ export declare class Camera extends Component {
86
90
  set opaqueTextureEnabled(value: boolean);
87
91
  /**
88
92
  * Whether independent canvas is enabled.
89
- *
90
93
  * @remarks If true, the msaa in viewport can turn or off independently by `msaaSamples` property.
91
94
  */
92
95
  get independentCanvasEnabled(): boolean;
@@ -300,4 +303,5 @@ export declare class Camera extends Component {
300
303
  private _getInverseProjectionMatrix;
301
304
  private _onPixelViewportChanged;
302
305
  private _checkMainCanvasAntialiasWaste;
306
+ private _dispatchModify;
303
307
  }
@@ -3,6 +3,7 @@ import { Component } from "./Component";
3
3
  import { Renderer } from "./Renderer";
4
4
  import { Script } from "./Script";
5
5
  import { Animator } from "./animation";
6
+ import { IUICanvas } from "./ui/IUICanvas";
6
7
  /**
7
8
  * The manager of the components.
8
9
  */
@@ -21,6 +22,9 @@ export declare class ComponentsManager {
21
22
  sortCameras(): void;
22
23
  addRenderer(renderer: Renderer): void;
23
24
  removeRenderer(renderer: Renderer): void;
25
+ addUICanvas(uiCanvas: IUICanvas, isOverlay: boolean): void;
26
+ removeUICanvas(uiCanvas: IUICanvas, isOverlay: boolean): void;
27
+ sortOverlayUICanvases(): void;
24
28
  addOnStartScript(script: Script): void;
25
29
  removeOnStartScript(script: Script): void;
26
30
  addOnUpdateScript(script: Script): void;
package/types/Engine.d.ts CHANGED
@@ -9,6 +9,7 @@ import { ColorSpace } from "./enums/ColorSpace";
9
9
  import { InputManager } from "./input";
10
10
  import { ParticleBufferUtils } from "./particle/ParticleBufferUtils";
11
11
  import { PhysicsScene } from "./physics/PhysicsScene";
12
+ import { PostProcessPass } from "./postProcess/PostProcessPass";
12
13
  import { XRManager } from "./xr/XRManager";
13
14
  /**
14
15
  * Engine.
@@ -35,6 +36,8 @@ export declare class Engine extends EventDispatcher {
35
36
  private _waitingDestroy;
36
37
  private _isDeviceLost;
37
38
  private _waitingGC;
39
+ private _postProcessPasses;
40
+ private _activePostProcessPasses;
38
41
  private _animate;
39
42
  /**
40
43
  * Settings of Engine.
@@ -74,6 +77,10 @@ export declare class Engine extends EventDispatcher {
74
77
  */
75
78
  get targetFrameRate(): number;
76
79
  set targetFrameRate(value: number);
80
+ /**
81
+ * All post process passes.
82
+ */
83
+ get postProcessPasses(): ReadonlyArray<PostProcessPass>;
77
84
  /**
78
85
  * Indicates whether the engine is destroyed.
79
86
  */
@@ -111,15 +118,17 @@ export declare class Engine extends EventDispatcher {
111
118
  * @remarks Used to simulate the phenomenon after the real restore of device.
112
119
  */
113
120
  forceRestoreDevice(): void;
121
+ /**
122
+ * Add a post process pass.
123
+ * @param pass - Post process pass to add
124
+ */
125
+ addPostProcessPass(pass: PostProcessPass): void;
114
126
  private _destroy;
115
127
  /**
116
128
  * Destroy engine.
117
129
  * @remarks If call during frame execution will delay until the end of the frame
118
130
  */
119
131
  destroy(): void;
120
- private _createSpriteMaterial;
121
- private _createSpriteMaskMaterial;
122
- private _createTextMaterial;
123
132
  private _onDeviceLost;
124
133
  private _onDeviceRestored;
125
134
  private _gc;
package/types/Entity.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Matrix } from "@galacean/engine-math";
2
+ import { BoolUpdateFlag } from "./BoolUpdateFlag";
2
3
  import { Component } from "./Component";
3
4
  import { Engine } from "./Engine";
4
5
  import { Layer } from "./Layer";
@@ -13,11 +14,15 @@ export declare class Entity extends EngineObject {
13
14
  name: string;
14
15
  /** The layer the entity belongs to. */
15
16
  layer: Layer;
16
- /** Transform component. */
17
- readonly transform: Transform;
17
+ private _transform;
18
18
  private _templateResource;
19
19
  private _parent;
20
20
  private _activeChangedComponents;
21
+ private _modifyFlagManager;
22
+ /**
23
+ * The transform of this entity.
24
+ */
25
+ get transform(): Transform;
21
26
  /**
22
27
  * Whether to activate locally.
23
28
  */
@@ -53,8 +58,10 @@ export declare class Entity extends EngineObject {
53
58
  /**
54
59
  * Create a entity.
55
60
  * @param engine - The engine the entity belongs to
61
+ * @param name - The name of the entity
62
+ * @param components - The types of components you wish to add
56
63
  */
57
- constructor(engine: Engine, name?: string);
64
+ constructor(engine: Engine, name?: string, ...components: ComponentConstructor[]);
58
65
  /**
59
66
  * Add component based on the component type.
60
67
  * @param type - The type of the component
@@ -113,7 +120,7 @@ export declare class Entity extends EngineObject {
113
120
  findByName(name: string): Entity;
114
121
  /**
115
122
  * Find the entity by path.
116
- * @param path - The path fo the entity eg: /entity
123
+ * @param path - The path of the entity eg: /entity
117
124
  * @returns The component which be found
118
125
  */
119
126
  findByPath(path: string): Entity;
@@ -132,12 +139,18 @@ export declare class Entity extends EngineObject {
132
139
  * @returns Cloned entity
133
140
  */
134
141
  clone(): Entity;
142
+ /**
143
+ * Listen for changes in the world pose of this `Entity`.
144
+ * @returns Change flag
145
+ */
146
+ registerWorldChangeFlag(): BoolUpdateFlag;
135
147
  private _createCloneEntity;
136
148
  private _parseCloneEntity;
137
149
  /**
138
150
  * Destroy self.
139
151
  */
140
152
  destroy(): void;
153
+ private _dispatchModify;
141
154
  private _addToChildrenList;
142
155
  private _setParent;
143
156
  private _getComponentsInChildren;
@@ -153,4 +166,5 @@ export declare class Entity extends EngineObject {
153
166
  getInvModelMatrix(): Matrix;
154
167
  }
155
168
  type ComponentArguments<T extends new (entity: Entity, ...args: any[]) => Component> = T extends new (entity: Entity, ...args: infer P) => Component ? P : never;
169
+ type ComponentConstructor = new (entity: Entity) => Component;
156
170
  export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -13,6 +13,10 @@ export declare class BasicRenderPipeline {
13
13
  private _cascadedShadowCasterPass;
14
14
  private _depthOnlyPass;
15
15
  private _opaqueTexturePass;
16
+ private _grabTexture;
17
+ private _canUseBlitFrameBuffer;
18
+ private _shouldGrabColor;
19
+ private _sourceScaleOffset;
16
20
  /**
17
21
  * Create a basic render pipeline.
18
22
  * @param camera - Camera
@@ -0,0 +1,28 @@
1
+ import { Vector4 } from "@galacean/engine-math";
2
+ import { Engine } from "../Engine";
3
+ import { Material } from "../material";
4
+ import { RenderTarget, Texture2D } from "../texture";
5
+ /**
6
+ * A helper class to blit texture to destination render target.
7
+ */
8
+ export declare class Blitter {
9
+ private static _blitTextureProperty;
10
+ private static _blitMipLevelProperty;
11
+ private static _blitTexelSizeProperty;
12
+ private static _sourceScaleOffsetProperty;
13
+ private static _rendererShaderData;
14
+ private static _texelSize;
15
+ private static _defaultScaleOffset;
16
+ /**
17
+ * Blit texture to destination render target using a triangle.
18
+ * @param engine - Engine
19
+ * @param source - Source texture
20
+ * @param destination - Destination render target
21
+ * @param mipLevel - Mip level to blit
22
+ * @param viewport - Viewport
23
+ * @param material - The material to use when blit
24
+ * @param passIndex - Pass index to use of the provided material
25
+ * @param flipYOfSource - Whether flip Y axis of source texture
26
+ */
27
+ static blitTexture(engine: Engine, source: Texture2D, destination: RenderTarget | null, mipLevel?: number, viewport?: Vector4, material?: Material, passIndex?: number, sourceScaleOffset?: Vector4): void;
28
+ }
@@ -1,3 +1,5 @@
1
- export { BasicRenderPipeline } from "./BasicRenderPipeline";
1
+ export { BasicRenderPipeline, RenderQueueFlags } from "./BasicRenderPipeline";
2
+ export { BatchUtils } from "./BatchUtils";
3
+ export { Blitter } from "./Blitter";
2
4
  export { RenderQueue } from "./RenderQueue";
3
5
  export { PipelineStage } from "./enums/PipelineStage";
@@ -1,8 +1,10 @@
1
1
  import { BoundingBox, Matrix, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
+ import { Entity } from "./Entity";
3
4
  import { RenderContext } from "./RenderPipeline/RenderContext";
4
- import { Transform } from "./Transform";
5
+ import { TransformModifyFlags } from "./Transform";
5
6
  import { IComponentCustomClone } from "./clone/ComponentCloner";
7
+ import { SpriteMaskLayer } from "./enums/SpriteMaskLayer";
6
8
  import { Material } from "./material";
7
9
  import { ShaderData } from "./shader/ShaderData";
8
10
  /**
@@ -20,11 +22,13 @@ export declare class Renderer extends Component implements IComponentCustomClone
20
22
  private static _normalMatrixProperty;
21
23
  private static _rendererLayerProperty;
22
24
  _renderFrameCount: number;
25
+ _maskLayer: SpriteMaskLayer;
23
26
  protected _overrideUpdate: boolean;
24
27
  protected _materials: Material[];
25
28
  protected _dirtyUpdateFlag: number;
26
29
  protected _rendererLayer: Vector4;
27
- protected _transform: Transform;
30
+ protected _bounds: BoundingBox;
31
+ protected _transformEntity: Entity;
28
32
  private _shaderData;
29
33
  private _mvMatrix;
30
34
  private _mvpMatrix;
@@ -54,7 +58,7 @@ export declare class Renderer extends Component implements IComponentCustomClone
54
58
  get materialCount(): number;
55
59
  set materialCount(value: number);
56
60
  /**
57
- * The bounding volume of the renderer.
61
+ * The world bounding volume of the renderer.
58
62
  */
59
63
  get bounds(): BoundingBox;
60
64
  /**
@@ -119,5 +123,13 @@ export declare class Renderer extends Component implements IComponentCustomClone
119
123
  protected _update(context: RenderContext): void;
120
124
  protected _updateWorldViewRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
121
125
  protected _updateProjectionRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
126
+ protected _updateBounds(worldBounds: BoundingBox): void;
127
+ protected _render(context: RenderContext): void;
128
+ private _createInstanceMaterial;
122
129
  private _setMaterial;
130
+ protected _onTransformChanged(type: TransformModifyFlags): void;
131
+ }
132
+ export declare enum RendererUpdateFlags {
133
+ /** Include world position and world bounds. */
134
+ WorldVolume = 1
123
135
  }
package/types/Scene.d.ts CHANGED
@@ -7,6 +7,7 @@ import { FogMode } from "./enums/FogMode";
7
7
  import { DirectLight } from "./lighting";
8
8
  import { AmbientLight } from "./lighting/AmbientLight";
9
9
  import { PhysicsScene } from "./physics/PhysicsScene";
10
+ import { PostProcessManager } from "./postProcess";
10
11
  import { ShaderData } from "./shader/ShaderData";
11
12
  import { ShadowCascadesMode } from "./shadow/enum/ShadowCascadesMode";
12
13
  import { ShadowResolution } from "./shadow/enum/ShadowResolution";
@@ -16,6 +17,7 @@ import { ShadowResolution } from "./shadow/enum/ShadowResolution";
16
17
  export declare class Scene extends EngineObject {
17
18
  private static _fogColorProperty;
18
19
  private static _fogParamsProperty;
20
+ private static _prefilterdDFGProperty;
19
21
  /** Scene name. */
20
22
  name: string;
21
23
  /** Physics. */
@@ -35,6 +37,8 @@ export declare class Scene extends EngineObject {
35
37
  * @remarks Value 0 is used for no shadow fade.
36
38
  */
37
39
  shadowFadeBorder: number;
40
+ /** Post process manager. */
41
+ readonly postProcessManager: PostProcessManager;
38
42
  private _background;
39
43
  private _shaderData;
40
44
  private _shadowCascades;
@@ -166,7 +170,6 @@ export declare class Scene extends EngineObject {
166
170
  * @returns Entity
167
171
  */
168
172
  findEntityByPath(path: string): Entity | null;
169
- private _addToRootEntityList;
170
173
  private _computeLinearFogParams;
171
174
  private _computeExponentialFogParams;
172
175
  private _getSunlight;