@galacean/engine-core 2.0.0-alpha.43 → 2.0.0-alpha.45

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 +3 -3
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +3 -3
  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 +34 -1
  23. package/types/ComponentsManager.d.ts +17 -0
  24. package/types/Engine.d.ts +106 -2
  25. package/types/Entity.d.ts +88 -0
  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 +13 -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 +31 -3
  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 +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
  }
@@ -1 +1,91 @@
1
- export {};
1
+ import { Engine } from "../Engine";
2
+ import { ShaderData } from "./ShaderData";
3
+ import { ShaderUniformBlock } from "./ShaderUniformBlock";
4
+ import { InstanceBufferLayout } from "./ShaderFactory";
5
+ /**
6
+ * Shader program, corresponding to the GPU shader program.
7
+ * @internal
8
+ */
9
+ export declare class ShaderProgram {
10
+ private static _counter;
11
+ private static _addLineNum;
12
+ id: number;
13
+ readonly sceneUniformBlock: ShaderUniformBlock;
14
+ readonly cameraUniformBlock: ShaderUniformBlock;
15
+ readonly rendererUniformBlock: ShaderUniformBlock;
16
+ readonly materialUniformBlock: ShaderUniformBlock;
17
+ readonly renderElementUniformBlock: ShaderUniformBlock;
18
+ readonly otherUniformBlock: ShaderUniformBlock;
19
+ /** @internal */
20
+ _uploadRenderCount: number;
21
+ /** @internal */
22
+ _uploadSceneId: number;
23
+ /** @internal */
24
+ _uploadCameraId: number;
25
+ /** @internal */
26
+ _uploadRendererId: number;
27
+ /** @internal */
28
+ _uploadMaterialId: number;
29
+ /** @internal */
30
+ _instanceLayout: InstanceBufferLayout | null;
31
+ attributeLocation: Record<string, GLint>;
32
+ uniformBlockIds: number[];
33
+ private _isValid;
34
+ private _engine;
35
+ private _gl;
36
+ private _glProgram;
37
+ private _activeTextureUint;
38
+ /**
39
+ * Whether this shader program is valid.
40
+ */
41
+ get isValid(): boolean;
42
+ constructor(engine: Engine, vertexSource: string, fragmentSource: string, transformFeedbackVaryings?: string[]);
43
+ /**
44
+ * Upload all shader data in shader uniform block.
45
+ * @param uniformBlock - shader Uniform block
46
+ * @param shaderData - shader data
47
+ */
48
+ uploadAll(uniformBlock: ShaderUniformBlock, shaderData: ShaderData): void;
49
+ /**
50
+ * Upload constant shader data in shader uniform block.
51
+ * @param uniformBlock - shader Uniform block
52
+ * @param shaderData - shader data
53
+ */
54
+ uploadUniforms(uniformBlock: ShaderUniformBlock, shaderData: ShaderData): void;
55
+ /**
56
+ * Upload texture shader data in shader uniform block.
57
+ * @param uniformBlock - shader Uniform block
58
+ * @param shaderData - shader data
59
+ */
60
+ uploadTextures(uniformBlock: ShaderUniformBlock, shaderData: ShaderData): void;
61
+ /**
62
+ * Upload ungroup texture shader data in shader uniform block.
63
+ */
64
+ uploadUnGroupTextures(): void;
65
+ /**
66
+ * Grouping other data.
67
+ */
68
+ groupingOtherUniformBlock(): void;
69
+ /**
70
+ * Bind this shader program.
71
+ * @returns Whether the shader program is switched.
72
+ */
73
+ bind(): boolean;
74
+ /**
75
+ * Destroy this shader program.
76
+ */
77
+ destroy(): void;
78
+ private _groupingSubOtherUniforms;
79
+ private _groupingUniform;
80
+ /**
81
+ * Init and link program with shader.
82
+ */
83
+ private _createProgram;
84
+ private _createShader;
85
+ /**
86
+ * record the location of uniform/attribute.
87
+ */
88
+ private _recordLocation;
89
+ private _getUniformInfos;
90
+ private _getAttributeInfos;
91
+ }
@@ -1 +1,20 @@
1
- export {};
1
+ import { Engine } from "../Engine";
2
+ import { ShaderMacroCollection } from "./ShaderMacroCollection";
3
+ import { ShaderProgram } from "./ShaderProgram";
4
+ /**
5
+ * Map keyed by ShaderMacroCollection bitmask, caching ShaderProgram instances.
6
+ * @internal
7
+ */
8
+ export declare class ShaderProgramMap {
9
+ engine: Engine;
10
+ private _cacheHierarchyDepth;
11
+ private _cacheMap;
12
+ private _lastQueryMap;
13
+ private _lastQueryKey;
14
+ constructor(engine: Engine);
15
+ get(macros: ShaderMacroCollection): ShaderProgram | null;
16
+ cache(value: ShaderProgram): void;
17
+ destroy(): void;
18
+ private _recursiveForEach;
19
+ private _resizeCacheMapHierarchy;
20
+ }
@@ -1,8 +1,11 @@
1
+ import { ShaderDataGroup } from "./enums/ShaderDataGroup";
1
2
  import { ShaderPropertyType } from "./enums/ShaderPropertyType";
