@galacean/engine-core 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/dist/main.js +15448 -13299
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +15448 -13299
  4. package/dist/module.js +15434 -13295
  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 +17 -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 +32 -10
  20. package/types/Component.d.ts +0 -8
  21. package/types/ComponentsDependencies.d.ts +17 -9
  22. package/types/ComponentsManager.d.ts +3 -2
  23. package/types/DisorderedArray.d.ts +4 -3
  24. package/types/Engine.d.ts +35 -43
  25. package/types/Entity.d.ts +2 -2
  26. package/types/RenderPipeline/Basic2DBatcher.d.ts +6 -7
  27. package/types/RenderPipeline/BasicRenderPipeline.d.ts +8 -6
  28. package/types/RenderPipeline/ClassPool.d.ts +3 -1
  29. package/types/RenderPipeline/CullingResults.d.ts +1 -0
  30. package/types/RenderPipeline/DepthOnlyPass.d.ts +1 -0
  31. package/types/RenderPipeline/IPoolElement.d.ts +3 -0
  32. package/types/RenderPipeline/MeshRenderData.d.ts +17 -0
  33. package/types/RenderPipeline/MeshRenderElement.d.ts +3 -1
  34. package/types/RenderPipeline/PipelinePass.d.ts +16 -0
  35. package/types/RenderPipeline/PipelineUtils.d.ts +1 -0
  36. package/types/RenderPipeline/RenderData.d.ts +7 -0
  37. package/types/RenderPipeline/RenderElement.d.ts +8 -8
  38. package/types/RenderPipeline/RenderElementX.d.ts +12 -0
  39. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  40. package/types/RenderPipeline/RenderQueue.d.ts +3 -5
  41. package/types/RenderPipeline/SpriteElement.d.ts +3 -1
  42. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +4 -3
  43. package/types/RenderPipeline/SpriteMaskElement.d.ts +3 -1
  44. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +12 -0
  45. package/types/RenderPipeline/SpriteRenderData.d.ts +14 -0
  46. package/types/RenderPipeline/TextRenderData.d.ts +8 -0
  47. package/types/RenderPipeline/TextRenderElement.d.ts +3 -1
  48. package/types/RenderPipeline/enums/PipelineStage.d.ts +9 -0
  49. package/types/RenderPipeline/index.d.ts +4 -0
  50. package/types/Renderer.d.ts +10 -15
  51. package/types/SafeLoopArray.d.ts +37 -0
  52. package/types/Scene.d.ts +13 -5
  53. package/types/Script.d.ts +18 -15
  54. package/types/Ticker.d.ts +30 -0
  55. package/types/Transform.d.ts +10 -12
  56. package/types/Utils.d.ts +28 -0
  57. package/types/animation/AnimationClip.d.ts +2 -1
  58. package/types/animation/Animator.d.ts +7 -4
  59. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +0 -1
  60. package/types/animation/animationCurve/AnimationRectCurve.d.ts +8 -0
  61. package/types/animation/animationCurve/AnimationRefCurve.d.ts +8 -0
  62. package/types/animation/enums/LayerState.d.ts +3 -1
  63. package/types/animation/internal/AnimationCurveLayerOwner.d.ts +1 -0
  64. package/types/animation/internal/AnimationCurveOwnerLayerData.d.ts +1 -0
  65. package/types/asset/AssetType.d.ts +16 -16
  66. package/types/asset/ContentRestorer.d.ts +17 -0
  67. package/types/asset/GraphicsResource.d.ts +5 -0
  68. package/types/asset/IReferable.d.ts +2 -0
  69. package/types/asset/LoadItem.d.ts +16 -9
  70. package/types/asset/ReferResource.d.ts +22 -0
  71. package/types/asset/ResourceManager.d.ts +17 -9
  72. package/types/asset/request.d.ts +7 -3
  73. package/types/base/Constant.d.ts +2 -1
  74. package/types/base/EngineObject.d.ts +1 -0
  75. package/types/base/EventDispatcher.d.ts +2 -15
  76. package/types/base/Time.d.ts +27 -24
  77. package/types/base/index.d.ts +0 -2
  78. package/types/enums/ActiveChangeFlag.d.ts +6 -0
  79. package/types/enums/DepthTextureMode.d.ts +7 -0
  80. package/types/env-probe/CubeProbe.d.ts +0 -7
  81. package/types/env-probe/Probe.d.ts +0 -6
  82. package/types/graphic/Buffer.d.ts +5 -12
  83. package/types/graphic/Mesh.d.ts +5 -16
  84. package/types/graphic/Primitive.d.ts +1 -0
  85. package/types/graphic/PrimitiveVertexBinding.d.ts +1 -0
  86. package/types/graphic/SubMesh.d.ts +3 -1
  87. package/types/graphic/SubPrimitive.d.ts +9 -0
  88. package/types/index.d.ts +8 -7
  89. package/types/input/InputManager.d.ts +1 -1
  90. package/types/input/interface/IInput.d.ts +1 -1
  91. package/types/lighting/AmbientLight.d.ts +4 -1
  92. package/types/lighting/DirectLight.d.ts +0 -1
  93. package/types/lighting/Light.d.ts +0 -1
  94. package/types/lighting/LightManager.d.ts +1 -0
  95. package/types/lighting/SpotLight.d.ts +0 -1
  96. package/types/material/BaseMaterial.d.ts +8 -10
  97. package/types/material/BlinnPhongMaterial.d.ts +0 -3
  98. package/types/material/Material.d.ts +8 -8
  99. package/types/material/PBRMaterial.d.ts +12 -3
  100. package/types/material/PBRSpecularMaterial.d.ts +1 -1
  101. package/types/material/UnlitMaterial.d.ts +1 -1
  102. package/types/mesh/BlendShape.d.ts +1 -1
  103. package/types/mesh/BlendShapeFrame.d.ts +28 -6
  104. package/types/mesh/MeshRenderer.d.ts +7 -12
  105. package/types/mesh/ModelMesh.d.ts +5 -5
  106. package/types/mesh/PrimitiveMesh.d.ts +4 -2
  107. package/types/mesh/PrimitiveMeshRestorer.d.ts +1 -0
  108. package/types/mesh/SkinnedMeshRenderer.d.ts +0 -14
  109. package/types/particle/ParticleBufferUtils.d.ts +1 -0
  110. package/types/particle/ParticleData.d.ts +1 -0
  111. package/types/particle/ParticleGenerator.d.ts +72 -0
  112. package/types/particle/ParticleMaterial.d.ts +28 -0
  113. package/types/particle/ParticleMesh.d.ts +289 -0
  114. package/types/particle/ParticleRenderer.d.ts +2 -2
  115. package/types/particle/ParticleShaderDeclaration.d.ts +1 -0
  116. package/types/particle/ParticleShaderMacro.d.ts +1 -0
  117. package/types/particle/ParticleShaderProperty.d.ts +1 -0
  118. package/types/particle/ParticleSystem.d.ts +41 -0
  119. package/types/particle/ParticleVertexElements.d.ts +1 -0
  120. package/types/particle/ParticleVertexUtils.d.ts +1 -0
  121. package/types/particle/enum/ParticleAnimationRowMode.d.ts +9 -0
  122. package/types/particle/enum/ParticleAnimationType.d.ts +9 -0
  123. package/types/particle/enum/ParticleCurveMode.d.ts +13 -0
  124. package/types/particle/enum/ParticleGradientMode.d.ts +13 -0
  125. package/types/particle/enum/ParticleRenderMode.d.ts +17 -0
  126. package/types/particle/enum/ParticleScaleMode.d.ts +11 -0
  127. package/types/particle/enum/ParticleShapeMultiModeValue.d.ts +9 -0
  128. package/types/particle/enum/ParticleShapeType.d.ts +15 -0
  129. package/types/particle/enum/ParticleSimulationSpace.d.ts +9 -0
  130. package/types/particle/enum/index.d.ts +9 -0
  131. package/types/particle/enums/ParticleCurveMode.d.ts +9 -0
  132. package/types/particle/enums/ParticleGradientMode.d.ts +9 -0
  133. package/types/particle/enums/ParticleRandomSubSeeds.d.ts +1 -0
  134. package/types/particle/enums/ParticleRenderMode.d.ts +17 -0
  135. package/types/particle/enums/ParticleScaleMode.d.ts +11 -0
  136. package/types/particle/enums/ParticleSimulationSpace.d.ts +9 -0
  137. package/types/particle/enums/ParticleStopMode.d.ts +6 -0
  138. package/types/particle/enums/attributes/BillboardParticleVertexAttribute.d.ts +1 -0
  139. package/types/particle/enums/attributes/MeshParticleVertexAttribute.d.ts +5 -0
  140. package/types/particle/enums/attributes/ParticleInstanceVertexAttribute.d.ts +1 -0
  141. package/types/particle/module/Burst.d.ts +38 -0
  142. package/types/particle/module/ColorGradient.d.ts +75 -0
  143. package/types/particle/module/ColorOverLifetimeModule.d.ts +20 -0
  144. package/types/particle/module/EmissionModule.d.ts +63 -0
  145. package/types/particle/module/FrameOverTime.d.ts +73 -0
  146. package/types/particle/module/ParticleCurve.d.ts +37 -0
  147. package/types/particle/module/RotationOverLifetimeModule.d.ts +21 -0
  148. package/types/particle/module/RotationVelocityGradient.d.ts +184 -0
  149. package/types/particle/module/SizeGradient.d.ts +151 -0
  150. package/types/particle/module/SizeOverLifetimeModule.d.ts +21 -0
  151. package/types/particle/module/StartFrame.d.ts +46 -0
  152. package/types/particle/module/TextureSheetAnimationModule.d.ts +37 -0
  153. package/types/particle/module/VelocityGradient.d.ts +110 -0
  154. package/types/particle/module/VelocityOverLifetimeModule.d.ts +22 -0
  155. package/types/particle/module/index.d.ts +15 -0
  156. package/types/particle/module/shape/BaseShape.d.ts +26 -0
  157. package/types/particle/module/shape/BoxShape.d.ts +20 -0
  158. package/types/particle/module/shape/CircleShape.d.ts +27 -0
  159. package/types/particle/module/shape/ConeShape.d.ts +35 -0
  160. package/types/particle/module/shape/HemisphereShape.d.ts +23 -0
  161. package/types/particle/module/shape/ShapeUtils.d.ts +1 -0
  162. package/types/particle/module/shape/SphereShape.d.ts +23 -0
  163. package/types/particle/module/shape/index.d.ts +5 -0
  164. package/types/particle/modules/Burst.d.ts +14 -0
  165. package/types/particle/modules/ColorOverLifetimeModule.d.ts +20 -0
  166. package/types/particle/modules/EmissionModule.d.ts +45 -0
  167. package/types/particle/modules/MainModule.d.ts +70 -0
  168. package/types/particle/modules/ParticleCompositeCurve.d.ts +56 -0
  169. package/types/particle/modules/ParticleCompositeGradient.d.ts +55 -0
  170. package/types/particle/modules/ParticleCurve.d.ts +56 -0
  171. package/types/particle/modules/ParticleGeneratorModule.d.ts +12 -0
  172. package/types/particle/modules/ParticleGradient.d.ts +94 -0
  173. package/types/particle/modules/RotationOverLifetimeModule.d.ts +34 -0
  174. package/types/particle/modules/ShapeModule.d.ts +9 -0
  175. package/types/particle/modules/SizeOverLifetimeModule.d.ts +34 -0
  176. package/types/particle/modules/TextureSheetAnimationModule.d.ts +38 -0
  177. package/types/particle/modules/VelocityOverLifetimeModule.d.ts +34 -0
  178. package/types/particle/modules/shape/BaseShape.d.ts +12 -0
  179. package/types/particle/modules/shape/BoxShape.d.ts +11 -0
  180. package/types/particle/modules/shape/CircleShape.d.ts +17 -0
  181. package/types/particle/modules/shape/ConeShape.d.ts +28 -0
  182. package/types/particle/modules/shape/HemisphereShape.d.ts +9 -0
  183. package/types/particle/modules/shape/ShapeUtils.d.ts +1 -0
  184. package/types/particle/modules/shape/SphereShape.d.ts +9 -0
  185. package/types/particle/modules/shape/enums/ParticleShapeArcMode.d.ts +9 -0
  186. package/types/particle/modules/shape/enums/ParticleShapeMultiModeValue.d.ts +9 -0
  187. package/types/particle/modules/shape/enums/ParticleShapeType.d.ts +15 -0
  188. package/types/particle/modules/shape/index.d.ts +6 -0
  189. package/types/particle/moudules/Burst.d.ts +25 -0
  190. package/types/particle/moudules/Emission.d.ts +47 -0
  191. package/types/particle/moudules/EmissionModule.d.ts +49 -0
  192. package/types/particle/moudules/MainModule.d.ts +59 -0
  193. package/types/particle/moudules/ParticleCurve.d.ts +27 -0
  194. package/types/particle/moudules/ParticleGradient.d.ts +28 -0
  195. package/types/particle/moudules/ShapeModule.d.ts +7 -0
  196. package/types/particle/moudules/shape/BaseShape.d.ts +28 -0
  197. package/types/particle/moudules/shape/BoxShape.d.ts +20 -0
  198. package/types/particle/moudules/shape/CircleShape.d.ts +27 -0
  199. package/types/particle/moudules/shape/ConeShape.d.ts +35 -0
  200. package/types/particle/moudules/shape/HemisphereShape.d.ts +23 -0
  201. package/types/particle/moudules/shape/ShapeUtils.d.ts +1 -0
  202. package/types/particle/moudules/shape/SphereShape.d.ts +23 -0
  203. package/types/particle/moudules/shape/enums/ParticleShapeMultiModeValue.d.ts +9 -0
  204. package/types/particle/moudules/shape/enums/ParticleShapeType.d.ts +15 -0
  205. package/types/particle/moudules/shape/index.d.ts +5 -0
  206. package/types/physics/CharacterController.d.ts +0 -2
  207. package/types/physics/Collider.d.ts +1 -1
  208. package/types/physics/Collision.d.ts +4 -0
  209. package/types/physics/PhysicsManager.d.ts +5 -22
  210. package/types/physics/PhysicsScene.d.ts +79 -0
  211. package/types/physics/joint/HingeJoint.d.ts +2 -2
  212. package/types/physics/joint/Joint.d.ts +2 -2
  213. package/types/physics/joint/SpringJoint.d.ts +1 -1
  214. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +8 -0
  215. package/types/renderingHardwareInterface/index.d.ts +1 -0
  216. package/types/shader/Shader.d.ts +32 -23
  217. package/types/shader/ShaderData.d.ts +24 -24
  218. package/types/shader/ShaderMacro.d.ts +16 -0
  219. package/types/shader/ShaderPart.d.ts +41 -0
  220. package/types/shader/ShaderPass.d.ts +9 -2
  221. package/types/shader/ShaderProperty.d.ts +7 -0
  222. package/types/shader/ShaderTagKey.d.ts +16 -0
  223. package/types/shader/SubShader.d.ts +19 -0
  224. package/types/shader/enums/RenderStateElementKey.d.ts +60 -0
  225. package/types/shader/index.d.ts +5 -1
  226. package/types/shader/state/index.d.ts +6 -0
  227. package/types/shaderlib/particle/index.d.ts +14 -0
  228. package/types/shadow/CascadedShadowCasterPass.d.ts +1 -1
  229. package/types/shadow/PipelinePass.d.ts +16 -0
  230. package/types/sky/Sky.d.ts +12 -4
  231. package/types/sky/SkyBoxMaterial.d.ts +27 -9
  232. package/types/sky/SkyProceduralMaterial.d.ts +72 -0
  233. package/types/sky/index.d.ts +1 -0
  234. package/types/texture/RenderTarget.d.ts +2 -6
  235. package/types/texture/Texture.d.ts +8 -6
  236. package/types/texture/Texture2D.d.ts +3 -1
  237. package/types/texture/enums/TextureUsage.d.ts +9 -0
  238. package/types/texture/index.d.ts +1 -0
  239. package/types/trail/TrailRenderer.d.ts +0 -5
  240. package/types/utils/BoolUpdateFlag.d.ts +12 -0
  241. package/types/utils/DisorderedArray.d.ts +18 -0
  242. package/types/utils/SafeLoopArray.d.ts +41 -0
  243. package/types/utils/UpdateFlag.d.ts +20 -0
  244. package/types/utils/UpdateFlagManager.d.ts +1 -0
  245. package/types/utils/Utils.d.ts +31 -0
  246. package/types/xr/XRManager.d.ts +31 -0
  247. package/types/xr/component/XRPoseDriver.d.ts +10 -0
  248. package/types/xr/data/XRCamera.d.ts +6 -0
  249. package/types/xr/data/XRDevice.d.ts +9 -0
  250. package/types/xr/data/XRHandle.d.ts +10 -0
  251. package/types/xr/enum/EnumXRButton.d.ts +5 -0
  252. package/types/xr/enum/EnumXRDevicePhase.d.ts +4 -0
  253. package/types/xr/enum/EnumXRFeature.d.ts +9 -0
  254. package/types/xr/enum/EnumXRInputSource.d.ts +8 -0
  255. package/types/xr/enum/EnumXRMode.d.ts +7 -0
  256. package/types/xr/enum/EnumXRSubsystem.d.ts +4 -0
  257. package/types/xr/enum/EnumXRTrackingMode.d.ts +7 -0
  258. package/types/xr/feature/XRCameraManager.d.ts +21 -0
  259. package/types/xr/feature/XRFeature.d.ts +29 -0
  260. package/types/xr/feature/XRImageTrackManager.d.ts +10 -0
  261. package/types/xr/feature/XRInputManager.d.ts +16 -0
  262. package/types/xr/index.d.ts +18 -0
  263. package/types/xr/provider/XRProvider.d.ts +19 -0
  264. package/types/xr/subsystem/XRInputSubsystem.d.ts +5 -0
  265. package/types/xr/subsystem/XRSubsystem.d.ts +30 -0
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
  */
