@galacean/engine-core 1.0.0 → 1.1.0-alpha.1

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 (147) hide show
  1. package/dist/main.js +16279 -13113
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +16279 -13113
  4. package/dist/module.js +16217 -13061
  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 +60 -16
  20. package/types/Component.d.ts +1 -8
  21. package/types/ComponentsDependencies.d.ts +17 -9
  22. package/types/DisorderedArray.d.ts +4 -3
  23. package/types/Engine.d.ts +43 -46
  24. package/types/Entity.d.ts +4 -2
  25. package/types/RenderPipeline/Basic2DBatcher.d.ts +6 -7
  26. package/types/RenderPipeline/BasicRenderPipeline.d.ts +7 -6
  27. package/types/RenderPipeline/ClassPool.d.ts +3 -1
  28. package/types/RenderPipeline/CullingResults.d.ts +1 -0
  29. package/types/RenderPipeline/DepthOnlyPass.d.ts +1 -0
  30. package/types/RenderPipeline/IPoolElement.d.ts +3 -0
  31. package/types/RenderPipeline/MeshRenderData.d.ts +17 -0
  32. package/types/RenderPipeline/MeshRenderElement.d.ts +3 -1
  33. package/types/RenderPipeline/PipelinePass.d.ts +16 -0
  34. package/types/RenderPipeline/PipelineUtils.d.ts +1 -0
  35. package/types/RenderPipeline/RenderData.d.ts +7 -0
  36. package/types/RenderPipeline/RenderElement.d.ts +8 -10
  37. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  38. package/types/RenderPipeline/RenderQueue.d.ts +3 -5
  39. package/types/RenderPipeline/SpriteElement.d.ts +3 -1
  40. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +4 -3
  41. package/types/RenderPipeline/SpriteMaskElement.d.ts +3 -1
  42. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +12 -0
  43. package/types/RenderPipeline/SpriteRenderData.d.ts +14 -0
  44. package/types/RenderPipeline/TextRenderData.d.ts +8 -0
  45. package/types/RenderPipeline/TextRenderElement.d.ts +3 -1
  46. package/types/RenderPipeline/enums/PipelineStage.d.ts +11 -0
  47. package/types/RenderPipeline/index.d.ts +4 -0
  48. package/types/Renderer.d.ts +10 -15
  49. package/types/Scene.d.ts +16 -9
  50. package/types/SceneManager.d.ts +28 -5
  51. package/types/Script.d.ts +18 -15
  52. package/types/Transform.d.ts +9 -12
  53. package/types/Utils.d.ts +28 -0
  54. package/types/animation/AnimationClip.d.ts +2 -1
  55. package/types/animation/Animator.d.ts +5 -4
  56. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +0 -1
  57. package/types/animation/enums/LayerState.d.ts +3 -1
  58. package/types/animation/internal/AnimationCurveLayerOwner.d.ts +1 -0
  59. package/types/asset/AssetType.d.ts +18 -16
  60. package/types/asset/ContentRestorer.d.ts +17 -0
  61. package/types/asset/GraphicsResource.d.ts +5 -0
  62. package/types/asset/IReferable.d.ts +2 -0
  63. package/types/asset/LoadItem.d.ts +16 -9
  64. package/types/asset/Loader.d.ts +3 -1
  65. package/types/asset/ReferResource.d.ts +22 -0
  66. package/types/asset/ResourceManager.d.ts +17 -11
  67. package/types/asset/request.d.ts +7 -3
  68. package/types/base/Constant.d.ts +3 -1
  69. package/types/base/EngineObject.d.ts +1 -0
  70. package/types/base/EventDispatcher.d.ts +2 -15
  71. package/types/base/Time.d.ts +27 -24
  72. package/types/base/index.d.ts +0 -2
  73. package/types/clone/ComponentCloner.d.ts +2 -1
  74. package/types/enums/ActiveChangeFlag.d.ts +6 -0
  75. package/types/enums/DepthTextureMode.d.ts +7 -0
  76. package/types/env-probe/CubeProbe.d.ts +0 -7
  77. package/types/env-probe/Probe.d.ts +0 -6
  78. package/types/graphic/Buffer.d.ts +25 -16
  79. package/types/graphic/BufferUtil.d.ts +1 -0
  80. package/types/graphic/Mesh.d.ts +5 -16
  81. package/types/graphic/SubMesh.d.ts +3 -1
  82. package/types/graphic/VertexElement.d.ts +10 -6
  83. package/types/index.d.ts +9 -7
  84. package/types/input/InputManager.d.ts +3 -3
  85. package/types/input/interface/IInput.d.ts +1 -1
  86. package/types/lighting/AmbientLight.d.ts +4 -1
  87. package/types/lighting/DirectLight.d.ts +0 -1
  88. package/types/lighting/Light.d.ts +0 -1
  89. package/types/lighting/LightManager.d.ts +1 -0
  90. package/types/lighting/SpotLight.d.ts +0 -1
  91. package/types/material/BaseMaterial.d.ts +8 -10
  92. package/types/material/BlinnPhongMaterial.d.ts +0 -3
  93. package/types/material/Material.d.ts +8 -8
  94. package/types/material/PBRMaterial.d.ts +12 -3
  95. package/types/material/PBRSpecularMaterial.d.ts +1 -1
  96. package/types/material/UnlitMaterial.d.ts +1 -1
  97. package/types/mesh/BlendShape.d.ts +1 -1
  98. package/types/mesh/BlendShapeFrame.d.ts +28 -6
  99. package/types/mesh/BufferMesh.d.ts +2 -2
  100. package/types/mesh/MeshRenderer.d.ts +7 -12
  101. package/types/mesh/ModelMesh.d.ts +62 -41
  102. package/types/mesh/PrimitiveMesh.d.ts +6 -2
  103. package/types/mesh/PrimitiveMeshRestorer.d.ts +1 -0
  104. package/types/mesh/Skin.d.ts +3 -0
  105. package/types/mesh/SkinnedMeshRenderer.d.ts +18 -23
  106. package/types/mesh/index.d.ts +6 -5
  107. package/types/particle/ParticleRenderer.d.ts +2 -2
  108. package/types/physics/CharacterController.d.ts +0 -2
  109. package/types/physics/Collider.d.ts +1 -1
  110. package/types/physics/Collision.d.ts +4 -0
  111. package/types/physics/PhysicsManager.d.ts +1 -20
  112. package/types/physics/PhysicsScene.d.ts +75 -0
  113. package/types/physics/index.d.ts +7 -7
  114. package/types/physics/joint/HingeJoint.d.ts +2 -2
  115. package/types/physics/joint/Joint.d.ts +2 -2
  116. package/types/physics/joint/SpringJoint.d.ts +1 -1
  117. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +7 -0
  118. package/types/renderingHardwareInterface/IPlatformTexture2D.d.ts +1 -1
  119. package/types/renderingHardwareInterface/IPlatformTexture2DArray.d.ts +1 -1
  120. package/types/renderingHardwareInterface/IPlatformTextureCube.d.ts +1 -1
  121. package/types/renderingHardwareInterface/index.d.ts +1 -0
  122. package/types/shader/Shader.d.ts +54 -23
  123. package/types/shader/ShaderData.d.ts +24 -24
  124. package/types/shader/ShaderMacro.d.ts +16 -0
  125. package/types/shader/ShaderPart.d.ts +41 -0
  126. package/types/shader/ShaderPass.d.ts +9 -2
  127. package/types/shader/ShaderProperty.d.ts +7 -0
  128. package/types/shader/ShaderTagKey.d.ts +16 -0
  129. package/types/shader/SubShader.d.ts +19 -0
  130. package/types/shader/enums/RenderStateElementKey.d.ts +58 -0
  131. package/types/shader/index.d.ts +6 -1
  132. package/types/shader/state/index.d.ts +6 -0
  133. package/types/shadow/CascadedShadowCasterPass.d.ts +6 -7
  134. package/types/sky/Sky.d.ts +12 -4
  135. package/types/sky/SkyBoxMaterial.d.ts +27 -9
  136. package/types/sky/SkyProceduralMaterial.d.ts +72 -0
  137. package/types/sky/index.d.ts +1 -0
  138. package/types/texture/RenderTarget.d.ts +3 -8
  139. package/types/texture/Texture.d.ts +8 -6
  140. package/types/texture/Texture2D.d.ts +4 -2
  141. package/types/texture/Texture2DArray.d.ts +1 -1
  142. package/types/texture/TextureCube.d.ts +1 -1
  143. package/types/texture/enums/TextureFormat.d.ts +55 -49
  144. package/types/texture/enums/TextureUsage.d.ts +9 -0
  145. package/types/texture/index.d.ts +1 -0
  146. package/types/trail/TrailRenderer.d.ts +0 -5
  147. package/types/utils/SafeLoopArray.d.ts +41 -0