2
3
  /**
3
4
  * Shader property.
4
5
  */
5
6
  export declare class ShaderProperty {
7
+ /** @internal */
8
+ static _propertyIdMap: Record<number, ShaderProperty>;
6
9
  private static _propertyNameCounter;
7
10
  private static _propertyNameMap;
8
11
  /**
@@ -11,10 +14,24 @@ export declare class ShaderProperty {
11
14
  * @returns Shader property
12
15
  */
13
16
  static getByName(name: string): ShaderProperty;
17
+ /**
18
+ * @internal
19
+ */
20
+ static _getShaderPropertyGroup(propertyName: string): ShaderDataGroup | null;
21
+ /** @internal */
22
+ _uniqueId: number;
23
+ /** @internal */
24
+ _group: ShaderDataGroup;
25
+ /** @internal */
26
+ _type: ShaderPropertyType;
14
27
  /** Shader property name. */
15
28
  readonly name: string;
16
29
  /**
17
30
  * Shader property type.
18
31
  */
19
32
  get type(): ShaderPropertyType;
33
+ /**
34
+ * @internal
35
+ */
36
+ constructor(name: string);
20
37
  }
@@ -12,5 +12,7 @@ export declare class ShaderTagKey {
12
12
  static getByName(name: string): ShaderTagKey;
13
13
  /** Shader tag property name. */
14
14
  readonly name: string;
15
+ /** @internal */
16
+ _uniqueId: number;
15
17
  private constructor();
16
18
  }
