@galacean/engine-core 2.0.0-alpha.44 → 2.0.0-alpha.46

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 (238) hide show
  1. package/dist/main.js +105 -30
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +105 -30
  4. package/dist/module.js.map +1 -1
  5. package/package.json +3 -3
  6. package/types/2d/atlas/FontAtlas.d.ts +23 -1
  7. package/types/2d/atlas/SpriteAtlas.d.ts +8 -0
  8. package/types/2d/sprite/Sprite.d.ts +27 -1
  9. package/types/2d/sprite/SpriteMask.d.ts +43 -0
  10. package/types/2d/sprite/SpriteRenderer.d.ts +29 -0
  11. package/types/2d/text/CharInfo.d.ts +20 -1
  12. package/types/2d/text/CharRenderInfo.d.ts +15 -1
  13. package/types/2d/text/Font.d.ts +10 -0
  14. package/types/2d/text/SubFont.d.ts +35 -1
  15. package/types/2d/text/TextRenderer.d.ts +53 -0
  16. package/types/2d/text/TextUtils.d.ts +89 -1
  17. package/types/Background.d.ts +17 -0
  18. package/types/BasicResources.d.ts +52 -0
  19. package/types/Camera.d.ts +71 -1
  20. package/types/Canvas.d.ts +13 -0
  21. package/types/Component.d.ts +33 -0
  22. package/types/ComponentsDependencies.d.ts +38 -1
  23. package/types/ComponentsManager.d.ts +17 -0
  24. package/types/Engine.d.ts +106 -2
  25. package/types/Entity.d.ts +91 -1
  26. package/types/Polyfill.d.ts +12 -1
  27. package/types/RenderPipeline/BasicRenderPipeline.d.ts +3 -0
  28. package/types/RenderPipeline/BatcherManager.d.ts +23 -1
  29. package/types/RenderPipeline/CullingResults.d.ts +17 -1
  30. package/types/RenderPipeline/DepthOnlyPass.d.ts +18 -1
  31. package/types/RenderPipeline/InstanceBuffer.d.ts +28 -1
  32. package/types/RenderPipeline/MaskManager.d.ts +36 -1
  33. package/types/RenderPipeline/OpaqueTexturePass.d.ts +16 -1
  34. package/types/RenderPipeline/PipelineUtils.d.ts +11 -1
  35. package/types/RenderPipeline/PrimitiveChunk.d.ts +27 -1
  36. package/types/RenderPipeline/PrimitiveChunkManager.d.ts +16 -1
  37. package/types/RenderPipeline/RenderContext.d.ts +46 -1
  38. package/types/RenderPipeline/RenderElement.d.ts +9 -0
  39. package/types/RenderPipeline/RenderQueue.d.ts +23 -1
  40. package/types/RenderPipeline/RenderTargetPool.d.ts +17 -1
  41. package/types/RenderPipeline/SubPrimitiveChunk.d.ts +14 -1
  42. package/types/RenderPipeline/VertexArea.d.ts +10 -1
  43. package/types/RenderPipeline/VertexMergeBatcher.d.ts +11 -1
  44. package/types/RenderPipeline/enums/RenderQueueMaskType.d.ts +9 -1
  45. package/types/RenderPipeline/index.d.ts +2 -0
  46. package/types/Renderer.d.ts +58 -0
  47. package/types/Scene.d.ts +28 -0
  48. package/types/SceneManager.d.ts +13 -0
  49. package/types/Script.d.ts +40 -0
  50. package/types/SystemInfo.d.ts +10 -0
  51. package/types/Transform.d.ts +19 -0
  52. package/types/UpdateFlag.d.ts +3 -0
  53. package/types/UpdateFlagManager.d.ts +41 -1
  54. package/types/Utils.d.ts +20 -0
  55. package/types/VirtualCamera.d.ts +16 -1
  56. package/types/animation/AnimationClip.d.ts +5 -0
  57. package/types/animation/AnimationClipCurveBinding.d.ts +16 -1
  58. package/types/animation/Animator.d.ts +25 -0
  59. package/types/animation/AnimatorController.d.ts +17 -0
  60. package/types/animation/AnimatorControllerLayer.d.ts +9 -0
  61. package/types/animation/AnimatorControllerParameter.d.ts +4 -0
  62. package/types/animation/AnimatorState.d.ts +44 -0
  63. package/types/animation/AnimatorStateInstance.d.ts +8 -0
  64. package/types/animation/AnimatorStateMachine.d.ts +14 -0
  65. package/types/animation/AnimatorStateTransition.d.ts +9 -0
  66. package/types/animation/AnimatorStateTransitionCollection.d.ts +23 -1
  67. package/types/animation/StateMachineScript.d.ts +2 -0
  68. package/types/animation/animationCurve/AnimationArrayCurve.d.ts +39 -0
  69. package/types/animation/animationCurve/AnimationBoolCurve.d.ts +39 -0
  70. package/types/animation/animationCurve/AnimationColorCurve.d.ts +39 -0
  71. package/types/animation/animationCurve/AnimationCurve.d.ts +8 -0
  72. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +38 -0
  73. package/types/animation/animationCurve/AnimationFloatCurve.d.ts +39 -0
  74. package/types/animation/animationCurve/AnimationQuaternionCurve.d.ts +41 -0
  75. package/types/animation/animationCurve/AnimationRectCurve.d.ts +18 -0
  76. package/types/animation/animationCurve/AnimationRefCurve.d.ts +18 -0
  77. package/types/animation/animationCurve/AnimationStringCurve.d.ts +39 -0
  78. package/types/animation/animationCurve/AnimationVector2Curve.d.ts +39 -0
  79. package/types/animation/animationCurve/AnimationVector3Curve.d.ts +43 -0
  80. package/types/animation/animationCurve/AnimationVector4Curve.d.ts +39 -0
  81. package/types/animation/animationCurve/interfaces/IAnimationCurveCalculator.d.ts +18 -1
  82. package/types/animation/enums/AnimatorStatePlayState.d.ts +8 -1
  83. package/types/animation/internal/AnimationCurveLayerOwner.d.ts +15 -1
  84. package/types/animation/internal/AnimationEventHandler.d.ts +8 -1
  85. package/types/animation/internal/AnimatorLayerData.d.ts +28 -1
  86. package/types/animation/internal/AnimatorStateData.d.ts +14 -1
  87. package/types/animation/internal/AnimatorStatePlayData.d.ts +27 -1
  88. package/types/animation/internal/AnimatorTempValue.d.ts +12 -1
  89. package/types/animation/internal/animationCurveOwner/AnimationCurveOwner.d.ts +39 -0
  90. package/types/animation/internal/animationCurveOwner/assembler/BlendShapeWeightsAnimationCurveOwnerAssembler.d.ts +12 -1
  91. package/types/animation/internal/animationCurveOwner/assembler/IAnimationCurveOwnerAssembler.d.ts +10 -1
  92. package/types/animation/internal/animationCurveOwner/assembler/PositionAnimationCurveOwnerAssembler.d.ts +13 -1
  93. package/types/animation/internal/animationCurveOwner/assembler/RotationAnimationCurveOwnerAssembler.d.ts +13 -1
  94. package/types/animation/internal/animationCurveOwner/assembler/ScaleAnimationCurveOwnerAssembler.d.ts +13 -1
  95. package/types/animation/internal/animationCurveOwner/assembler/UniversalAnimationCurveOwnerAssembler.d.ts +23 -1
  96. package/types/asset/GraphicsResource.d.ts +10 -0
  97. package/types/asset/IReferable.d.ts +8 -0
  98. package/types/asset/ReferResource.d.ts +28 -0
  99. package/types/asset/RenderingStatistics.d.ts +8 -0
  100. package/types/asset/ResourceManager.d.ts +94 -4
  101. package/types/audio/AudioClip.d.ts +8 -0
  102. package/types/audio/AudioManager.d.ts +14 -0
  103. package/types/audio/AudioSource.d.ts +17 -0
  104. package/types/base/EngineObject.d.ts +4 -0
  105. package/types/base/Time.d.ts +13 -0
  106. package/types/clone/CloneDecorators.d.ts +20 -0
  107. package/types/clone/CloneUtil.d.ts +30 -1
  108. package/types/clone/ComponentCloner.d.ts +11 -1
  109. package/types/enums/CameraType.d.ts +9 -1
  110. package/types/env-probe/CubeProbe.d.ts +2 -0
  111. package/types/graphic/Buffer.d.ts +10 -0
  112. package/types/graphic/BufferUtil.d.ts +5 -0
  113. package/types/graphic/IndexBufferBinding.d.ts +4 -0
  114. package/types/graphic/Mesh.d.ts +54 -0
  115. package/types/graphic/Primitive.d.ts +50 -1
  116. package/types/graphic/TransformFeedback.d.ts +46 -1
  117. package/types/graphic/TransformFeedbackPrimitive.d.ts +67 -1
  118. package/types/graphic/TransformFeedbackSimulator.d.ts +55 -1
  119. package/types/graphic/VertexBufferBinding.d.ts +4 -0
  120. package/types/input/InputManager.d.ts +19 -0
  121. package/types/input/enums/PointerButton.d.ts +8 -0
  122. package/types/input/keyboard/KeyboardManager.d.ts +41 -1
  123. package/types/input/pointer/Pointer.d.ts +36 -0
  124. package/types/input/pointer/PointerEventData.d.ts +4 -0
  125. package/types/input/pointer/PointerManager.d.ts +58 -0
  126. package/types/input/pointer/emitter/IHitResult.d.ts +11 -1
  127. package/types/input/pointer/emitter/PhysicsPointerEventEmitter.d.ts +20 -1
  128. package/types/input/wheel/WheelManager.d.ts +34 -1
  129. package/types/lighting/AmbientLight.d.ts +9 -0
  130. package/types/lighting/DirectLight.d.ts +17 -0
  131. package/types/lighting/Light.d.ts +2 -0
  132. package/types/lighting/LightManager.d.ts +57 -0
  133. package/types/lighting/PointLight.d.ts +17 -0
  134. package/types/lighting/SpotLight.d.ts +17 -0
  135. package/types/lighting/ambientOcclusion/AmbientOcclusion.d.ts +4 -0
  136. package/types/lighting/ambientOcclusion/ScalableAmbientObscurancePass.d.ts +38 -1
  137. package/types/material/BaseMaterial.d.ts +4 -0
  138. package/types/material/Material.d.ts +2 -0
  139. package/types/mesh/BlendShape.d.ts +13 -0
  140. package/types/mesh/BlendShapeFrame.d.ts +7 -0
  141. package/types/mesh/BlendShapeManager.d.ts +101 -1
  142. package/types/mesh/MeshRenderer.d.ts +37 -0
  143. package/types/mesh/ModelMesh.d.ts +18 -0
  144. package/types/mesh/PrimitiveMesh.d.ts +28 -0
  145. package/types/mesh/PrimitiveMeshRestorer.d.ts +107 -0
  146. package/types/mesh/Skin.d.ts +10 -0
  147. package/types/mesh/SkinnedMeshRenderer.d.ts +21 -0
  148. package/types/particle/ParticleBufferUtils.d.ts +26 -1
  149. package/types/particle/ParticleGenerator.d.ts +102 -0
  150. package/types/particle/ParticleRenderer.d.ts +55 -0
  151. package/types/particle/ParticleTransformFeedbackSimulator.d.ts +52 -1
  152. package/types/particle/enums/ParticleRandomSubSeeds.d.ts +25 -1
  153. package/types/particle/enums/attributes/BillboardParticleVertexAttribute.d.ts +6 -1
  154. package/types/particle/enums/attributes/ParticleFeedbackVertexAttribute.d.ts +8 -1
  155. package/types/particle/enums/attributes/ParticleInstanceVertexAttribute.d.ts +17 -1
  156. package/types/particle/modules/ColorOverLifetimeModule.d.ts +12 -0
  157. package/types/particle/modules/CustomDataModule.d.ts +5 -0
  158. package/types/particle/modules/EmissionModule.d.ts +28 -0
  159. package/types/particle/modules/ForceOverLifetimeModule.d.ts +16 -1
  160. package/types/particle/modules/LimitVelocityOverLifetimeModule.d.ts +20 -1
  161. package/types/particle/modules/MainModule.d.ts +33 -1
  162. package/types/particle/modules/NoiseModule.d.ts +12 -1
  163. package/types/particle/modules/ParticleCompositeCurve.d.ts +37 -0
  164. package/types/particle/modules/ParticleCurve.d.ts +28 -0
  165. package/types/particle/modules/ParticleGeneratorModule.d.ts +7 -0
  166. package/types/particle/modules/ParticleGradient.d.ts +16 -0
  167. package/types/particle/modules/RotationOverLifetimeModule.d.ts +12 -0
  168. package/types/particle/modules/SizeOverLifetimeModule.d.ts +16 -0
  169. package/types/particle/modules/SubEmitter.d.ts +3 -0
  170. package/types/particle/modules/SubEmittersModule.d.ts +17 -0
  171. package/types/particle/modules/TextureSheetAnimationModule.d.ts +14 -1
  172. package/types/particle/modules/VelocityOverLifetimeModule.d.ts +28 -1
  173. package/types/particle/modules/shape/BaseShape.d.ts +33 -1
  174. package/types/particle/modules/shape/BoxShape.d.ts +13 -1
  175. package/types/particle/modules/shape/CircleShape.d.ts +13 -0
  176. package/types/particle/modules/shape/ConeShape.d.ts +13 -0
  177. package/types/particle/modules/shape/HemisphereShape.d.ts +13 -0
  178. package/types/particle/modules/shape/MeshShape.d.ts +17 -0
  179. package/types/particle/modules/shape/ShapeUtils.d.ts +13 -1
  180. package/types/particle/modules/shape/SphereShape.d.ts +13 -0
  181. package/types/physics/CharacterController.d.ts +21 -0
  182. package/types/physics/Collider.d.ts +39 -0
  183. package/types/physics/Collision.d.ts +3 -0
  184. package/types/physics/DynamicCollider.d.ts +14 -0
  185. package/types/physics/PhysicsMaterial.d.ts +3 -0
  186. package/types/physics/PhysicsScene.d.ts +51 -0
  187. package/types/physics/StaticCollider.d.ts +5 -0
  188. package/types/physics/enums/ColliderShapeChangeFlag.d.ts +8 -1
  189. package/types/physics/enums/HingeJointFlag.d.ts +14 -1
  190. package/types/physics/joint/HingeJoint.d.ts +4 -0
  191. package/types/physics/joint/Joint.d.ts +20 -0
  192. package/types/physics/joint/JointLimits.d.ts +3 -0
  193. package/types/physics/joint/JointMotor.d.ts +3 -0
  194. package/types/physics/shape/ColliderShape.d.ts +17 -0
  195. package/types/physics/shape/MeshColliderShape.d.ts +4 -0
  196. package/types/postProcess/FinalPass.d.ts +19 -1
  197. package/types/postProcess/PostProcess.d.ts +2 -0
  198. package/types/postProcess/PostProcessEffect.d.ts +4 -0
  199. package/types/postProcess/PostProcessEffectParameter.d.ts +4 -0
  200. package/types/postProcess/PostProcessManager.d.ts +43 -0
  201. package/types/postProcess/effects/BloomEffect.d.ts +25 -0
  202. package/types/postProcess/effects/TonemappingEffect.d.ts +3 -0
  203. package/types/renderingHardwareInterface/IPlatformTransformFeedback.d.ts +36 -1
  204. package/types/renderingHardwareInterface/IPlatformTransformFeedbackPrimitive.d.ts +40 -1
  205. package/types/shader/Shader.d.ts +22 -0
  206. package/types/shader/ShaderBlockProperty.d.ts +19 -1
  207. package/types/shader/ShaderData.d.ts +29 -0
  208. package/types/shader/ShaderFactory.d.ts +23 -0
  209. package/types/shader/ShaderMacro.d.ts +15 -0
  210. package/types/shader/ShaderMacroCollection.d.ts +57 -1
  211. package/types/shader/ShaderMacroProcessor.d.ts +72 -1
  212. package/types/shader/ShaderPass.d.ts +38 -0
  213. package/types/shader/ShaderProgram.d.ts +91 -1
  214. package/types/shader/ShaderProgramMap.d.ts +20 -1
  215. package/types/shader/ShaderProperty.d.ts +17 -0
  216. package/types/shader/ShaderTagKey.d.ts +2 -0
  217. package/types/shader/ShaderUniform.d.ts +49 -1
  218. package/types/shader/ShaderUniformBlock.d.ts +9 -1
  219. package/types/shader/enums/ConstantBufferBindingPoint.d.ts +7 -1
  220. package/types/shader/state/BlendState.d.ts +14 -0
  221. package/types/shader/state/DepthState.d.ts +14 -0
  222. package/types/shader/state/RasterState.d.ts +17 -0
  223. package/types/shader/state/RenderState.d.ts +11 -0
  224. package/types/shader/state/StencilState.d.ts +13 -0
  225. package/types/shadow/CascadedShadowCasterPass.d.ts +5 -0
  226. package/types/shadow/ShadowSliceData.d.ts +13 -1
  227. package/types/shadow/ShadowUtils.d.ts +43 -1
  228. package/types/sky/Sky.d.ts +9 -0
  229. package/types/texture/RenderTarget.d.ts +21 -0
  230. package/types/texture/Texture.d.ts +21 -0
  231. package/types/texture/Texture2D.d.ts +4 -0
  232. package/types/texture/Texture2DArray.d.ts +4 -0
  233. package/types/texture/TextureCube.d.ts +4 -0
  234. package/types/texture/TextureUtils.d.ts +16 -1
  235. package/types/trail/TrailRenderer.d.ts +5 -0
  236. package/types/ui/IUICanvas.d.ts +16 -1
  237. package/types/utils/DisorderedArray.d.ts +2 -0
  238. package/types/xr/XRManager.d.ts +28 -0