@@ -2,15 +2,34 @@ import { Engine } from "../Engine";
2
2
  import { ShaderMacro } from "./ShaderMacro";
3
3
  import { ShaderPass } from "./ShaderPass";
4
4
  import { ShaderProperty } from "./ShaderProperty";
5
+ import { SubShader } from "./SubShader";
5
6
  /**
6
7
  * Shader for rendering.
7
8
  */
8
9
  export declare class Shader {
10
+ readonly name: string;
9
11
  private static _shaderMap;
10
- private static _propertyNameMap;
11
- private static _macroMaskMap;
12
- private static _macroCounter;
13
- private static _macroMap;
12
+ /**
13
+ * Create a shader by source code.
14
+ *
15
+ * @remarks
16
+ *
17
+ * ShaderLab must be enabled first as follows:
18
+ * ```ts
19
+ * // Import shaderLab
20
+ * import { ShaderLab } from "@galacean/engine-shader-lab";
21
+ * // Create engine with shaderLab
22
+ * const engine = await WebGLEngine.create({ canvas: "canvas", new ShaderLab() });
23
+ * ...
24
+ * ```
25
+ *
26
+ * @param shaderSource - shader code
27
+ * @returns Shader
28
+ *
29
+ * @throws
30
+ * Throw string exception if shaderLab has not been enabled properly.
31
+ */
32
+ static create(shaderSource: string): Shader;
14
33
  /**
15
34
  * Create a shader.
16
35
  * @param name - Name of the shader
@@ -26,18 +45,47 @@ export declare class Shader {
26
45
  * @returns Shader
27
46
  */
28
47
  static create(name: string, shaderPasses: ShaderPass[]): Shader;
48
+ /**
49
+ * Create a shader.
50
+ * @param name - Name of the shader
51
+ * @param subShaders - Sub shaders
52
+ * @returns Shader
53
+ */
54
+ static create(name: string, subShaders: SubShader[]): Shader;
29
55
  /**
30
56
  * Find a shader by name.
31
57
  * @param name - Name of the shader
32
58
  */
33
59
  static find(name: string): Shader;
60
+ private _subShaders;
61
+ /**
62
+ * Sub shaders of the shader.
63
+ */
64
+ get subShaders(): ReadonlyArray<SubShader>;
65
+ private constructor();
66
+ /**
67
+ * Compile shader variant by macro name list.
68
+ *
69
+ * @remarks
70
+ * Usually a shader contains some macros,any combination of macros is called shader variant.
71
+ *
72
+ * @param engine - Engine to which the shader variant belongs
73
+ * @param macros - Macro name list
74
+ * @returns Is the compiled shader variant valid
75
+ */
76
+ compileVariant(engine: Engine, macros: string[]): boolean;
77
+ private static _applyConstRenderStates;
34
78
  /**
79
+ * @deprecated Please use `ShaderMacro.getByName` instead
80
+ *
35
81
  * Get shader macro by name.
36
82
  * @param name - Name of the shader macro
37
83
  * @returns Shader macro
38
84
  */
39
85
  static getMacroByName(name: string): ShaderMacro;
40
86
  /**
87
+ * @deprecated Please use `ShaderMacro.getByName` instead
88
+ *
41
89
  * Get shader macro by name.
42
90
  * @param name - Name of the shader macro
43
91
  * @param value - Value of the shader macro
@@ -45,28 +93,11 @@ export declare class Shader {
45
93
  */
46
94
  static getMacroByName(name: string, value: string): ShaderMacro;
47
95
  /**
96
+ * @deprecated Please use `ShaderProperty.getByName` instead
97
+ *
48
98
  * Get shader property by name.
49
99
  * @param name - Name of the shader property
50
100
  * @returns Shader property
51
101
  */
52
102
  static getPropertyByName(name: string): ShaderProperty;
53
- /** The name of shader. */
54
- readonly name: string;
55
- /**
56
- * Shader passes.
57
- */
58
- get passes(): ReadonlyArray<ShaderPass>;
59
- private _passes;
60
- private constructor();
61
- /**
62
- * Compile shader variant by macro name list.
63
- *
64
- * @remarks
65
- * Usually a shader contains some macros,any combination of macros is called shader variant.
66
- *
67
- * @param engine - Engine to which the shader variant belongs
68
- * @param macros - Macro name list
69
- * @returns Is the compiled shader variant valid
70
- */
71
- compileVariant(engine: Engine, macros: string[]): boolean;
72
103
  }