@@ -1 +1,49 @@
1
- export {};
1
+ import { Color, Matrix, Vector2, Vector3, Vector4 } from "@galacean/engine-math";
2
+ import { Engine } from "../Engine";
3
+ import { Texture } from "../texture/Texture";
4
+ import { ShaderPropertyValueType } from "./ShaderData";
5
+ /**
6
+ * Shader uniform。
7
+ * @internal
8
+ */
9
+ export declare class ShaderUniform {
10
+ name: string;
11
+ propertyId: number;
12
+ location: WebGLUniformLocation;
13
+ applyFunc: (shaderUniform: ShaderUniform, value: ShaderPropertyValueType) => void;
14
+ cacheValue: number | Vector2 | Vector3 | Vector4;
15
+ textureIndex: GLenum | GLenum[];
16
+ textureDefault: Texture | Texture[];
17
+ textureUseCompareMode: boolean;
18
+ private _rhi;
19
+ private _gl;
20
+ constructor(engine: Engine);
21
+ upload1f(shaderUniform: ShaderUniform, value: number): void;
22
+ upload1fv(shaderUniform: ShaderUniform, value: Float32Array): void;
23
+ upload2f(shaderUniform: ShaderUniform, value: Vector2 | Vector3 | Vector4 | Color): void;
24
+ upload2fv(shaderUniform: ShaderUniform, value: Float32Array): void;
25
+ upload3f(shaderUniform: ShaderUniform, value: Vector3 | Vector4 | Color): void;
26
+ upload3fv(shaderUniform: ShaderUniform, value: Float32Array): void;
27
+ upload4f(shaderUniform: ShaderUniform, value: Vector4 | Color): void;
28
+ upload4fv(shaderUniform: ShaderUniform, value: Float32Array): void;
29
+ upload1i(shaderUniform: ShaderUniform, value: number): void;
30
+ upload1iv(shaderUniform: ShaderUniform, value: Int32Array): void;
31
+ upload2i(shaderUniform: ShaderUniform, value: Vector2 | Vector3 | Vector4 | Color): void;
32
+ upload2iv(shaderUniform: ShaderUniform, value: Int32Array): void;
33
+ upload3i(shaderUniform: ShaderUniform, value: Vector3 | Vector4 | Color): void;
34
+ upload3iv(shaderUniform: ShaderUniform, value: Int32Array): void;
35
+ upload4i(shaderUniform: ShaderUniform, value: Vector4 | Color): void;
36
+ upload4iv(shaderUniform: ShaderUniform, value: Int32Array): void;
37
+ uploadMat2(shaderUniform: ShaderUniform, value: Float32Array): void;
38
+ uploadMat3(shaderUniform: ShaderUniform, value: Float32Array): void;
39
+ uploadMat4(shaderUniform: ShaderUniform, value: Matrix): void;
40
+ uploadMat4v(shaderUniform: ShaderUniform, value: Float32Array): void;
41
+ uploadMat2x3(shaderUniform: ShaderUniform, value: Float32Array): void;
42
+ uploadMat2x4(shaderUniform: ShaderUniform, value: Float32Array): void;
43
+ uploadMat3x2(shaderUniform: ShaderUniform, value: Float32Array): void;
44
+ uploadMat3x4(shaderUniform: ShaderUniform, value: Float32Array): void;
45
+ uploadMat4x2(shaderUniform: ShaderUniform, value: Float32Array): void;
46
+ uploadMat4x3(shaderUniform: ShaderUniform, value: Float32Array): void;
47
+ uploadTexture(shaderUniform: ShaderUniform, value: Texture): void;
48
+ uploadTextureArray(shaderUniform: ShaderUniform, value: Texture[]): void;
49
+ }
@@ -1 +1,9 @@
1
- export {};
1
+ import { ShaderUniform } from "./ShaderUniform";
2
+ /**
3
+ * Shader uniform block.
4
+ * @internal
5
+ */
6
+ export declare class ShaderUniformBlock {
7
+ readonly constUniforms: ShaderUniform[];
8
+ readonly textureUniforms: ShaderUniform[];
9
+ }
@@ -1 +1,7 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ * Constant buffer binding point allocation.
4
+ */
5
+ export declare enum ConstantBufferBindingPoint {
6
+ RendererInstance = 0
7
+ }
@@ -1,5 +1,10 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { IHardwareRenderer } from "@galacean/engine-design";
2
3
  import { Color } from "@galacean/engine-math";
4
+ import { RenderStateElementMap } from "../../BasicResources";
5
+ import { ShaderData } from "../ShaderData";
6
+ import { ShaderProperty } from "../ShaderProperty";
7
+ import { RenderState } from "./RenderState";
3
8
  import { RenderTargetBlendState } from "./RenderTargetBlendState";
4
9
  /**
5
10
  * Blend state.
@@ -13,5 +18,14 @@ export declare class BlendState extends DataObject {
13
18
  readonly blendColor: Color;
14
19
  /** Whether to use (Alpha-to-Coverage) technology. */
15
20
  alphaToCoverage: boolean;
21
+ /**
22
+ * @internal
23
+ */
24
+ _applyShaderDataValue(renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData): void;
25
+ /**
26
+ * @internal
27
+ * Apply the current blend state by comparing with the last blend state.
28
+ */
29
+ _apply(hardwareRenderer: IHardwareRenderer, lastRenderState: RenderState, customStates?: RenderStateElementMap): void;
16
30
  private _platformApply;
17
31
  }
@@ -1,5 +1,10 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { IHardwareRenderer } from "@galacean/engine-design";
3
+ import { RenderStateElementMap } from "../../BasicResources";
4
+ import { ShaderData } from "../ShaderData";
5
+ import { ShaderProperty } from "../ShaderProperty";
2
6
  import { CompareFunction } from "../enums/CompareFunction";
7
+ import { RenderState } from "./RenderState";
3
8
  /**
4
9
  * Depth state.
5
10
  */
@@ -11,5 +16,14 @@ export declare class DepthState extends DataObject {
11
16
  compareFunction: CompareFunction;
12
17
  /** Whether the depth value can be written.*/
13
18
  writeEnabled: boolean;
19
+ /**
20
+ * @internal
21
+ */
22
+ _applyShaderDataValue(renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData): void;
23
+ /**
24
+ * @internal
25
+ * Apply the current depth state by comparing with the last depth state.
26
+ */
27
+ _apply(hardwareRenderer: IHardwareRenderer, lastRenderState: RenderState, customStates?: RenderStateElementMap): void;
14
28
  private _platformApply;
15
29
  }
