@galacean/engine-core 0.9.0 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/main.js +6175 -4776
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +6175 -4776
  4. package/dist/module.js +6167 -4772
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/atlas/SpriteAtlas.d.ts +2 -6
  8. package/types/2d/data/VertexData2D.d.ts +1 -0
  9. package/types/2d/enums/SpriteDrawMode.d.ts +4 -2
  10. package/types/2d/enums/SpriteTileMode.d.ts +11 -0
  11. package/types/2d/index.d.ts +1 -0
  12. package/types/2d/sprite/Sprite.d.ts +2 -6
  13. package/types/2d/sprite/SpriteMask.d.ts +4 -4
  14. package/types/2d/sprite/SpriteRenderer.d.ts +18 -1
  15. package/types/2d/text/Font.d.ts +2 -7
  16. package/types/2d/text/TextRenderer.d.ts +4 -0
  17. package/types/2d/text/index.d.ts +1 -0
  18. package/types/Camera.d.ts +28 -2
  19. package/types/Component.d.ts +0 -8
  20. package/types/ComponentsDependencies.d.ts +17 -9
  21. package/types/Engine.d.ts +31 -39
  22. package/types/RenderPipeline/Basic2DBatcher.d.ts +6 -7
  23. package/types/RenderPipeline/BasicRenderPipeline.d.ts +8 -6
  24. package/types/RenderPipeline/MeshRenderData.d.ts +15 -0
  25. package/types/RenderPipeline/RenderData.d.ts +7 -0
  26. package/types/RenderPipeline/RenderElement.d.ts +5 -7
  27. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  28. package/types/RenderPipeline/RenderQueue.d.ts +3 -5
  29. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +4 -3
  30. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +10 -0
  31. package/types/RenderPipeline/SpriteRenderData.d.ts +12 -0
  32. package/types/RenderPipeline/TextRenderData.d.ts +6 -0
  33. package/types/RenderPipeline/enums/PipelineStage.d.ts +9 -0
  34. package/types/RenderPipeline/index.d.ts +4 -0
  35. package/types/Renderer.d.ts +2 -2
  36. package/types/Scene.d.ts +2 -0
  37. package/types/Script.d.ts +18 -15
  38. package/types/Transform.d.ts +9 -12
  39. package/types/Utils.d.ts +28 -0
  40. package/types/animation/AnimationClip.d.ts +2 -1
  41. package/types/asset/AssetType.d.ts +16 -16
  42. package/types/asset/ContentRestorer.d.ts +17 -0
  43. package/types/asset/GraphicsResource.d.ts +9 -0
  44. package/types/asset/IReferable.d.ts +2 -0
  45. package/types/asset/{RefObject.d.ts → ReferResource.d.ts} +5 -5
  46. package/types/asset/ResourceManager.d.ts +17 -9
  47. package/types/base/Constant.d.ts +2 -1
  48. package/types/base/EngineObject.d.ts +1 -0
  49. package/types/base/EventDispatcher.d.ts +1 -14
  50. package/types/base/Time.d.ts +27 -24
  51. package/types/base/index.d.ts +0 -2
  52. package/types/graphic/Buffer.d.ts +5 -9
  53. package/types/graphic/Mesh.d.ts +4 -5
  54. package/types/index.d.ts +8 -7
  55. package/types/input/InputManager.d.ts +1 -1
  56. package/types/input/interface/IInput.d.ts +1 -1
  57. package/types/lighting/DirectLight.d.ts +0 -1
  58. package/types/lighting/SpotLight.d.ts +0 -1
  59. package/types/material/BaseMaterial.d.ts +8 -8
  60. package/types/material/Material.d.ts +3 -7
  61. package/types/mesh/BlendShape.d.ts +1 -1
  62. package/types/mesh/BlendShapeFrame.d.ts +28 -6
  63. package/types/mesh/ModelMesh.d.ts +5 -5
  64. package/types/mesh/PrimitiveMesh.d.ts +4 -2
  65. package/types/mesh/PrimitiveMeshRestorer.d.ts +1 -0
  66. package/types/mesh/SkinnedMeshRenderer.d.ts +0 -1
  67. package/types/particle/ParticleRenderer.d.ts +2 -2
  68. package/types/physics/Collider.d.ts +1 -1
  69. package/types/physics/Collision.d.ts +4 -0
  70. package/types/physics/PhysicsManager.d.ts +1 -20
  71. package/types/physics/joint/Joint.d.ts +2 -2
  72. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +8 -0
  73. package/types/renderingHardwareInterface/index.d.ts +1 -0
  74. package/types/shader/Shader.d.ts +32 -23
  75. package/types/shader/ShaderData.d.ts +24 -24
  76. package/types/shader/ShaderMacro.d.ts +16 -0
  77. package/types/shader/ShaderPart.d.ts +41 -0
  78. package/types/shader/ShaderPass.d.ts +9 -2
  79. package/types/shader/ShaderProperty.d.ts +7 -0
  80. package/types/shader/ShaderTagKey.d.ts +16 -0
  81. package/types/shader/SubShader.d.ts +19 -0
  82. package/types/shader/index.d.ts +4 -1
  83. package/types/shadow/CascadedShadowCasterPass.d.ts +0 -1
  84. package/types/sky/SkyBoxMaterial.d.ts +30 -9
  85. package/types/sky/SkyProceduralMaterial.d.ts +72 -0
  86. package/types/sky/index.d.ts +1 -0
  87. package/types/texture/RenderTarget.d.ts +4 -4
  88. package/types/texture/Texture.d.ts +2 -6
  89. package/types/texture/Texture2DArray.d.ts +4 -0
  90. package/types/texture/TextureCube.d.ts +4 -0
  91. package/types/RenderPipeline/MeshRenderElement.d.ts +0 -17
  92. package/types/RenderPipeline/SpriteElement.d.ts +0 -13
  93. package/types/RenderPipeline/SpriteMaskElement.d.ts +0 -10
  94. package/types/RenderPipeline/TextRenderElement.d.ts +0 -6
  95. package/types/asset/IRefObject.d.ts +0 -2
  96. package/types/base/Event.d.ts +0 -24
  97. package/types/base/Util.d.ts +0 -14
  98. /package/types/2d/{data/RenderData2D.d.ts → assembler/TiledSpriteAssembler.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  import { Engine } from "../Engine";
2
- import { Shader } from "../shader";
2
+ import { Shader, ShaderProperty } from "../shader";
3
3
  import { ShaderMacro } from "../shader/ShaderMacro";
4
4
  import { BlendMode } from "./enums/BlendMode";
5
5
  import { RenderFace } from "./enums/RenderFace";
6
6
  import { Material } from "./Material";
7
7
  export declare class BaseMaterial extends Material {
8
- protected static _baseColorProp: import("../shader").ShaderProperty;
9
- protected static _baseTextureProp: import("../shader").ShaderProperty;
10
8
  protected static _baseTextureMacro: ShaderMacro;
11
- protected static _tilingOffsetProp: import("../shader").ShaderProperty;
12
- protected static _normalTextureProp: import("../shader").ShaderProperty;
13
- protected static _normalIntensityProp: import("../shader").ShaderProperty;
14
9
  protected static _normalTextureMacro: ShaderMacro;
15
- protected static _emissiveColorProp: import("../shader").ShaderProperty;
16
- protected static _emissiveTextureProp: import("../shader").ShaderProperty;
17
10
  protected static _emissiveTextureMacro: ShaderMacro;
18
11
  protected static _transparentMacro: ShaderMacro;
12
+ protected static _baseColorProp: ShaderProperty;
13
+ protected static _baseTextureProp: ShaderProperty;
14
+ protected static _tilingOffsetProp: ShaderProperty;
15
+ protected static _normalTextureProp: ShaderProperty;
16
+ protected static _normalIntensityProp: ShaderProperty;
17
+ protected static _emissiveColorProp: ShaderProperty;
18
+ protected static _emissiveTextureProp: ShaderProperty;
19
19
  private static _alphaCutoffProp;
20
20
  private static _alphaCutoffMacro;
21
21
  private _renderFace;
@@ -1,5 +1,5 @@
1
1
  import { IClone } from "@galacean/engine-design";
2
- import { RefObject } from "../asset/RefObject";
2
+ import { ReferResource } from "../asset/ReferResource";
3
3
  import { Engine } from "../Engine";
4
4
  import { Shader } from "../shader/Shader";
5
5
  import { ShaderData } from "../shader/ShaderData";
@@ -7,7 +7,7 @@ import { RenderState } from "../shader/state/RenderState";
7
7
  /**
8
8
  * Material.
9
9
  */
10
- export declare class Material extends RefObject implements IClone {
10
+ export declare class Material extends ReferResource implements IClone {
11
11
  /** Name. */
12
12
  name: string;
13
13
  /** Shader data. */
@@ -43,9 +43,5 @@ export declare class Material extends RefObject implements IClone {
43
43
  /**
44
44
  * @override
45
45
  */
46
- _addRefCount(value: number): void;
47
- /**
48
- * @override
49
- */
50
- protected _onDestroy(): void;
46
+ _addReferCount(value: number): void;
51
47
  }
@@ -6,7 +6,6 @@ import { BlendShapeFrame } from "./BlendShapeFrame";
6
6
  export declare class BlendShape {
7
7
  /** Name of BlendShape. */
8
8
  name: string;
9
- private _dataChangeManager;
10
9
  private _frames;
11
10
  /**
12
11
  * Frames of BlendShape.
@@ -36,4 +35,5 @@ export declare class BlendShape {
36
35
  clearFrames(): void;
37
36
  private _addFrame;
38
37
  private _updateUseNormalAndTangent;
38
+ private _frameDataChangeListener;
39
39
  }
@@ -5,12 +5,28 @@ import { Vector3 } from "@galacean/engine-math";
5
5
  export declare class BlendShapeFrame {
6
6
  /** Weight of BlendShapeFrame. */
7
7
  readonly weight: number;
8
- /** Delta positions for the frame being added. */
9
- readonly deltaPositions: Readonly<Readonly<Vector3>[]>;
10
- /** Delta normals for the frame being added. */
11
- readonly deltaNormals: Readonly<Readonly<Vector3[]> | null>;
12
- /** Delta tangents for the frame being added. */
13
- readonly deltaTangents: Readonly<Readonly<Vector3[]> | null>;
8
+ private _dirty;
9
+ private _deltaPositions;
10
+ private _deltaNormals;
11
+ private _deltaTangents;
12
+ /**
13
+ * Delta positions for the frame being added.
14
+ * @remarks Need to re-assign after modification to ensure that the modification takes effect.
15
+ */
16
+ get deltaPositions(): Vector3[];
17
+ set deltaPositions(value: Vector3[]);
18
+ /**
19
+ * Delta normals for the frame being added.
20
+ * @remarks Need to re-assign after modification to ensure that the modification takes effect.
21
+ */
22
+ get deltaNormals(): Vector3[];
23
+ set deltaNormals(value: Vector3[]);
24
+ /**
25
+ * Delta tangents for the frame being added.
26
+ * @remarks Need to re-assign after modification to ensure that the modification takes effect.
27
+ */
28
+ get deltaTangents(): Vector3[];
29
+ set deltaTangents(value: Vector3[]);
14
30
  /**
15
31
  * Create a BlendShapeFrame.
16
32
  * @param weight - Weight of BlendShapeFrame
@@ -20,3 +36,9 @@ export declare class BlendShapeFrame {
20
36
  */
21
37
  constructor(weight: number, deltaPositions: Vector3[], deltaNormals?: Vector3[], deltaTangents?: Vector3[]);
22
38
  }
39
+ export declare enum BlendShapeFrameDirty {
40
+ Position = 1,
41
+ Normal = 2,
42
+ Tangent = 4,
43
+ All = 7
44
+ }
@@ -15,7 +15,7 @@ export declare class ModelMesh extends Mesh {
15
15
  private static _tempVec3;
16
16
  private static _tempVec4;
17
17
  private _vertexCount;
18
- private _accessible;
18
+ private _readable;
19
19
  private _verticesFloat32;
20
20
  private _verticesUint8;
21
21
  private _indices;
@@ -42,9 +42,9 @@ export declare class ModelMesh extends Mesh {
42
42
  private _customVertexElements;
43
43
  private _vertexCountChanged;
44
44
  /**
45
- * Whether to access data of the mesh.
45
+ * Whether to read data of the mesh.
46
46
  */
47
- get accessible(): boolean;
47
+ get readable(): boolean;
48
48
  /**
49
49
  * Vertex count of current mesh.
50
50
  */
@@ -207,9 +207,9 @@ export declare class ModelMesh extends Mesh {
207
207
  getBlendShapeName(index: number): string;
208
208
  /**
209
209
  * Upload Mesh Data to GPU.
210
- * @param noLongerAccessible - Whether to access data later. If true, you'll never access data anymore (free memory cache)
210
+ * @param noLongerReadable - Whether to read data later. If true, you'll never read data anymore (free memory cache)
211
211
  */
212
- uploadData(noLongerAccessible: boolean): void;
212
+ uploadData(noLongerReadable: boolean): void;
213
213
  /**
214
214
  * Calculate mesh tangent.
215
215
  * @remark need to set positions(with or not with indices), normals, uv before calculation.
@@ -63,8 +63,8 @@ export declare class PrimitiveMesh {
63
63
  * @param engine - Engine
64
64
  * @param radius - The radius of cap
65
65
  * @param height - The height of torso
66
- * @param radialSegments - Cylinder radial segments
67
- * @param heightSegments - Cylinder height segments
66
+ * @param radialSegments - Cone radial segments
67
+ * @param heightSegments - Cone height segments
68
68
  * @param noLongerAccessible - No longer access the vertices of the mesh after creation
69
69
  * @returns Cone model mesh
70
70
  */
@@ -80,6 +80,8 @@ export declare class PrimitiveMesh {
80
80
  * @returns Capsule model mesh
81
81
  */
82
82
  static createCapsule(engine: Engine, radius?: number, height?: number, radialSegments?: number, heightSegments?: number, noLongerAccessible?: boolean): ModelMesh;
83
+ static _setCylinderData(cylinderMesh: ModelMesh, radiusTop: number, radiusBottom: number, height: number, radialSegments: number, heightSegments: number, noLongerAccessible: boolean, isRestoreMode: boolean): void;
84
+ static _setCapsuleData(capsuleMesh: ModelMesh, radius: number, height: number, radialSegments: number, heightSegments: number, noLongerAccessible: boolean, isRestoreMode: boolean): void;
83
85
  private static _initialize;
84
86
  private static _generateIndices;
85
87
  private static _createCapsuleCap;
@@ -0,0 +1 @@
1
+ export {};
@@ -7,7 +7,6 @@ import { Skin } from "./Skin";
7
7
  * SkinnedMeshRenderer.
8
8
  */
9
9
  export declare class SkinnedMeshRenderer extends MeshRenderer {
10
- private static _tempMatrix;
11
10
  private static _jointCountProperty;
12
11
  private static _jointSamplerProperty;
13
12
  private static _jointMatrixProperty;
@@ -1,6 +1,6 @@
1
- import { Vector3, Color } from "@galacean/engine-math";
2
- import { Texture } from "../texture";
1
+ import { Color, Vector3 } from "@galacean/engine-math";
3
2
  import { MeshRenderer } from "../mesh/MeshRenderer";
3
+ import { Texture } from "../texture";
4
4
  /**
5
5
  * Blend mode enums of the particle renderer's material.
6
6
  */
@@ -3,7 +3,7 @@ import { Component } from "../Component";
3
3
  import { ColliderShape } from "./shape/ColliderShape";
4
4
  /**
5
5
  * Base class for all colliders.
6
- * @decorator `@dependentComponents(Transform)`
6
+ * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
7
7
  */
8
8
  export declare class Collider extends Component {
9
9
  protected _updateFlag: BoolUpdateFlag;
@@ -0,0 +1,4 @@
1
+ import { ColliderShape } from "./shape";
2
+ export declare class Collision {
3
+ shape: ColliderShape;
4
+ }
@@ -1,4 +1,3 @@
1
- import { IPhysics } from "@galacean/engine-design";
2
1
  import { Ray, Vector3 } from "@galacean/engine-math";
3
2
  import { Engine } from "../Engine";
4
3
  import { Layer } from "../Layer";
@@ -7,6 +6,7 @@ import { HitResult } from "./HitResult";
7
6
  * A physics manager is a collection of colliders and constraints which can interact.
8
7
  */
9
8
  export declare class PhysicsManager {
9
+ private static _collision;
10
10
  private _engine;
11
11
  private _restTime;
12
12
  private _colliders;
@@ -21,31 +21,12 @@ export declare class PhysicsManager {
21
21
  private _onTriggerStay;
22
22
  /** The fixed time step in seconds at which physics are performed. */
23
23
  fixedTimeStep: number;
24
- /**
25
- * The max allowed time step in seconds one frame.
26
- *
27
- * @remarks
28
- * When the frame rate is low or stutter occurs, the maximum execution time of physics will not exceed this value.
29
- * So physics will slow down a bit when performance hitch occurs.
30
- */
31
- maxAllowedTimeStep: number;
32
24
  /**
33
25
  * The gravity of physics scene.
34
26
  */
35
27
  get gravity(): Vector3;
36
28
  set gravity(value: Vector3);
37
- /**
38
- * @deprecated
39
- * Please use `maxAllowedTimeStep` instead.
40
- */
41
- get maxSumTimeStep(): number;
42
- set maxSumTimeStep(value: number);
43
29
  constructor(engine: Engine);
44
- /**
45
- * initialize PhysicsManager.
46
- * @param physics - Physics Engine
47
- */
48
- initialize(physics: IPhysics): void;
49
30
  /**
50
31
  * Casts a ray through the Scene and returns the first hit.
51
32
  * @param ray - The ray
@@ -1,11 +1,11 @@
1
1
  import { IJoint } from "@galacean/engine-design";
2
2
  import { Vector3 } from "@galacean/engine-math";
3
3
  import { Component } from "../../Component";
4
- import { Collider } from "../Collider";
5
4
  import { Entity } from "../../Entity";
5
+ import { Collider } from "../Collider";
6
6
  /**
7
7
  * A base class providing common functionality for joints.
8
- * @decorator `@dependentComponents(Collider)`
8
+ * @decorator `@dependentComponents(Collider, DependentMode.CheckOnly)`
9
9
  */
10
10
  export declare class Joint extends Component {
11
11
  protected _connectedCollider: JointCollider;
@@ -0,0 +1,8 @@
1
+ import { SetDataOptions } from "../graphic";
2
+ export interface IPlatformBuffer {
3
+ bind(): void;
4
+ setData(byteLength: number, data: ArrayBuffer | ArrayBufferView, bufferByteOffset?: number, dataOffset?: number, dataLength?: number, options?: SetDataOptions): void;
5
+ getData(data: ArrayBufferView, bufferByteOffset?: number, dataOffset?: number, dataLength?: number): void;
6
+ resize(byteLength: number): void;
7
+ destroy(): void;
8
+ }
@@ -1,4 +1,5 @@
1
1
  export type { IHardwareRenderer } from "./IHardwareRenderer";
2
+ export type { IPlatformBuffer } from "./IPlatformBuffer";
2
3
  export type { IPlatformRenderTarget } from "./IPlatformRenderTarget";
3
4
  export type { IPlatformTexture } from "./IPlatformTexture";
4
5
  export type { IPlatformTexture2D } from "./IPlatformTexture2D";
@@ -2,15 +2,13 @@ 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;
14
12
  /**
15
13
  * Create a shader.
16
14
  * @param name - Name of the shader
@@ -26,18 +24,46 @@ export declare class Shader {
26
24
  * @returns Shader
27
25
  */
28
26
  static create(name: string, shaderPasses: ShaderPass[]): Shader;
27
+ /**
28
+ * Create a shader.
29
+ * @param name - Name of the shader
30
+ * @param subShaders - Sub shaders
31
+ * @returns Shader
32
+ */
33
+ static create(name: string, subShaders: SubShader[]): Shader;
29
34
  /**
30
35
  * Find a shader by name.
31
36
  * @param name - Name of the shader
32
37
  */
33
38
  static find(name: string): Shader;
39
+ private _subShaders;
40
+ /**
41
+ * Sub shaders of the shader.
42
+ */
43
+ get subShaders(): ReadonlyArray<SubShader>;
44
+ private constructor();
45
+ /**
46
+ * Compile shader variant by macro name list.
47
+ *
48
+ * @remarks
49
+ * Usually a shader contains some macros,any combination of macros is called shader variant.
50
+ *
51
+ * @param engine - Engine to which the shader variant belongs
52
+ * @param macros - Macro name list
53
+ * @returns Is the compiled shader variant valid
54
+ */
55
+ compileVariant(engine: Engine, macros: string[]): boolean;
34
56
  /**
57
+ * @deprecated Please use `ShaderMacro.getByName` instead
58
+ *
35
59
  * Get shader macro by name.
36
60
  * @param name - Name of the shader macro
37
61
  * @returns Shader macro
38
62
  */
39
63
  static getMacroByName(name: string): ShaderMacro;
40
64
  /**
65
+ * @deprecated Please use `ShaderMacro.getByName` instead
66
+ *
41
67
  * Get shader macro by name.
42
68
  * @param name - Name of the shader macro
43
69
  * @param value - Value of the shader macro
@@ -45,28 +71,11 @@ export declare class Shader {
45
71
  */
46
72
  static getMacroByName(name: string, value: string): ShaderMacro;
47
73
  /**
74
+ * @deprecated Please use `ShaderProperty.getByName` instead
75
+ *
48
76
  * Get shader property by name.
49
77
  * @param name - Name of the shader property
50
78
  * @returns Shader property
51
79
  */
52
80
  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
81
  }
@@ -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
+ }