@@ -1,4 +1,5 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { IColliderShape } from "@galacean/engine-design";
2
3
  import { PhysicsMaterial } from "../PhysicsMaterial";
3
4
  import { Vector3 } from "@galacean/engine-math";
4
5
  import { Collider } from "../Collider";
@@ -8,12 +9,24 @@ import type { ICloneHook } from "../../clone/ICloneHook";
8
9
  */
9
10
  export declare abstract class ColliderShape extends DataObject implements ICloneHook<ColliderShape> {
10
11
  private static _idGenerator;
12
+ /** @internal */
13
+ _collider: Collider;
14
+ /** @internal */
15
+ _nativeShape: IColliderShape;
16
+ /** @internal */
17
+ _isShapeAttached: boolean;
11
18
  protected _id: number;
12
19
  protected _material: PhysicsMaterial;
13
20
  private _isTrigger;
14
21
  private _rotation;
15
22
  private _position;
16
23
  private _contactOffset;
24
+ /**
25
+ * @internal
26
+ * @beta
27
+ * Whether raycast can select it.
28
+ */
29
+ isSceneQuery: boolean;
17
30
  /**
18
31
  * Collider owner of this shape.
19
32
  */
@@ -60,6 +73,10 @@ export declare abstract class ColliderShape extends DataObject implements IClone
60
73
  * @inheritdoc
61
74
  */
62
75
  _onClone(target: ColliderShape): void;
76
+ /**
77
+ * @internal
78
+ */
79
+ _destroy(): void;
63
80
  protected _syncNative(): void;
64
81
  private _setPosition;
65
82
  private _setRotation;
@@ -38,6 +38,10 @@ export declare class MeshColliderShape extends ColliderShape {
38
38
  * @inheritdoc
39
39
  */
40
40
  _onClone(target: MeshColliderShape): void;
41
+ /**
42
+ * @internal
43
+ */
44
+ _destroy(): void;
41
45
  private _clearMeshData;
42
46
  private _destroyNativeShape;
43
47
  private _extractMeshData;
@@ -1 +1,19 @@
1
- export {};
1
+ import { Camera } from "../Camera";
2
+ import { Engine } from "../Engine";
3
+ import { PipelinePass } from "../RenderPipeline/PipelinePass";
4
+ import { RenderContext } from "../RenderPipeline/RenderContext";
5
+ import { RenderTarget } from "../texture";
6
+ /**
7
+ * @internal
8
+ * Processing sRGB Conversion and FXAA.
9
+ */
10
+ export declare class FinalPass extends PipelinePass {
11
+ private _inputRenderTarget;
12
+ private _srgbRenderTarget;
13
+ private _antiAliasingMaterial;
14
+ private _sRGBmaterial;
15
+ constructor(engine: Engine);
16
+ onConfig(camera: Camera, inputRenderTarget: RenderTarget): void;
17
+ onRender(context: RenderContext): void;
18
+ release(): void;
19
+ }
@@ -13,6 +13,8 @@ export declare class PostProcess extends Component {
13
13
  * The outer distance to start blending from, only takes effect when the `isGlobal` is false.
14
14
  */
15
15
  blendDistance: number;
16
+ /** @internal */
17
+ _effects: PostProcessEffect[];
16
18
  private _priority;
17
19
  private _isGlobal;
18
20
  /**
@@ -17,6 +17,10 @@ export declare class PostProcessEffect extends DataObject {
17
17
  * This method can be overridden to control the effect's real validity.
18
18
  */
19
19
  isValid(): boolean;
20
+ /**
21
+ * @internal
22
+ */
23
+ _lerp(to: PostProcessEffect, factor: number): void;
20
24
  /**
21
25
  * Get all parameters of the post process effect.
22
26
  * @remarks
@@ -19,6 +19,10 @@ export declare abstract class PostProcessEffectParameter<T> extends DataObject {
19
19
  get value(): T;
20
20
  set value(value: T);
21
21
  constructor(value: T, needLerp?: boolean);
22
+ /**
23
+ * @internal
24
+ */
25
+ _lerp(to: T, factor: number): void;
22
26
  }
23
27
  /**
24
28
  * Represents a float parameter of a post process effect.
@@ -1,4 +1,8 @@
1
+ import { Camera } from "../Camera";
1
2
  import { Scene } from "../Scene";
3
+ import { Material } from "../material";
4
+ import { RenderTarget } from "../texture";
5
+ import { PostProcess } from "./PostProcess";
2
6
  import { PostProcessEffect } from "./PostProcessEffect";
3
7
  /**
4
8
  * A global manager of the PostProcess.
@@ -7,6 +11,12 @@ export declare class PostProcessManager {
7
11
  readonly scene: Scene;
8
12
  private static _tempColliders;
9
13
  private static _tempVector3;
14
+ /** @internal */
15
+ _uberMaterial: Material;
16
+ /** @internal */
17
+ _postProcessNeedSorting: boolean;
18
+ /** @internal */
19
+ _postProcessPassNeedSorting: boolean;
10
20
  private _activePostProcesses;
11
21
  private _swapRenderTarget;
12
22
  private _srcRenderTarget;
@@ -22,6 +32,23 @@ export declare class PostProcessManager {
22
32
  * @param scene - Scene to which the current PostProcessManager belongs
23
33
  */
24
34
  constructor(scene: Scene);
35
+ /**
36
+ * @internal
37
+ * Whether has any valid post process pass.
38
+ */
39
+ _isValid(): boolean;
40
+ /**
41
+ * @internal
42
+ */
43
+ _update(camera: Camera): void;
44
+ /**
45
+ * @internal
46
+ */
47
+ _addPostProcess(postProcess: PostProcess): void;
48
+ /**
49
+ * @internal
50
+ */
51
+ _removePostProcess(postProcess: PostProcess): void;
25
52
  /**
26
53
  * Get the blend effect by type.
27
54
  * @remarks
@@ -30,6 +57,22 @@ export declare class PostProcessManager {
30
57
  * @returns The PostProcessEffect instance found
31
58
  */
32
59
  getBlendEffect<T extends typeof PostProcessEffect>(type: T): InstanceType<T>;
60
+ /**
61
+ * @internal
62
+ */
63
+ _render(camera: Camera, srcRenderTarget: RenderTarget, destRenderTarget: RenderTarget): void;
64
+ /**
65
+ * @internal
66
+ */
67
+ _releaseSwapRenderTarget(): void;
68
+ /**
69
+ * @internal
70
+ */
71
+ _releaseOutputRenderTarget(): void;
72
+ /**
73
+ * @internal
74
+ */
75
+ _getOutputRenderTarget(camera: Camera): RenderTarget;
33
76
  private _sortActivePostProcess;
34
77
  private _resetDefaultValue;
35
78
  private _initSwapRenderTarget;
@@ -1,3 +1,4 @@
1
+ import { ShaderMacro, ShaderProperty } from "../../shader";
1
2
  import { PostProcessEffect } from "../PostProcessEffect";
2
3
  import { PostProcessEffectBoolParameter, PostProcessEffectColorParameter, PostProcessEffectEnumParameter, PostProcessEffectFloatParameter, PostProcessEffectTextureParameter } from "../PostProcessEffectParameter";
3
4
  /**
@@ -11,6 +12,30 @@ export declare enum BloomDownScaleMode {
11
12
  }
12
13
  export declare class BloomEffect extends PostProcessEffect {
13
14
  static readonly SHADER_NAME = "PostProcess/Bloom";
15
+ /** @internal */
16
+ static _maxIterations: number;
17
+ /** @internal */
18
+ static _hqMacro: ShaderMacro;
19
+ /** @internal */
20
+ static _dirtMacro: ShaderMacro;
21
+ /** @internal */
22
+ static _bloomParams: ShaderProperty;
23
+ /** @internal */
24
+ static _lowMipTextureProp: ShaderProperty;
25
+ /** @internal */
26
+ static _lowMipTexelSizeProp: ShaderProperty;
27
+ /** @internal */
28
+ static _enableMacro: ShaderMacro;
29
+ /** @internal */
30
+ static _bloomTextureProp: ShaderProperty;
31
+ /** @internal */
32
+ static _dirtTextureProp: ShaderProperty;
33
+ /** @internal */
34
+ static _tintProp: ShaderProperty;
35
+ /** @internal */
36
+ static _bloomIntensityParams: ShaderProperty;
37
+ /** @internal */
38
+ static _dirtTilingOffsetProp: ShaderProperty;
14
39
  /**
15
40
  * Controls whether to use bicubic sampling instead of bilinear sampling for the upSampling passes.
16
41
  * @remarks This is slightly more expensive but helps getting smoother visuals.
@@ -1,3 +1,4 @@
1
+ import { ShaderMacro } from "../../shader";
1
2
  import { PostProcessEffect } from "../PostProcessEffect";
2
3
  import { PostProcessEffectEnumParameter } from "../PostProcessEffectParameter";
3
4
  /**
@@ -18,6 +19,8 @@ export declare enum TonemappingMode {
18
19
  ACES = 1
19
20
  }
20
21
  export declare class TonemappingEffect extends PostProcessEffect {
22
+ /** @internal */
23
+ static _enableMacro: ShaderMacro;
21
24
  /**
22
25
  * Use this to select a tonemapping algorithm to use.
23
26
  */
@@ -1 +1,36 @@
1
- export {};
1
+ import { IPlatformBuffer } from "./IPlatformBuffer";
2
+ /**
3
+ * Platform interface for Transform Feedback operations.
4
+ * @internal
5
+ */
6
+ export interface IPlatformTransformFeedback {
7
+ /**
8
+ * Bind a buffer range as Transform Feedback output at the given index.
9
+ */
10
+ bindBufferRange(index: number, buffer: IPlatformBuffer, byteOffset: number, byteSize: number): void;
11
+ /**
12
+ * Unbind buffer from Transform Feedback output at the given index.
13
+ */
14
+ unbindBuffer(index: number): void;
15
+ /**
16
+ * Begin a Transform Feedback pass.
17
+ * @param primitiveMode - The primitive mode (e.g., POINTS)
18
+ */
19
+ begin(primitiveMode: number): void;
20
+ /**
21
+ * End the current Transform Feedback pass.
22
+ */
23
+ end(): void;
24
+ /**
25
+ * Bind this Transform Feedback object as the active TF.
26
+ */
27
+ bind(): void;
28
+ /**
29
+ * Unbind the Transform Feedback object.
30
+ */
31
+ unbind(): void;
32
+ /**
33
+ * Destroy native resources.
34
+ */
35
+ destroy(): void;
36
+ }
@@ -1 +1,40 @@
1
- export {};
1
+ /**
2
+ * Platform interface for Transform Feedback primitive operations.
3
+ * @internal
4
+ */
5
+ export interface IPlatformTransformFeedbackPrimitive {
6
+ /**
7
+ * Update vertex layout. Auto-rebuilds when program changes.
8
+ * @param program - Shader program (for attribute locations)
9
+ * @param readBinding - Current read buffer binding
10
+ * @param writeBinding - Current write buffer binding
11
+ * @param feedbackElements - Vertex elements for feedback buffer
12
+ * @param inputBinding - Input buffer binding
13
+ * @param inputElements - Vertex elements for input buffer
14
+ */
15
+ updateVertexLayout(program: any, readBinding: any, writeBinding: any, feedbackElements: any[], inputBinding: any, inputElements: any[]): void;
16
+ /**
17
+ * Bind attribute state for the given read direction.
18
+ * @param readIsA - Whether to use direction A as read
19
+ */
20
+ bind(readIsA: boolean): void;
21
+ /**
22
+ * Unbind attribute state.
23
+ */
24
+ unbind(): void;
25
+ /**
26
+ * Issue a draw call.
27
+ * @param mode - Primitive topology
28
+ * @param first - First vertex index
29
+ * @param count - Number of vertices
30
+ */
31
+ draw(mode: number, first: number, count: number): void;
32
+ /**
33
+ * Invalidate cached state, forcing rebuild on next updateVertexLayout.
34
+ */
35
+ invalidate(): void;
36
+ /**
37
+ * Destroy native resources.
38
+ */
39
+ destroy(): void;
40
+ }
@@ -1,6 +1,8 @@
1
+ import { IShaderCompiler, IPrecompiledShader } from "@galacean/engine-design";
1
2
  import { Engine } from "../Engine";
2
3
  import { IReferable } from "../asset/IReferable";
3
4
  import { ShaderMacro } from "./ShaderMacro";
5
+ import { ShaderMacroCollection } from "./ShaderMacroCollection";
4
6
  import { ShaderPass } from "./ShaderPass";
5
7
  import { ShaderProperty } from "./ShaderProperty";
6
8
  import { SubShader } from "./SubShader";
@@ -10,6 +12,10 @@ import { ShaderLanguage } from "./enums/ShaderLanguage";
10
12
  */
11
13
  export declare class Shader implements IReferable {
12
14
  readonly name: string;
15
+ /** @internal */
16
+ static readonly _compileMacros: ShaderMacroCollection;
17
+ /** @internal */
18
+ static _shaderCompiler?: IShaderCompiler;
13
19
  private static _shaderMap;
14
20
  /**
15
21
  * Create a shader by source code.
@@ -53,6 +59,14 @@ export declare class Shader implements IReferable {
53
59
  * @param name - Name of the shader
54
60
  */
55
61
  static find(name: string): Shader;
62
+ /**
63
+ * @internal
64
+ */
65
+ static _createFromPrecompiled(data: IPrecompiledShader): Shader;
66
+ /**
67
+ * @internal
68
+ */
69
+ static _clear(engine: Engine): void;
56
70
  private static _resolveUsePass;
57
71
  private static _applyRenderStates;
58
72
  private static _applyConstRenderStates;
@@ -85,6 +99,14 @@ export declare class Shader implements IReferable {
85
99
  * @returns Whether the release was successful.
86
100
  */
87
101
  destroy(force?: boolean): boolean;
102
+ /**
103
+ * @internal
104
+ */
105
+ _getReferCount(): number;
106
+ /**
107
+ * @internal
108
+ */
109
+ _addReferCount(value: number): void;
88
110
  /**
89
111
  * @deprecated Please use `ShaderMacro.getByName` instead
90
112
  *
@@ -1 +1,19 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ * Shader block property, used to identify uniform blocks by id.
4
+ */
5
+ export declare class ShaderBlockProperty {
6
+ private static _counter;
7
+ private static _nameMap;
8
+ /**
9
+ * Get shader block property by name.
10
+ * @param name - Name of the uniform block
11
+ * @returns Shader block property
12
+ */
13
+ static getByName(name: string): ShaderBlockProperty;
14
+ /** Uniform block name. */
15
+ readonly name: string;
16
+ /** @internal */
17
+ readonly _uniqueId: number;
18
+ private constructor();
19
+ }
@@ -5,14 +5,27 @@ import { IReferable } from "../asset/IReferable";
5
5
  import type { ICloneHook } from "../clone/ICloneHook";
6
6
  import { Texture } from "../texture/Texture";
7
7
  import { ShaderMacro } from "./ShaderMacro";
8
+ import { ShaderMacroCollection } from "./ShaderMacroCollection";
8
9
  import { ShaderProperty } from "./ShaderProperty";
10
+ import { ShaderDataGroup } from "./enums/ShaderDataGroup";
11
+ import { ShaderPropertyType } from "./enums/ShaderPropertyType";
9
12
  /**
10
13
  * Shader data collection,Correspondence includes shader properties data and macros data.
11
14
  */
12
15
  export declare class ShaderData extends DataObject implements IReferable, IClone, ICloneHook<ShaderData> {
16
+ /** @internal */
17
+ _group: ShaderDataGroup;
18
+ /** @internal */
19
+ _propertyValueMap: Record<number, ShaderPropertyValueType>;
20
+ /** @internal */
21
+ _macroCollection: ShaderMacroCollection;
13
22
  private _batchSharedFields;
14
23
  private _macroMap;
15
24
  private _refCount;
25
+ /**
26
+ * @internal
27
+ */
28
+ constructor(group: ShaderDataGroup);
16
29
  /**
17
30
  * Get float by shader property name.
18
31
  * @param propertyName - Shader property name
@@ -353,6 +366,22 @@ export declare class ShaderData extends DataObject implements IReferable, IClone
353
366
  * @inheritdoc
354
367
  */
355
368
  _onClone(target: ShaderData): void;
369
+ /**
370
+ * @internal
371
+ */
372
+ _setPropertyValue<T extends ShaderPropertyValueType>(property: string | ShaderProperty, type: ShaderPropertyType, value: T): void;
373
+ /**
374
+ * @internal
375
+ */
376
+ _matchesRendererBatchShared(other: ShaderData): boolean;
377
+ /**
378
+ * @internal
379
+ */
380
+ _getReferCount(): number;
381
+ /**
382
+ * @internal
383
+ */
384
+ _addReferCount(value: number): void;
356
385
  private _addTexturesReferCount;
357
386
  private _updateRendererBatchSharedFields;
358
387
  }
@@ -1,4 +1,5 @@
1
1
  import { Engine } from "../Engine";
2
+ import { ShaderProperty } from "./ShaderProperty";
2
3
  /**
3
4
  * Shader registry and GLSL utilities. Holds the `#include` lookup table
4
5
  * the runtime preprocessor reads, the GLSL ES 100 → 300 syntax converter
@@ -53,3 +54,25 @@ export declare class ShaderFactory {
53
54
  private static _buildFieldDefines;
54
55
  private static _replaceMRTShader;
55
56
  }
57
+ /**
58
+ * @internal
59
+ */
60
+ export interface InstanceFieldInfo {
61
+ property: ShaderProperty;
62
+ type: string;
63
+ offset: number;
64
+ /** offset / 4, precomputed to avoid repeated division in upload loop */
65
+ offsetInElements: number;
66
+ useIntView: boolean;
67
+ pack: InstancePackFunc;
68
+ }
69
+ /**
70
+ * @internal
71
+ */
72
+ export interface InstanceBufferLayout {
73
+ instanceFields: InstanceFieldInfo[];
74
+ instanceMaxCount: number;
75
+ structSize: number;
76
+ }
77
+ type InstancePackFunc = (view: Float32Array | Int32Array, offset: number, value: any) => void;
78
+ export {};
@@ -1,7 +1,12 @@
1
+ import { ShaderMacroCollection } from "./ShaderMacroCollection";
1
2
  /**
2
3
  * Shader macro。
3
4
  */
4
5
  export declare class ShaderMacro {
6
+ /** @internal */
7
+ static _macroMaskMap: ShaderMacro[][];
8
+ /** @internal */
9
+ static _macroNameIdMap: Record<string, number>;
5
10
  private static _macroNameCounter;
6
11
  private static _macroCounter;
7
12
  private static _macroMap;
@@ -18,9 +23,19 @@ export declare class ShaderMacro {
18
23
  * @returns Shader macro
19
24
  */
20
25
  static getByName(name: string, value: string): ShaderMacro;
26
+ /**
27
+ * @internal
28
+ */
29
+ static _getMacrosElements(macros: ShaderMacroCollection, out: ShaderMacro[]): void;
21
30
  /** Name. */
22
31
  readonly name: string;
23
32
  /** Value. */
24
33
  readonly value: string;
34
+ /** @internal */
35
+ _nameId: number;
36
+ /** @internal */
37
+ _maskIndex: number;
38
+ /** @internal */
39
+ _maskValue: number;
25
40
  private constructor();
26
41
  }
@@ -1 +1,57 @@
1
- export {};
1
+ import { ShaderMacro } from "./ShaderMacro";
2
+ /**
3
+ * Shader macro collection.
4
+ * @internal
5
+ */
6
+ export declare class ShaderMacroCollection {
7
+ /**
8
+ * Union of two macro collection.
9
+ * @param left - input macro collection
10
+ * @param right - input macro collection
11
+ * @param out - union output macro collection
12
+ */
13
+ static unionCollection(left: ShaderMacroCollection, right: ShaderMacroCollection, out: ShaderMacroCollection): void;
14
+ /** @internal */
15
+ _mask: number[];
16
+ /** @internal */
17
+ _length: number;
18
+ /**
19
+ * Enable one macro in this macro collection.
20
+ * @param macro - ShaderMacro
21
+ */
22
+ enable(macro: ShaderMacro): void;
23
+ /**
24
+ * Disable one macro in this macro collection.
25
+ * @param macro - ShaderMacro
26
+ */
27
+ disable(macro: ShaderMacro): void;
28
+ /**
29
+ * Union of this and other macro collection.
30
+ * @param macroCollection - macro collection
31
+ */
32
+ unionCollection(macroCollection: ShaderMacroCollection): void;
33
+ /**
34
+ * Complementarity of this and other macro collection.
35
+ * @param macroCollection - macro collection
36
+ */
37
+ complementaryCollection(macroCollection: ShaderMacroCollection): void;
38
+ /**
39
+ * Intersection of this and other macro collection.
40
+ * @param macroCollection - macro collection
41
+ */
42
+ intersectionCollection(macroCollection: ShaderMacroCollection): void;
43
+ /**
44
+ * Whether macro is enabled in this macro collection.
45
+ * @param macro - ShaderMacro
46
+ */
47
+ isEnable(macro: ShaderMacro): boolean;
48
+ /**
49
+ * Whether this macro collection is equal to another.
50
+ * @param other - macro collection to compare
51
+ */
52
+ isEqual(other: ShaderMacroCollection): boolean;
53
+ /**
54
+ * Clear this macro collection.
55
+ */
56
+ clear(): void;
57
+ }
@@ -1 +1,72 @@
1
- export {};
1
+ import type { ShaderInstruction } from "@galacean/engine-design";
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare class ShaderMacroProcessor {
6
+ private static _valueMacros;
7
+ private static _funcMacros;
8
+ private static _shaderChunks;
9
+ private static _out;
10
+ private static _expandedNames;
11
+ private static _macroFirstChars;
12
+ private static _macroFirstCharsDirty;
13
+ private static _replaceWordParts;
14
+ private static _parsedFuncArgs;
15
+ /**
16
+ * Evaluate a flat instruction array with active macros.
17
+ * Macros are expanded immediately when text chunks are collected,
18
+ * using the current macro state at that point (conforming to GLSL/C99 §6.10 standard).
19
+ * @param instructions - Pre-parsed instruction array
20
+ * @param macros - Active runtime macros
21
+ * @returns Pure GLSL string with all conditionals resolved and macros expanded
22
+ */
23
+ static evaluate(instructions: ShaderInstruction[], macros: Map<string, string>): string;
24
+ /**
25
+ * Expand macros in a single text chunk using the current macro state.
26
+ * Returns the chunk as-is if no expandable macros exist.
27
+ */
28
+ private static _expandChunk;
29
+ /**
30
+ * Recursively expand macro substitution results until no more macros remain.
31
+ * @param macroExpansion - Intermediate text from a macro substitution that may contain further macro references
32
+ * @param valueMacros - Current value macro definitions
33
+ * @param funcMacros - Current function macro definitions
34
+ * @param expandedNames - Macro names already on the expansion chain, prevents circular references (C99 §6.10.3.4)
35
+ */
36
+ private static _recursiveExpandMacro;
37
+ /**
38
+ * Substitute function macro params in body.
39
+ */
40
+ private static _expandFuncBody;
41
+ /**
42
+ * Evaluate a compound condition tree.
43
+ */
44
+ private static _evalCondition;
45
+ /**
46
+ * Evaluate a comparison operator.
47
+ */
48
+ private static _compareValues;
49
+ /**
50
+ * Parse function macro call arguments.
51
+ * Returns reusable static result object to avoid allocation.
52
+ */
53
+ private static _parseFuncArgs;
54
+ /**
55
+ * Replace all whole-word occurrences of `word` in `text` with `replacement`.
56
+ */
57
+ private static _replaceWord;
58
+ /**
59
+ * Concatenate shader chunks with consecutive blank lines collapsed to a single newline.
60
+ */
61
+ private static _concatChunks;
62
+ /**
63
+ * Check if char code is a valid identifier start.
64
+ * Matches: [A-Z] | [a-z] | _
65
+ */
66
+ private static _isIdentifierStart;
67
+ /**
68
+ * Check if char code is a valid identifier part.
69
+ * Matches: [A-Z] | [a-z] | [0-9] | _
70
+ */
71
+ private static _isIdentifierPart;
72
+ }
@@ -1,10 +1,36 @@
1
1
  import type { ShaderInstruction } from "@galacean/engine-design";
2
+ import { Engine } from "../Engine";
3
+ import { ShaderMacroCollection } from "./ShaderMacroCollection";
2
4
  import { ShaderPart } from "./ShaderPart";
5
+ import { ShaderProgramMap } from "./ShaderProgramMap";
6
+ import { ShaderProgram } from "./ShaderProgram";
7
+ import { ShaderProperty } from "./ShaderProperty";
3
8
  import { ShaderLanguage } from "./enums/ShaderLanguage";
9
+ import { RenderState } from "./state/RenderState";
4
10
  /**
5
11
  * Shader pass containing vertex and fragment source.
6
12
  */
7
13
  export declare class ShaderPass extends ShaderPart {
14
+ /** @internal */
15
+ static _shaderPassCounter: number;
16
+ /** @internal */
17
+ static _shaderRootPath: string;
18
+ /** @internal */
19
+ _platformTarget: ShaderLanguage;
20
+ /** @internal - Flat instruction array for vertex shader. */
21
+ _vertexShaderInstructions: ShaderInstruction[];
22
+ /** @internal */
23
+ _fragmentShaderInstructions: ShaderInstruction[];
24
+ /** @internal */
25
+ _shaderPassId: number;
26
+ /** @internal Pass-level render state — always present, populated from ShaderLab declarations. */
27
+ _renderState: RenderState;
28
+ /** @internal */
29
+ _renderStateDataMap: Record<number, ShaderProperty>;
30
+ /** @internal */
31
+ _shaderProgramMaps: ShaderProgramMap[];
32
+ /** @internal Transform feedback output varyings (WebGL2 only). */
33
+ _feedbackVaryings?: string[];
8
34
  private static _shaderMacroList;
9
35
  private static _macroMap;
10
36
  /**
@@ -16,5 +42,17 @@ export declare class ShaderPass extends ShaderPart {
16
42
  * @param tags - Tags
17
43
  */
18
44
  constructor(name: string, vertexShaderInstructions: ShaderInstruction[], fragmentShaderInstructions: ShaderInstruction[], platformTarget: ShaderLanguage, tags?: Record<string, number | string | boolean>);
45
+ /**
46
+ * @internal
47
+ */
48
+ _getShaderProgram(engine: Engine, macroCollection: ShaderMacroCollection): ShaderProgram;
49
+ /**
50
+ * @internal
51
+ */
52
+ _destroy(): void;
53
+ /**
54
+ * @internal
55
+ */
56
+ _compileShaderProgram(engine: Engine, macroCollection: ShaderMacroCollection): ShaderProgram;
19
57
  private _compileShaderSource;
20
58
  }