@@ -1,5 +1,10 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { IHardwareRenderer } from "@galacean/engine-design";
3
+ import { RenderStateElementMap } from "../../BasicResources";
4
+ import { ShaderData } from "../ShaderData";
5
+ import { ShaderProperty } from "../ShaderProperty";
2
6
  import { CullMode } from "../enums/CullMode";
7
+ import { RenderState } from "./RenderState";
3
8
  /**
4
9
  * Raster state.
5
10
  */
@@ -10,5 +15,17 @@ export declare class RasterState extends DataObject {
10
15
  depthBias: number;
11
16
  /** The scale factor for the variable depth offset for each polygon. */
12
17
  slopeScaledDepthBias: number;
18
+ /** @internal */
19
+ _cullFaceEnable: boolean;
20
+ /** @internal */
21
+ _frontFaceInvert: boolean;
22
+ /**
23
+ * @internal
24
+ */
25
+ _applyShaderDataValue(renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData): void;
26
+ /**
27
+ * @internal
28
+ */
29
+ _apply(hardwareRenderer: IHardwareRenderer, lastRenderState: RenderState, frontFaceInvert: boolean, customStates?: RenderStateElementMap): void;
13
30
  private _platformApply;
14
31
  }
@@ -1,4 +1,7 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { ShaderData, ShaderProperty } from "..";
3
+ import { RenderStateElementMap } from "../../BasicResources";
4
+ import { Engine } from "../../Engine";
2
5
  import { RenderQueueType } from "../enums/RenderQueueType";
3
6
  import { BlendState } from "./BlendState";
4
7
  import { DepthState } from "./DepthState";
@@ -18,4 +21,12 @@ export declare class RenderState extends DataObject {
18
21
  readonly rasterState: RasterState;
19
22
  /** Render queue type. */
20
23
  renderQueueType: RenderQueueType;
24
+ /**
25
+ * @internal
26
+ */
27
+ _applyStates(engine: Engine, frontFaceInvert: boolean, renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData, customRenderStates?: RenderStateElementMap): void;
28
+ /**
29
+ * @internal
30
+ */
31
+ _getRenderQueueByShaderData(renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData): RenderQueueType;
21
32
  }
@@ -1,6 +1,11 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { IHardwareRenderer } from "@galacean/engine-design";
3
+ import { RenderStateElementMap } from "../../BasicResources";
4
+ import { ShaderData } from "../ShaderData";
5
+ import { ShaderProperty } from "../ShaderProperty";
2
6
  import { CompareFunction } from "../enums/CompareFunction";
3
7
  import { StencilOperation } from "../enums/StencilOperation";
8
+ import { RenderState } from "./RenderState";
4
9
  /**
5
10
  * Stencil state.
6
11
  */
@@ -31,5 +36,13 @@ export declare class StencilState extends DataObject {
31
36
  zFailOperationFront: StencilOperation;
32
37
  /** specifying the function to use for back face when the stencil test passes, but the depth test fails. */
33
38
  zFailOperationBack: StencilOperation;
39
+ /**
40
+ * @internal
41
+ */
42
+ _applyShaderDataValue(renderStateDataMap: Record<number, ShaderProperty>, shaderData: ShaderData): void;
43
+ /**
44
+ * @internal
45
+ */
46
+ _apply(hardwareRenderer: IHardwareRenderer, lastRenderState: RenderState, customStates?: RenderStateElementMap): void;
34
47
  private _platformApply;
35
48
  }
@@ -1,5 +1,6 @@
1
1
  import { Camera } from "../Camera";
2
2
  import { PipelinePass } from "../RenderPipeline/PipelinePass";
3
+ import { RenderContext } from "../RenderPipeline/RenderContext";
3
4
  /**
4
5
  * Cascade shadow caster pass.
5
6
  */