@@ -65,7 +65,7 @@ export declare class Entity extends EngineObject {
65
65
  * @param type - The type of the component
66
66
  * @returns The first component which match type
67
67
  */
68
- getComponent<T extends Component>(type: new (entity: Entity) => T): T;
68
+ getComponent<T extends Component>(type: new (entity: Entity) => T): T | null;
69
69
  /**
70
70
  * Get components which match the type.
71
71
  * @param type - The type of the component
@@ -1,19 +1,18 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { Engine } from "../Engine";
3
- import { Material } from "../material";
4
- import { SpriteElement } from "./SpriteElement";
5
- import { SpriteMaskElement } from "./SpriteMaskElement";
6
- import { TextRenderElement } from "./TextRenderElement";
3
+ import { ShaderTagKey } from "../shader/ShaderTagKey";
4
+ import { RenderElement } from "./RenderElement";
7
5
  export declare abstract class Basic2DBatcher {
6
+ protected static _disableBatchTag: ShaderTagKey;
8
7
  /** The maximum number of vertex. */
9
8
  static MAX_VERTEX_COUNT: number;
10
9
  static _canUploadSameBuffer: boolean;
11
10
  constructor(engine: Engine);
12
- drawElement(element: SpriteMaskElement | SpriteElement | TextRenderElement, camera: Camera, replaceMaterial: Material): void;
13
- private _drawSubElement;
14
- flush(camera: Camera, replaceMaterial: Material): void;
11
+ drawElement(element: RenderElement, camera: Camera): void;
12
+ flush(camera: Camera): void;
15
13
  clear(): void;
16
14
  destroy(): void;
15
+ private _drawSubElement;
17
16
  private _createMesh;
18
17
  private _updateData;
19
18
  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 { RenderElement } from "./RenderElement";
6
+ import { RenderData } from "./RenderData";
7
7
  import { RenderPass } from "./RenderPass";
8
8
  /**
9
9
  * Basic render pipeline.
10
10
  */
11
11
  export declare class BasicRenderPipeline {
12
- private static _tempVector0;
13
- private static _tempVector1;
12
+ private static _shadowCasterPipelineStageTagValue;
13
+ private static _forwardPipelineStageTagValue;
14
14
  private _camera;
15
15
  private _defaultPass;
16
16
  private _renderPassArray;
@@ -57,10 +57,12 @@ export declare class BasicRenderPipeline {
57
57
  render(context: RenderContext, cubeFace?: TextureCubeFace, mipLevel?: number): void;
58
58
  private _drawRenderPass;
59
59
  /**
60
- * Push a render element to the render queue.
61
- * @param element - Render element
60
+ * Push render data to render queue.
61
+ * @param context - Render context
62
+ * @param data - Render data
62
63
  */
63
- pushPrimitive(element: RenderElement): void;
64
+ pushRenderData(context: RenderContext, data: RenderData): void;
65
+ private pushRenderDataWihShader;
64
66
  private _drawBackgroundTexture;
65
67
  private _callRender;
66
68
  }
@@ -1,7 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
1
2
  /**
2
3
  * Class pool utils.
3
4
  */
4
- export declare class ClassPool<T> {
5
+ export declare class ClassPool<T extends IPoolElement> {
5
6
  private _elementPoolIndex;
6
7
  private _elementPool;
7
8
  private _type;
@@ -14,4 +15,5 @@ export declare class ClassPool<T> {
14
15
  * Reset pool.
15
16
  */
16
17
  resetPool(): void;
18
+ garbageCollection(): void;
17
19
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export interface IPoolElement {
2
+ dispose?(): void;
3
+ }
@@ -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 { IPoolElement } from "./IPoolElement";
6
+ import { RenderData } from "./RenderData";
7
+ /**
8
+ * Render element.
9
+ */
10
+ export declare class MeshRenderData extends RenderData implements IPoolElement {
11
+ /** Mesh. */
12
+ mesh: Mesh;
13
+ /** Sub mesh. */
14
+ subMesh: SubMesh;
15
+ set(component: Renderer, material: Material, mesh: Mesh, subMesh: SubMesh): void;
16
+ dispose(): void;
17
+ }
@@ -4,14 +4,16 @@ import { Material } from "../material/Material";
4
4
  import { Renderer } from "../Renderer";
5
5
  import { ShaderPass } from "../shader/ShaderPass";
6
6
  import { RenderState } from "../shader/state/RenderState";
7
+ import { IPoolElement } from "./IPoolElement";
7
8
  import { RenderElement } from "./RenderElement";
8
9
  /**
9
10
  * Render element.
10
11
  */
11
- export declare class MeshRenderElement extends RenderElement {
12
+ export declare class MeshRenderElement extends RenderElement implements IPoolElement {
12
13
  /** Mesh. */
13
14
  mesh: Mesh;
14
15
  /** Sub mesh. */
15
16
  subMesh: SubMesh;
16
17
  setValue(component: Renderer, mesh: Mesh, subMesh: SubMesh, material: Material, renderState: RenderState, shaderPass: ShaderPass): void;
18
+ dispose(): void;
17
19
  }
@@ -0,0 +1,16 @@
1
+ import { Engine } from "../Engine";
2
+ import { CullingResults } from "../RenderPipeline/CullingResults";
3
+ import { RenderContext } from "../RenderPipeline/RenderContext";
4
+ /**
5
+ * PipelinePass is a base class for all pipeline passes.
6
+ */
7
+ export declare abstract class PipelinePass {
8
+ protected _engine: Engine;
9
+ constructor(engine: Engine);
10
+ /**
11
+ * Called before rendering a camera, override this method to configure the camera If you need to configure the camera clear flag or render target.
12
+ * @param context - Rendering context
13
+ * @param cullingResults - Culling results
14
+ */
15
+ abstract onRender(context: RenderContext, cullingResults: CullingResults): void;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Material } from "../material";
2
+ import { Renderer } from "../Renderer";
3
+ export declare class RenderData {
4
+ component: Renderer;
5
+ material: Material;
6
+ multiRenderData: boolean;
7
+ }
@@ -1,11 +1,11 @@
1
- import { Material } from "../material/Material";
2
- import { Renderer } from "../Renderer";
3
- import { ShaderPass } from "../shader";
1
+ import { ShaderPass } from "../shader/ShaderPass";
4
2
  import { RenderState } from "../shader/state/RenderState";
5
- export declare class RenderElement {
6
- component: Renderer;
7
- material: Material;
8
- multiRenderData: boolean;
9
- renderState: RenderState;
3
+ import { IPoolElement } from "./IPoolElement";
4
+ import { RenderData } from "./RenderData";
5
+ export declare class RenderElement implements IPoolElement {
6
+ data: RenderData;
10
7
  shaderPass: ShaderPass;
8
+ renderState: RenderState;
9
+ set(data: RenderData, shaderPass: ShaderPass, renderState: RenderState): void;
10
+ dispose(): void;
11
11
  }
@@ -0,0 +1,12 @@
1
+ import { Renderer } from "../Renderer";
2
+ import { Primitive } from "../graphic/Primitive";
3
+ import { Material } from "../material/Material";
4
+ import { ShaderPass } from "../shader/ShaderPass";
5
+ import { IPoolElement } from "./IPoolElement";
6
+ export declare class RenderElementX implements IPoolElement {
7
+ shaderPasses: ReadonlyArray<ShaderPass>;
8
+ component: Renderer;
9
+ material: Material;
10
+ primitive: Primitive;
11
+ dispose(): void;
12
+ }
@@ -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,21 +1,19 @@
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";
6
4
  import { RenderElement } from "./RenderElement";
7
5
  /**
8
6
  * Render queue.
9
7
  */
10
8
  export declare class RenderQueue {
11
- readonly items: RenderElement[];
9
+ readonly elements: RenderElement[];
12
10
  private _spriteBatcher;
13
11
  constructor(engine: Engine);
14
12
  /**
15
13
  * Push a render element.
16
14
  */
17
- pushPrimitive(element: RenderElement): void;
18
- render(camera: Camera, replaceMaterial: Material, mask: Layer, customShader: Shader): void;
15
+ pushRenderElement(element: RenderElement): void;
16
+ render(camera: Camera, mask: Layer): void;
19
17
  /**
20
18
  * Clear collection.
21
19
  */
@@ -4,10 +4,12 @@ import { Renderer } from "../Renderer";
4
4
  import { ShaderPass } from "../shader";
5
5
  import { RenderState } from "../shader/state/RenderState";
6
6
  import { Texture2D } from "../texture";
7
+ import { IPoolElement } from "./IPoolElement";
7
8
  import { RenderElement } from "./RenderElement";
8
- export declare class SpriteElement extends RenderElement {
9
+ export declare class SpriteElement extends RenderElement implements IPoolElement {
9
10
  renderData: RenderData2D;
10
11
  texture: Texture2D;
11
12
  constructor();
12
13
  setValue(component: Renderer, renderDate: RenderData2D, material: Material, texture: Texture2D, renderState: RenderState, shaderPass: ShaderPass): void;
14
+ dispose(): void;
13
15
  }
@@ -1,10 +1,11 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { VertexElement } from "../graphic/VertexElement";
3
3
  import { Basic2DBatcher } from "./Basic2DBatcher";
4
- import { SpriteMaskElement } from "./SpriteMaskElement";
4
+ import { RenderElement } from "./RenderElement";
5
+ import { SpriteMaskRenderData } from "./SpriteMaskRenderData";
5
6
  export declare class SpriteMaskBatcher extends Basic2DBatcher {
6
7
  createVertexElements(vertexElements: VertexElement[]): number;
7
- canBatch(preElement: SpriteMaskElement, curElement: SpriteMaskElement): boolean;
8
- updateVertices(element: SpriteMaskElement, vertices: Float32Array, vertexIndex: number): number;
8
+ canBatch(preElement: RenderElement, curElement: RenderElement): boolean;
9
+ updateVertices(element: SpriteMaskRenderData, vertices: Float32Array, vertexIndex: number): number;
9
10
  drawBatches(camera: Camera): void;
10
11
  }
@@ -1,10 +1,12 @@
1
1
  import { RenderData2D } from "../2d/data/RenderData2D";
2
2
  import { Material } from "../material/Material";
3
3
  import { Renderer } from "../Renderer";
4
+ import { IPoolElement } from "./IPoolElement";
4
5
  import { RenderElement } from "./RenderElement";
5
- export declare class SpriteMaskElement extends RenderElement {
6
+ export declare class SpriteMaskElement extends RenderElement implements IPoolElement {
6
7
  renderData: RenderData2D;
7
8
  isAdd: boolean;
8
9
  constructor();
9
10
  setValue(component: Renderer, renderData: RenderData2D, material: Material): void;
11
+ dispose(): void;
10
12
  }
@@ -0,0 +1,12 @@
1
+ import { VertexData2D } from "../2d/data/VertexData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { IPoolElement } from "./IPoolElement";
5
+ import { RenderData } from "./RenderData";
6
+ export declare class SpriteMaskRenderData extends RenderData implements IPoolElement {
7
+ isAdd: boolean;
8
+ verticesData: VertexData2D;
9
+ constructor();
10
+ set(component: Renderer, material: Material, verticesData: VertexData2D): void;
11
+ dispose(): void;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { VertexData2D } from "../2d/data/VertexData2D";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { Texture2D } from "../texture";
5
+ import { IPoolElement } from "./IPoolElement";
6
+ import { RenderData } from "./RenderData";
7
+ export declare class SpriteRenderData extends RenderData implements IPoolElement {
8
+ verticesData: VertexData2D;
9
+ texture: Texture2D;
10
+ dataIndex: number;
11
+ constructor();
12
+ set(component: Renderer, material: Material, verticesData: VertexData2D, texture: Texture2D, dataIndex?: number): void;
13
+ dispose(): void;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
2
+ import { RenderData } from "./RenderData";
3
+ import { SpriteRenderData } from "./SpriteRenderData";
4
+ export declare class TextRenderData extends RenderData implements IPoolElement {
5
+ charsData: SpriteRenderData[];
6
+ constructor();
7
+ dispose(): void;
8
+ }
@@ -1,6 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
1
2
  import { RenderElement } from "./RenderElement";
2
3
  import { SpriteElement } from "./SpriteElement";
3
- export declare class TextRenderElement extends RenderElement {
4
+ export declare class TextRenderElement extends RenderElement implements IPoolElement {
4
5
  charElements: SpriteElement[];
5
6
  constructor();
7
+ dispose(): void;
6
8
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Pipeline stage.
3
+ */
4
+ export declare enum PipelineStage {
5
+ /** Shadow caster stage. */
6
+ ShadowCaster = "ShadowCaster",
7
+ /** Forward shading stage. */
8
+ Forward = "Forward"
9
+ }
@@ -0,0 +1,4 @@
1
+ export { BasicRenderPipeline } from "./BasicRenderPipeline";
2
+ export { PipelineStage } from "./enums/PipelineStage";
3
+ export { RenderPass } from "./RenderPass";
4
+ export { RenderQueue } from "./RenderQueue";
@@ -1,14 +1,13 @@
1
- import { BoundingBox, Matrix, Vector4 } from "@galacean/engine-math";
1
+ import { BoundingBox, Vector4 } from "@galacean/engine-math";
2
2
  import { Component } from "./Component";
3
- import { RenderContext } from "./RenderPipeline/RenderContext";
4
- import { TransformModifyFlags } from "./Transform";
5
- import { Material } from "./material/Material";
3
+ import { ICustomClone } from "./clone/ComponentCloner";
4
+ import { Material } from "./material";
6
5
  import { ShaderData } from "./shader/ShaderData";
7
6
  /**
8
7
  * Basis for all renderers.
9
- * @decorator `@dependentComponents(Transform)`
8
+ * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
10
9
  */
11
- export declare class Renderer extends Component {
10
+ export declare class Renderer extends Component implements ICustomClone {
12
11
  private static _tempVector0;
13
12
  private static _receiveShadowMacro;
14
13
  private static _localMatrixProperty;
@@ -18,12 +17,11 @@ export declare class Renderer extends Component {
18
17
  private static _mvInvMatrixProperty;
19
18
  private static _normalMatrixProperty;
20
19
  private static _rendererLayerProperty;
21
- /** ShaderData related to renderer. */
22
- readonly shaderData: ShaderData;
23
20
  _renderFrameCount: number;
24
21
  protected _overrideUpdate: boolean;
25
22
  protected _materials: Material[];
26
23
  protected _dirtyUpdateFlag: number;
24
+ private _shaderData;
27
25
  private _mvMatrix;
28
26
  private _mvpMatrix;
29
27
  private _mvInvMatrix;
@@ -32,6 +30,10 @@ export declare class Renderer extends Component {
32
30
  private _priority;
33
31
  private _receiveShadows;
34
32
  protected _rendererLayer: Vector4;
33
+ /**
34
+ * ShaderData related to renderer.
35
+ */
36
+ get shaderData(): ShaderData;
35
37
  /**
36
38
  * Whether it is culled in the current frame and does not participate in rendering.
37
39
  */
@@ -108,12 +110,5 @@ export declare class Renderer extends Component {
108
110
  */
109
111
  setMaterials(materials: Material[]): void;
110
112
  update(deltaTime: number): void;
111
- protected _updateShaderData(context: RenderContext): void;
112
- protected _updateTransformShaderData(context: RenderContext, worldMatrix: Matrix): void;
113
- protected _registerEntityTransformListener(): void;
114
- protected _updateBounds(worldBounds: BoundingBox): void;
115
- protected _render(context: RenderContext): void;
116
- private _createInstanceMaterial;
117
113
  private _setMaterial;
118
- protected _onTransformChanged(type: TransformModifyFlags): void;
119
114
  }
@@ -0,0 +1,37 @@
1
+ export declare class SafeLoopArray<T> {
2
+ private _array;
3
+ private _loopArray;
4
+ private _loopArrayDirty;
5
+ /**
6
+ * Get the length of the array.
7
+ */
8
+ get length(): number;
9
+ /**
10
+ * Push item to the array.
11
+ * @param item - The item which want to be pushed
12
+ */
13
+ push(item: T): void;
14
+ /**
15
+ * Splice the array.
16
+ * @param index - The index of the array
17
+ * @param deleteCount - The count of the array which want to be deleted
18
+ * @param item - The item which want to be added
19
+ */
20
+ splice(index: number, deleteCount: number, item?: T): void;
21
+ /**
22
+ * The index of the item.
23
+ * @param item - The item which want to get the index
24
+ * @returns Index of the item
25
+ */
26
+ indexOf(item: T): number;
27
+ /**
28
+ * Get the array.
29
+ * @returns The array
30
+ */
31
+ getArray(): ReadonlyArray<T>;
32
+ /**
33
+ * Get the array use for loop.
34
+ * @returns The array use for loop
35
+ */
36
+ getLoopArray(): ReadonlyArray<T>;
37
+ }
package/types/Scene.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Color, Vector3 } from "@galacean/engine-math";
2
2
  import { Background } from "./Background";
3
- import { EngineObject } from "./base";
4
3
  import { Engine } from "./Engine";
5
4
  import { Entity } from "./Entity";
5
+ import { EngineObject } from "./base";
6
6
  import { FogMode } from "./enums/FogMode";
7
7
  import { AmbientLight } from "./lighting/AmbientLight";
8
8
  import { ShaderData } from "./shader/ShaderData";
@@ -14,12 +14,10 @@ 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;
17
19
  /** Scene name. */
18
20
  name: string;
19
- /** The background of the scene. */
20
- readonly background: Background;
21
- /** Scene-related shader data. */
22
- readonly shaderData: ShaderData;
23
21
  /** If cast shadows. */
24
22
  castShadows: boolean;
25
23
  /** The resolution of the shadow maps. */
@@ -30,6 +28,8 @@ export declare class Scene extends EngineObject {
30
28
  shadowFourCascadeSplits: Vector3;
31
29
  /** Max Shadow distance. */
32
30
  shadowDistance: number;
31
+ private _background;
32
+ private _shaderData;
33
33
  private _shadowCascades;
34
34
  private _ambientLight;
35
35
  private _fogMode;
@@ -38,6 +38,14 @@ export declare class Scene extends EngineObject {
38
38
  private _fogEnd;
39
39
  private _fogDensity;
40
40
  private _fogParams;
41
+ /**
42
+ * Scene-related shader data.
43
+ */
44
+ get shaderData(): ShaderData;
45
+ /**
46
+ * The background of the scene.
47
+ */
48
+ get background(): Background;
41
49
  /**
42
50
  * Number of cascades to use for directional light shadows.
43
51
  */
package/types/Script.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Camera } from "./Camera";
2
2
  import { Component } from "./Component";
3
3
  import { Pointer } from "./input";
4
4
  import { ColliderShape } from "./physics";
5
+ import { Collision } from "./physics/Collision";
5
6
  /**
6
7
  * Script class, used for logic writing.
7
8
  */
@@ -22,12 +23,12 @@ export declare class Script extends Component {
22
23
  onStart(): void;
23
24
  /**
24
25
  * The main loop, called frame by frame.
25
- * @param deltaTime - The deltaTime when the script update.
26
+ * @param deltaTime - The delta time since last frame in seconds
26
27
  */
27
28
  onUpdate(deltaTime: number): void;
28
29
  /**
29
30
  * Called after the onUpdate finished, called frame by frame.
30
- * @param deltaTime - The deltaTime when the script update.
31
+ * @param deltaTime - The delta time since last frame in seconds
31
32
  */
32
33
  onLateUpdate(deltaTime: number): void;
33
34
  /**
@@ -45,37 +46,39 @@ export declare class Script extends Component {
45
46
  */
46
47
  onPhysicsUpdate(): void;
47
48
  /**
48
- * Called when the collision enter.
49
+ * Called when the trigger enter.
49
50
  * @param other - ColliderShape
50
51
  */
51
52
  onTriggerEnter(other: ColliderShape): void;
52
53
  /**
53
- * Called when the collision stay.
54
- * @remarks onTriggerStay is called every frame while the collision stay.
54
+ * Called when the trigger exit.
55
55
  * @param other - ColliderShape
56
56
  */
57
57
  onTriggerExit(other: ColliderShape): void;
58
58
  /**
59
- * Called when the collision exit.
59
+ * Called when the trigger stay.
60
+ * @remarks onTriggerStay is called every frame while the trigger stay.
60
61
  * @param other - ColliderShape
61
62
  */
62
63
  onTriggerStay(other: ColliderShape): void;
63
64
  /**
64
65
  * Called when the collision enter.
65
- * @param other - ColliderShape
66
+ * @param other - The Collision data associated with this collision event
67
+ * @remarks The Collision data will be invalid after this call, you should copy the data if needed.
66
68
  */
67
- onCollisionEnter(other: ColliderShape): void;
69
+ onCollisionEnter(other: Collision): void;
68
70
  /**
69
- * Called when the collision stay.
70
- * @remarks onTriggerStay is called every frame while the collision stay.
71
- * @param other - ColliderShape
71
+ * Called when the collision exit.
72
+ * @param other - The Collision data associated with this collision event
73
+ * @remarks The Collision data will be invalid after this call, you should copy the data if needed.
72
74
  */
73
- onCollisionExit(other: ColliderShape): void;
75
+ onCollisionExit(other: Collision): void;
74
76
  /**
75
- * Called when the collision exit.
76
- * @param other - ColliderShape
77
+ * Called when the collision stay.
78
+ * @param other - The Collision data associated with this collision event
79
+ * @remarks The Collision data will be invalid after this call, you should copy the data if needed.
77
80
  */
78
- onCollisionStay(other: ColliderShape): void;
81
+ onCollisionStay(other: Collision): void;
79
82
  /**
80
83
  * Called when the pointer is down while over the ColliderShape.
81
84
  * @param pointer - The pointer that triggered
@@ -0,0 +1,30 @@
1
+ export declare class Ticker {
2
+ private _vSyncCount;
3
+ private _vSyncCounter;
4
+ private _requestId;
5
+ private _animationLoop;
6
+ private _requestAnimationFrame;
7
+ private _cancelAnimationFrame;
8
+ /**
9
+ * The number of vertical synchronization means the number of vertical blanking for one frame.
10
+ * @remarks 0 means that the vertical synchronization is turned off.
11
+ */
12
+ get vSyncCount(): number;
13
+ set vSyncCount(value: number);
14
+ get requestAnimationFrame(): (...params: any[]) => any;
15
+ set requestAnimationFrame(func: (...params: any[]) => any);
16
+ get cancelAnimationFrame(): (...params: any[]) => any;
17
+ set cancelAnimationFrame(func: (...params: any[]) => any);
18
+ get animationLoop(): (...params: any[]) => any;
19
+ set animationLoop(func: (...params: any[]) => any);
20
+ /**
21
+ * Pause the engine.
22
+ */
23
+ pause(): void;
24
+ /**
25
+ * Resume the engine.
26
+ */
27
+ resume(): void;
28
+ private _onAnimationFrame;
29
+ constructor();
30
+ }