@@ -1,13 +1,13 @@
1
1
  import { IClone } from "@galacean/engine-design";
2
2
  import { Color, Matrix, Vector2, Vector3, Vector4 } from "@galacean/engine-math";
3
- import { IRefObject } from "../asset/IRefObject";
3
+ import { IReferable } from "../asset/IReferable";
4
4
  import { Texture } from "../texture/Texture";
5
5
  import { ShaderMacro } from "./ShaderMacro";
6
6
  import { ShaderProperty } from "./ShaderProperty";
7
7
  /**
8
8
  * Shader data collection,Correspondence includes shader properties data and macros data.
9
9
  */
10
- export declare class ShaderData implements IRefObject, IClone {
10
+ export declare class ShaderData implements IReferable, IClone {
11
11
  private _macroMap;
12
12
  private _refCount;
13
13
  /**
@@ -18,7 +18,7 @@ export declare class ShaderData implements IRefObject, IClone {
18
18
  getFloat(propertyName: string): number;
19
19
  /**
20
20
  * Get float by shader property.
21
- * @param property - Shader property, use `Shader.getPropertyByName` to get
21
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
22
22
  * @returns Float
23
23
  */
24
24
  getFloat(property: ShaderProperty): number;
@@ -32,7 +32,7 @@ export declare class ShaderData implements IRefObject, IClone {
32
32
  /**
33
33
  * Set float by shader property.
34
34
  * @remarks Corresponding float shader property type.
35
- * @param property - Shader property, use `Shader.getPropertyByName` to get
35
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
36
36
  * @param value - Float
37
37
  */
38
38
  setFloat(property: ShaderProperty, value: number): void;
@@ -44,7 +44,7 @@ export declare class ShaderData implements IRefObject, IClone {
44
44
  getInt(propertyName: string): number;
45
45
  /**
46
46
  * Get int by shader property.
47
- * @param property - Shader property, use `Shader.getPropertyByName` to get
47
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
48
48
  * @returns Int
49
49
  */
50
50
  getInt(property: ShaderProperty): number;
@@ -58,7 +58,7 @@ export declare class ShaderData implements IRefObject, IClone {
58
58
  /**
59
59
  * Set int by shader property.
60
60
  * @remarks Correspondence includes int and bool shader property type.
61
- * @param property - Shader property, use `Shader.getPropertyByName` to get
61
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
62
62
  * @param value - Int
63
63
  */
64
64
  setInt(property: ShaderProperty, value: number): void;
@@ -70,7 +70,7 @@ export declare class ShaderData implements IRefObject, IClone {
70
70
  getFloatArray(propertyName: string): Float32Array;
71
71
  /**
72
72
  * Get float array by shader property.
73
- * @param property - Shader property, use `Shader.getPropertyByName` to get
73
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
74
74
  * @returns Float array
75
75
  */
76
76
  getFloatArray(property: ShaderProperty): Float32Array;
@@ -84,7 +84,7 @@ export declare class ShaderData implements IRefObject, IClone {
84
84
  /**
85
85
  * Set float array by shader property.
86
86
  * @remarks Correspondence includes float array、vec2 array、vec3 array、vec4 array and matrix array shader property type.
87
- * @param property - Shader property, use `Shader.getPropertyByName` to get
87
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
88
88
  * @param value - Float array
89
89
  */
90
90
  setFloatArray(property: ShaderProperty, value: Float32Array): void;
@@ -96,7 +96,7 @@ export declare class ShaderData implements IRefObject, IClone {
96
96
  getIntArray(propertyName: string): Int32Array;
97
97
  /**
98
98
  * Get int array by shader property.
99
- * @param property - Shader property, use `Shader.getPropertyByName` to get
99
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
100
100
  * @returns Int Array
101
101
  */
102
102
  getIntArray(property: ShaderProperty): Int32Array;
@@ -110,7 +110,7 @@ export declare class ShaderData implements IRefObject, IClone {
110
110
  /**
111
111
  * Set int array by shader property.
112
112
  * @remarks Correspondence includes bool array、int array、bvec2 array、bvec3 array、bvec4 array、ivec2 array、ivec3 array and ivec4 array shader property type.
113
- * @param property - Shader property, use `Shader.getPropertyByName` to get
113
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
114
114
  * @param value - Int Array
115
115
  */
116
116
  setIntArray(property: ShaderProperty, value: Int32Array): void;
@@ -122,7 +122,7 @@ export declare class ShaderData implements IRefObject, IClone {
122
122
  getVector2(propertyName: string): Vector2;
123
123
  /**
124
124
  * Get two-dimensional from shader property.
125
- * @param property - Shader property, use `Shader.getPropertyByName` to get
125
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
126
126
  * @returns Two-dimensional vector
127
127
  */
128
128
  getVector2(property: ShaderProperty): Vector2;
@@ -136,7 +136,7 @@ export declare class ShaderData implements IRefObject, IClone {
136
136
  /**
137
137
  * Set two-dimensional vector from shader property.
138
138
  * @remarks Correspondence includes vec2、ivec2 and bvec2 shader property type.
139
- * @param property - Shader property, use `Shader.getPropertyByName` to get
139
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
140
140
  * @param value - Two-dimensional vector
141
141
  */
142
142
  setVector2(property: ShaderProperty, value: Vector2): void;
@@ -148,7 +148,7 @@ export declare class ShaderData implements IRefObject, IClone {
148
148
  getVector3(propertyName: string): Vector3;
149
149
  /**
150
150
  * Get vector3 by shader property.
151
- * @param property - Shader property, use `Shader.getPropertyByName` to get
151
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
152
152
  * @returns Three-dimensional vector
153
153
  */
154
154
  getVector3(property: ShaderProperty): Vector3;
@@ -162,7 +162,7 @@ export declare class ShaderData implements IRefObject, IClone {
162
162
  /**
163
163
  * Set three dimensional vector by shader property.
164
164
  * @remarks Correspondence includes vec3、ivec3 and bvec3 shader property type.
165
- * @param property - Shader property, use `Shader.getPropertyByName` to get
165
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
166
166
  * @param value - Three-dimensional vector
167
167
  */
168
168
  setVector3(property: ShaderProperty, value: Vector3): void;
@@ -174,7 +174,7 @@ export declare class ShaderData implements IRefObject, IClone {
174
174
  getVector4(propertyName: string): Vector4;
175
175
  /**
176
176
  * Get vector4 by shader property.
177
- * @param property - Shader property, use `Shader.getPropertyByName` to get
177
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
178
178
  * @returns Four-dimensional vector
179
179
  */
180
180
  getVector4(property: ShaderProperty): Vector4;
@@ -188,7 +188,7 @@ export declare class ShaderData implements IRefObject, IClone {
188
188
  /**
189
189
  * Set four-dimensional vector by shader property.
190
190
  * @remarks Correspondence includes vec4、ivec4 and bvec4 shader property type.
191
- * @param property - Shader property, use `Shader.getPropertyByName` to get
191
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
192
192
  * @param value - Four-dimensional vector
193
193
  */
194
194
  setVector4(property: ShaderProperty, value: Vector4): void;
@@ -200,7 +200,7 @@ export declare class ShaderData implements IRefObject, IClone {
200
200
  getMatrix(propertyName: string): Matrix;
201
201
  /**
202
202
  * Get matrix by shader property.
203
- * @param property - Shader property, use `Shader.getPropertyByName` to get
203
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
204
204
  * @returns Matrix
205
205
  */
206
206
  getMatrix(property: ShaderProperty): Matrix;
@@ -214,7 +214,7 @@ export declare class ShaderData implements IRefObject, IClone {
214
214
  /**
215
215
  * Set matrix by shader property.
216
216
  * @remarks Correspondence includes matrix shader property type.
217
- * @param property - Shader property, use `Shader.getPropertyByName` to get
217
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
218
218
  * @param value - Matrix
219
219
  */
220
220
  setMatrix(property: ShaderProperty, value: Matrix): any;
@@ -226,7 +226,7 @@ export declare class ShaderData implements IRefObject, IClone {
226
226
  getColor(propertyName: string): Color;
227
227
  /**
228
228
  * Get color by shader property.
229
- * @param property - Shader property, use `Shader.getPropertyByName` to get
229
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
230
230
  * @returns Color
231
231
  */
232
232
  getColor(property: ShaderProperty): Color;
@@ -240,7 +240,7 @@ export declare class ShaderData implements IRefObject, IClone {
240
240
  /**
241
241
  * Set color by shader property.
242
242
  * @remarks Correspondence includes vec4 shader property type.
243
- * @param property - Shader property, use `Shader.getPropertyByName` to get
243
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
244
244
  * @param value - Color
245
245
  */
246
246
  setColor(property: ShaderProperty, value: Color): void;
@@ -252,7 +252,7 @@ export declare class ShaderData implements IRefObject, IClone {
252
252
  getTexture(propertyName: string): Texture;
253
253
  /**
254
254
  * Get texture by shader property.
255
- * @param property - Shader property, use `Shader.getPropertyByName` to get
255
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
256
256
  * @returns Texture
257
257
  */
258
258
  getTexture(property: ShaderProperty): Texture;
@@ -264,7 +264,7 @@ export declare class ShaderData implements IRefObject, IClone {
264
264
  setTexture(propertyName: string, value: Texture): void;
265
265
  /**
266
266
  * Set texture by shader property.
267
- * @param property - Shader property, use `Shader.getPropertyByName` to get
267
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
268
268
  * @param value - Texture
269
269
  */
270
270
  setTexture(property: ShaderProperty, value: Texture): void;
@@ -276,7 +276,7 @@ export declare class ShaderData implements IRefObject, IClone {
276
276
  getTextureArray(propertyName: string): Texture[];
277
277
  /**
278
278
  * Get texture array by shader property.
279
- * @param property - Shader property, use `Shader.getPropertyByName` to get
279
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
280
280
  * @returns Texture array
281
281
  */
282
282
  getTextureArray(property: ShaderProperty): Texture[];
@@ -288,7 +288,7 @@ export declare class ShaderData implements IRefObject, IClone {
288
288
  setTextureArray(propertyName: string, value: Texture[]): void;
289
289
  /**
290
290
  * Set texture array by shader property.
291
- * @param property - Shader property, use `Shader.getPropertyByName` to get
291
+ * @param property - Shader property, use `ShaderProperty.getByName` to get
292
292
  * @param value - Texture array
293
293
  */
294
294
  setTextureArray(property: ShaderProperty, value: Texture[]): void;
@@ -3,8 +3,24 @@
3
3
  */
4
4
  export declare class ShaderMacro {
5
5
  private static _macroNameCounter;
6
+ private static _macroCounter;
7
+ private static _macroMap;
8
+ /**
9
+ * Get shader macro by name.
10
+ * @param name - Name of the shader macro
11
+ * @returns Shader macro
12
+ */
13
+ static getByName(name: string): ShaderMacro;
14
+ /**
15
+ * Get shader macro by name.
16
+ * @param name - Name of the shader macro
17
+ * @param value - Value of the shader macro
18
+ * @returns Shader macro
19
+ */
20
+ static getByName(name: string, value: string): ShaderMacro;
6
21
  /** Name. */
7
22
  readonly name: string;
8
23
  /** Value. */
9
24
  readonly value: string;
25
+ private constructor();
10
26
  }
@@ -0,0 +1,41 @@
1
+ import { ShaderTagKey } from "./ShaderTagKey";
2
+ /**
3
+ * Base class for shader structure.
4
+ */
5
+ export declare abstract class ShaderPart {
6
+ private _tagsMap;
7
+ /**
8
+ * Set tag by key name.
9
+ * @param keyName - Key name of the tag
10
+ * @param value - Tag value
11
+ */
12
+ setTag<T extends number | string | boolean>(keyName: string, value: T): void;
13
+ /**
14
+ * Set tag.
15
+ * @param key - Key of the tag
16
+ * @param value - Tag value
17
+ */
18
+ setTag<T extends number | string | boolean>(key: ShaderTagKey, value: T): void;
19
+ /**
20
+ * Delete a tag by key name.
21
+ * @param KeyName - Key name of the tag
22
+ */
23
+ deleteTag(KeyName: string): void;
24
+ /**
25
+ * Delete a tag by key.
26
+ * @param key - Key of the tag
27
+ */
28
+ deleteTag(key: ShaderTagKey): void;
29
+ /**
30
+ * Get tag by key name.
31
+ * @param keyName - Key name of the tag
32
+ * @returns Tag value
33
+ */
34
+ getTagValue<T extends number | string | boolean>(keyName: string): T;
35
+ /**
36
+ * Get tag value by key.
37
+ * @param key - Key of the tag
38
+ * @returns Tag value
39
+ */
40
+ getTagValue<T extends number | string | boolean>(key: ShaderTagKey): T;
41
+ }
@@ -1,9 +1,16 @@
1
+ import { ShaderPart } from "./ShaderPart";
1
2
  /**
2
3
  * Shader pass containing vertex and fragment source.
3
4
  */
4
- export declare class ShaderPass {
5
+ export declare class ShaderPass extends ShaderPart {
5
6
  private static _shaderPassCounter;
6
7
  private _vertexSource;
7
8
  private _fragmentSource;
8
- constructor(vertexSource: string, fragmentSource: string);
9
+ /**
10
+ * Create a shader pass.
11
+ * @param vertexSource - Vertex shader source
12
+ * @param fragmentSource - Fragment shader source
13
+ * @param tags - Tags
14
+ */
15
+ constructor(vertexSource: string, fragmentSource: string, tags?: Record<string, number | string | boolean>);
9
16
  }
@@ -4,6 +4,13 @@ import { ShaderPropertyType } from "./enums/ShaderPropertyType";
4
4
  */
5
5
  export declare class ShaderProperty {
6
6
  private static _propertyNameCounter;
7
+ private static _propertyNameMap;
8
+ /**
9
+ * Get shader property by name.
10
+ * @param name - Name of the shader property
11
+ * @returns Shader property
12
+ */
13
+ static getByName(name: string): ShaderProperty;
7
14
  /** Shader property name. */
8
15
  readonly name: string;
9
16
  /**
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shader tag key.
3
+ */
4
+ export declare class ShaderTagKey {
5
+ private static _nameCounter;
6
+ private static _nameMap;
7
+ /**
8
+ * Get shader property by name.
9
+ * @param name - Name of the shader property
10
+ * @returns Shader property
11
+ */
12
+ static getByName(name: string): ShaderTagKey;
13
+ /** Shader tag property name. */
14
+ readonly name: string;
15
+ private constructor();
16
+ }
@@ -0,0 +1,19 @@
1
+ import { ShaderPart } from "./ShaderPart";
2
+ import { ShaderPass } from "./ShaderPass";
3
+ /**
4
+ * Sub shader.
5
+ */
6
+ export declare class SubShader extends ShaderPart {
7
+ readonly name: string;
8
+ private _passes;
9
+ /**
10
+ * Sub shader passes.
11
+ */
12
+ get passes(): ReadonlyArray<ShaderPass>;
13
+ /**
14
+ * Create a sub shader.
15
+ * @param name - Name of the sub shader
16
+ * @param passes - Sub shader passes
17
+ */
18
+ constructor(name: string, passes: ShaderPass[], tags?: Record<string, number | string | boolean>);
19
+ }
@@ -0,0 +1,58 @@
1
+ export declare enum RenderStateElementKey {
2
+ /** Blend state enabled for target 0 key. */
3
+ BlendStateEnabled0 = 0,
4
+ /** Blend state color blend operation for target 0 key. */
5
+ BlendStateColorBlendOperation0 = 1,
6
+ /** Blend state alpha blend operation for target 0 key. */
7
+ BlendStateAlphaBlendOperation0 = 2,
8
+ /** Blend state source color blend factor for target 0 key. */
9
+ BlendStateSourceColorBlendFactor0 = 3,
10
+ /** Blend state source alpha blend factor for target 0 key. */
11
+ BlendStateSourceAlphaBlendFactor0 = 4,
12
+ /** Blend state destination color blend factor for target 0 key. */
13
+ BlendStateDestinationColorBlendFactor0 = 5,
14
+ /** Blend state destination alpha blend factor for target 0 key. */
15
+ BlendStateDestinationAlphaBlendFactor0 = 6,
16
+ /** Blend state color write mask for target 0 key. */
17
+ BlendStateColorWriteMask0 = 7,
18
+ /** Blend state blend color key. */
19
+ BlendStateBlendColor = 8,
20
+ /** Blend state alpha to coverage key. */
21
+ BlendStateAlphaToCoverage = 9,
22
+ /** Depth state enabled key. */
23
+ DepthStateEnabled = 10,
24
+ /** Depth state write enabled key. */
25
+ DepthStateWriteEnabled = 11,
26
+ /** Depth state compare function key. */
27
+ DepthStateCompareFunction = 12,
28
+ /** Stencil state enabled key. */
29
+ StencilStateEnabled = 13,
30
+ /** Stencil state reference value key. */
31
+ StencilStateReferenceValue = 14,
32
+ /** Stencil state read mask key. */
33
+ StencilStateMask = 15,
34
+ /** Stencil state write mask key. */
35
+ StencilStateWriteMask = 16,
36
+ /** Stencil state compare function front key. */
37
+ StencilStateCompareFunctionFront = 17,
38
+ /** Stencil state compare function back key. */
39
+ StencilStateCompareFunctionBack = 18,
40
+ /** Stencil state pass operation front key. */
41
+ StencilStatePassOperationFront = 19,
42
+ /** Stencil state pass operation back key. */
43
+ StencilStatePassOperationBack = 20,
44
+ /** Stencil state fail operation front key. */
45
+ StencilStateFailOperationFront = 21,
46
+ /** Stencil state fail operation back key. */
47
+ StencilStateFailOperationBack = 22,
48
+ /** Stencil state z fail operation front key. */
49
+ StencilStateZFailOperationFront = 23,
50
+ /** Stencil state z fail operation back key. */
51
+ StencilStateZFailOperationBack = 24,
52
+ /** Raster state fill mode key. */
53
+ RasterStateCullMode = 25,
54
+ /** Raster state cull mode key. */
55
+ RasterStateDepthBias = 26,
56
+ /** Raster state depth bias key. */
57
+ RasterStateSlopeScaledDepthBias = 27
58
+ }
@@ -1,12 +1,17 @@
1
- export { RenderQueueType } from "./enums/RenderQueueType";
2
1
  export { BlendFactor } from "./enums/BlendFactor";
3
2
  export { BlendOperation } from "./enums/BlendOperation";
4
3
  export { ColorWriteMask } from "./enums/ColorWriteMask";
5
4
  export { CompareFunction } from "./enums/CompareFunction";
6
5
  export { CullMode } from "./enums/CullMode";
6
+ export { RenderStateElementKey as RenderStateDataKey } from "./enums/RenderStateElementKey";
7
+ export { RenderQueueType } from "./enums/RenderQueueType";
7
8
  export { ShaderPropertyType } from "./enums/ShaderPropertyType";
8
9
  export { StencilOperation } from "./enums/StencilOperation";
9
10
  export { Shader } from "./Shader";
10
11
  export { ShaderData } from "./ShaderData";
12
+ export { ShaderMacro } from "./ShaderMacro";
11
13
  export { ShaderPass } from "./ShaderPass";
12
14
  export { ShaderProperty } from "./ShaderProperty";
15
+ export { ShaderTagKey } from "./ShaderTagKey";
16
+ export { SubShader } from "./SubShader";
17
+ export * from "./state";
@@ -0,0 +1,6 @@
1
+ export { BlendState } from "./BlendState";
2
+ export { DepthState } from "./DepthState";
3
+ export { RasterState } from "./RasterState";
4
+ export { RenderState } from "./RenderState";
5
+ export { RenderTargetBlendState } from "./RenderTargetBlendState";
6
+ export { StencilState } from "./StencilState";
@@ -1,8 +1,9 @@
1
1
  import { Camera } from "../Camera";
2
+ import { PipelinePass } from "../RenderPipeline/PipelinePass";
2
3
  /**
3
- * Cascade shadow caster.
4
+ * Cascade shadow caster pass.
4
5
  */
5
- export declare class CascadedShadowCasterPass {
6
+ export declare class CascadedShadowCasterPass extends PipelinePass {
6
7
  private static _lightShadowBiasProperty;
7
8
  private static _lightDirectionProperty;
8
9
  private static _shadowMatricesProperty;
@@ -12,12 +13,11 @@ export declare class CascadedShadowCasterPass {
12
13
  private static _shadowSplitSpheresProperty;
13
14
  private static _maxCascades;
14
15
  private static _cascadesSplitDistance;
16
+ private static _viewport;
15
17
  private static _clearColor;
16
18
  private static _tempVector;
17
19
  private static _tempMatrix0;
18
20
  private readonly _camera;
19
- private readonly _engine;
20
- private readonly _shadowCasterShader;
21
21
  private readonly _supportDepthTexture;
22
22
  private _shadowMapResolution;
23
23
  private _shadowMapSize;
@@ -30,18 +30,17 @@ export declare class CascadedShadowCasterPass {
30
30
  private _lightSide;
31
31
  private _existShadowMap;
32
32
  private _splitBoundSpheres;
33
- /** The end is project prcision problem in shader. */
33
+ /** The end is project precision problem in shader. */
34
34
  private _shadowMatrices;
35
35
  private _shadowInfos;
36
36
  private _depthTexture;
37
- private _renderTargets;
37
+ private _renderTarget;
38
38
  private _viewportOffsets;
39
39
  constructor(camera: Camera);
40
40
  private _renderDirectShadowMap;
41
41
  private _updateReceiversShaderData;
42
42
  private _getCascadesSplitDistance;
43
43
  private _getFarWithRadius;
44
- private _getAvailableRenderTarget;
45
44
  private _updateShadowSettings;
46
45
  private _updateSingleShadowCasterShaderData;
47
46
  }
@@ -7,8 +7,16 @@ export declare class Sky {
7
7
  private static _epsilon;
8
8
  private static _viewProjMatrix;
9
9
  private static _projectionMatrix;
10
- /** Material of the sky. */
11
- material: Material;
12
- /** Mesh of the sky. */
13
- mesh: Mesh;
10
+ private _material;
11
+ private _mesh;
12
+ /**
13
+ * Material of the sky.
14
+ */
15
+ get material(): Material;
16
+ set material(value: Material);
17
+ /**
18
+ * Mesh of the sky.
19
+ */
20
+ get mesh(): Mesh;
21
+ set mesh(value: Mesh);
14
22
  }
@@ -1,25 +1,43 @@
1
+ import { Color } from "@galacean/engine-math";
1
2
  import { Engine } from "../Engine";
2
3
  import { Material } from "../material/Material";
3
4
  import { TextureCube } from "../texture";
4
5
  /**
5
- * SkyboxMaterial
6
+ * SkyBoxMaterial.
6
7
  */
7
8
  export declare class SkyBoxMaterial extends Material {
8
- private _decodeParam;
9
+ private static _tintColorProp;
10
+ private static _textureCubeProp;
11
+ private static _rotationProp;
12
+ private static _exposureProp;
13
+ private static _decodeSkyRGBMMacro;
14
+ private _textureDecodeRGBM;
15
+ private _tintColor;
9
16
  /**
10
- * Whether to decode from texture with RGBM format.
17
+ * Whether to decode texture with RGBM format.
11
18
  */
12
19
  get textureDecodeRGBM(): boolean;
13
20
  set textureDecodeRGBM(value: boolean);
14
21
  /**
15
- * RGBM decode factor, default 5.0.
22
+ * Texture of the sky box material.
16
23
  */
17
- get RGBMDecodeFactor(): number;
18
- set RGBMDecodeFactor(value: number);
24
+ get texture(): TextureCube;
25
+ set texture(value: TextureCube);
19
26
  /**
20
- * Texture cube map of the sky box material.
27
+ * The angle to rotate around the y-axis, unit is degree.
21
28
  */
22
- get textureCubeMap(): TextureCube;
23
- set textureCubeMap(v: TextureCube);
29
+ get rotation(): number;
30
+ set rotation(value: number);
31
+ /**
32
+ * The exposure value of this material.
33
+ */
34
+ get exposure(): number;
35
+ set exposure(value: number);
36
+ /**
37
+ * The Tint color of this material.
38
+ */
39
+ get tintColor(): Color;
40
+ set tintColor(value: Color);
24
41
  constructor(engine: Engine);
42
+ clone(): SkyBoxMaterial;
25
43
  }