@@ -36,6 +37,10 @@ export declare class CascadedShadowCasterPass extends PipelinePass {
36
37
  private _renderTarget;
37
38
  private _viewportOffsets;
38
39
  constructor(camera: Camera);
40
+ /**
41
+ * @internal
42
+ */
43
+ onRender(context: RenderContext): void;
39
44
  private _renderDirectShadowMap;
40
45
  private _updateReceiversShaderData;
41
46
  private _getCascadesSplitDistance;
@@ -1 +1,13 @@
1
- export {};
1
+ import { BoundingSphere, Plane } from "@galacean/engine-math";
2
+ import { VirtualCamera } from "../VirtualCamera";
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare class ShadowSliceData {
7
+ resolution: number;
8
+ virtualCamera: VirtualCamera;
9
+ cullPlanes: Plane[];
10
+ cullPlaneCount: number;
11
+ splitBoundSphere: BoundingSphere;
12
+ sphereCenterZ: number;
13
+ }
@@ -1 +1,43 @@
1
- export {};
1
+ import { BoundingBox, BoundingFrustum, Matrix, Plane, Vector2, Vector3, Vector4 } from "@galacean/engine-math";
2
+ import { Camera } from "../Camera";
3
+ import { RenderContext } from "../RenderPipeline/RenderContext";
4
+ import { Renderer } from "../Renderer";
5
+ import { DirectLight, Light } from "../lighting";
6
+ import { TextureFormat } from "../texture";
7
+ import { ShadowSliceData } from "./ShadowSliceData";
8
+ import { ShadowResolution } from "./enum/ShadowResolution";
9
+ /**
10
+ * @internal
11
+ */
12
+ export declare class ShadowUtils {
13
+ private static _tempMatrix0;
14
+ /** @internal */
15
+ private static _shadowMapCoordMatrix;
16
+ private static _frustumCorners;
17
+ private static _adjustNearPlane;
18
+ private static _adjustFarPlane;
19
+ private static _backPlaneFaces;
20
+ private static _edgePlanePoint2;
21
+ /** near, far, left, right, bottom, top */
22
+ private static _frustumPlaneNeighbors;
23
+ /** near, far, left, right, bottom, top */
24
+ private static _frustumTwoPlaneCorners;
25
+ static readonly atlasBorderSize: number;
26
+ static shadowResolution(value: ShadowResolution): number;
27
+ static shadowDepthFormat(value: ShadowResolution, supportDepthTexture: boolean): TextureFormat;
28
+ static cullingRenderBounds(bounds: BoundingBox, cullPlaneCount: number, cullPlanes: Plane[]): boolean;
29
+ static shadowCullFrustum(context: RenderContext, light: Light, renderer: Renderer, shadowSliceData: ShadowSliceData): void;
30
+ static getBoundSphereByFrustum(near: number, far: number, camera: Camera, forward: Vector3, shadowSliceData: ShadowSliceData): void;
31
+ static getDirectionLightShadowCullPlanes(cameraFrustum: BoundingFrustum, splitDistance: number, cameraNear: number, direction: Vector3, shadowSliceData: ShadowSliceData): void;
32
+ static getDirectionalLightMatrices(lightUp: Vector3, lightSide: Vector3, lightForward: Vector3, cascadeIndex: number, nearPlane: number, shadowResolution: number, shadowSliceData: ShadowSliceData, outShadowMatrices: Float32Array): void;
33
+ static getMaxTileResolutionInAtlas(atlasWidth: number, atlasHeight: number, tileCount: number): number;
34
+ static getShadowBias(light: DirectLight, projectionMatrix: Matrix, shadowResolution: number, out: Vector2): void;
35
+ /**
36
+ * Apply shadow slice scale and offset
37
+ */
38
+ static applySliceTransform(tileSize: number, atlasWidth: number, atlasHeight: number, cascadeIndex: number, atlasOffset: Vector2, outShadowMatrices: Float32Array): void;
39
+ /**
40
+ * Extract scale and bias from a fade distance to achieve a linear fading of the fade distance.
41
+ */
42
+ static getScaleAndBiasForLinearDistanceFade(fadeDistance: number, border: number, outInfo: Vector4): void;
43
+ }
@@ -1,3 +1,4 @@
1
+ import { RenderContext } from "../RenderPipeline/RenderContext";
1
2
  import { Mesh } from "../graphic/Mesh";
2
3
  import { Material } from "../material";
3
4
  /**
@@ -19,4 +20,12 @@ export declare class Sky {
19
20
  */
20
21
  get mesh(): Mesh;
21
22
  set mesh(value: Mesh);
23
+ /**
24
+ * @internal
25
+ */
26
+ destroy(): void;
27
+ /**
28
+ * @internal
29
+ */
30
+ _render(context: RenderContext): void;
22
31
  }