@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,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
+ }
@@ -1,12 +1,15 @@
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 { RenderQueueType } from "./enums/RenderQueueType";
7
7
  export { ShaderPropertyType } from "./enums/ShaderPropertyType";
8
8
  export { StencilOperation } from "./enums/StencilOperation";
9
9
  export { Shader } from "./Shader";
10
10
  export { ShaderData } from "./ShaderData";
11
+ export { ShaderMacro } from "./ShaderMacro";
11
12
  export { ShaderPass } from "./ShaderPass";
12
13
  export { ShaderProperty } from "./ShaderProperty";
14
+ export { ShaderTagKey } from "./ShaderTagKey";
15
+ export { SubShader } from "./SubShader";
@@ -17,7 +17,6 @@ export declare class CascadedShadowCasterPass {
17
17
  private static _tempMatrix0;
18
18
  private readonly _camera;
19
19
  private readonly _engine;
20
- private readonly _shadowCasterShader;
21
20
  private readonly _supportDepthTexture;
22
21
  private _shadowMapResolution;
23
22
  private _shadowMapSize;
@@ -1,25 +1,46 @@
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
+ /**
43
+ * @override
44
+ */
45
+ clone(): SkyBoxMaterial;
25
46
  }
@@ -0,0 +1,72 @@
1
+ import { Color } from "@galacean/engine-math";
2
+ import { Engine } from "../Engine";
3
+ import { Material } from "../material/Material";
4
+ /**
5
+ * Sun mode.
6
+ */
7
+ export declare enum SunMode {
8
+ /** None */
9
+ None = 0,
10
+ /** Simple sun. */
11
+ Simple = 1,
12
+ /** High quality sun. */
13
+ HighQuality = 2
14
+ }
15
+ /**
16
+ * Sky procedural material.
17
+ */
18
+ export declare class SkyProceduralMaterial extends Material {
19
+ private static _sunSizeProp;
20
+ private static _sunSizeConvergenceProp;
21
+ private static _atmosphereThicknessProp;
22
+ private static _skyTintProp;
23
+ private static _groundTintProp;
24
+ private static _exposureProp;
25
+ private static _sunHighQualityMacro;
26
+ private static _sunSimpleMacro;
27
+ private _sunDisk;
28
+ /**
29
+ * Sun mode.
30
+ */
31
+ get sunMode(): SunMode;
32
+ set sunMode(value: SunMode);
33
+ /**
34
+ * Sun size, range is 0 to 1.
35
+ */
36
+ get sunSize(): number;
37
+ set sunSize(value: number);
38
+ /**
39
+ * Sun size convergence, range is 0 to 20.
40
+ */
41
+ get sunSizeConvergence(): number;
42
+ set sunSizeConvergence(value: number);
43
+ /**
44
+ * Atmosphere thickness, range is 0 to 5.
45
+ */
46
+ get atmosphereThickness(): number;
47
+ set atmosphereThickness(value: number);
48
+ /**
49
+ * Sky tint.
50
+ */
51
+ get skyTint(): Color;
52
+ set skyTint(value: Color);
53
+ /**
54
+ * Ground tint.
55
+ */
56
+ get groundTint(): Color;
57
+ set groundTint(value: Color);
58
+ /**
59
+ * Exposure, range is 0 to 8.
60
+ */
61
+ get exposure(): number;
62
+ set exposure(value: number);
63
+ /**
64
+ * Constructor a SkyBoxProceduralMaterial instance.
65
+ * @param engine - Engine to which the material belongs
66
+ */
67
+ constructor(engine: Engine);
68
+ /**
69
+ * @override
70
+ */
71
+ clone(): SkyProceduralMaterial;
72
+ }
@@ -1,2 +1,3 @@
1
1
  export { Sky } from "./Sky";
2
2
  export { SkyBoxMaterial } from "./SkyBoxMaterial";
3
+ export { SkyProceduralMaterial, SunMode } from "./SkyProceduralMaterial";
@@ -1,11 +1,11 @@
1
- import { EngineObject } from "../base";
1
+ import { GraphicsResource } from "../asset/GraphicsResource";
2
2
  import { Engine } from "../Engine";
3
3
  import { RenderBufferDepthFormat } from "./enums/RenderBufferDepthFormat";
4
4
  import { Texture } from "./Texture";
5
5
  /**
6
6
  * The render target used for off-screen rendering.
7
7
  */
8
- export declare class RenderTarget extends EngineObject {
8
+ export declare class RenderTarget extends GraphicsResource {
9
9
  private _autoGenerateMipmaps;
10
10
  private _width;
11
11
  private _height;
@@ -89,7 +89,7 @@ export declare class RenderTarget extends EngineObject {
89
89
  */
90
90
  generateMipmaps(): void;
91
91
  /**
92
- * Destroy render target.
92
+ * @override
93
93
  */
94
- destroy(): void;
94
+ protected _onDestroy(): void;
95
95
  }
@@ -1,4 +1,4 @@
1
- import { RefObject } from "../asset/RefObject";
1
+ import { GraphicsResource } from "../asset/GraphicsResource";
2
2
  import { TextureDepthCompareFunction } from "./enums/TextureDepthCompareFunction";
3
3
  import { TextureFilterMode } from "./enums/TextureFilterMode";
4
4
  import { TextureFormat } from "./enums/TextureFormat";
@@ -6,7 +6,7 @@ import { TextureWrapMode } from "./enums/TextureWrapMode";
6
6
  /**
7
7
  * The base class of texture, contains some common functions of texture-related classes.
8
8
  */
9
- export declare abstract class Texture extends RefObject {
9
+ export declare abstract class Texture extends GraphicsResource {
10
10
  name: string;
11
11
  protected _format: TextureFormat;
12
12
  protected _width: number;
@@ -64,10 +64,6 @@ export declare abstract class Texture extends RefObject {
64
64
  * Generate multi-level textures based on the 0th level data.
65
65
  */
66
66
  generateMipmaps(): void;
67
- /**
68
- * @override
69
- */
70
- _onDestroy(): void;
71
67
  /**
72
68
  * Get the maximum mip level of the corresponding size:rounding down.
73
69
  * @remarks http://download.nvidia.com/developer/Papers/2005/NP2_Mipmapping/NP2_Mipmap_Creation.pdf
@@ -78,4 +78,8 @@ export declare class Texture2DArray extends Texture {
78
78
  * @param out - Color buffer
79
79
  */
80
80
  getPixelBuffer(elementIndex: number, x: number, y: number, width: number, height: number, mipLevel: number, out: ArrayBufferView): void;
81
+ /**
82
+ * @override
83
+ */
84
+ _rebuild(): void;
81
85
  }
@@ -67,4 +67,8 @@ export declare class TextureCube extends Texture {
67
67
  * @param out - Color buffer
68
68
  */
69
69
  getPixelBuffer(face: TextureCubeFace, x: number, y: number, width: number, height: number, mipLevel: number, out: ArrayBufferView): void;
70
+ /**
71
+ * @override
72
+ */
73
+ _rebuild(): void;
70
74
  }
@@ -1,17 +0,0 @@
1
- import { Mesh } from "../graphic/Mesh";
2
- import { SubMesh } from "../graphic/SubMesh";
3
- import { Material } from "../material/Material";
4
- import { Renderer } from "../Renderer";
5
- import { ShaderPass } from "../shader/ShaderPass";
6
- import { RenderState } from "../shader/state/RenderState";
7
- import { RenderElement } from "./RenderElement";
8
- /**
9
- * Render element.
10
- */
11
- export declare class MeshRenderElement extends RenderElement {
12
- /** Mesh. */
13
- mesh: Mesh;
14
- /** Sub mesh. */
15
- subMesh: SubMesh;
16
- setValue(component: Renderer, mesh: Mesh, subMesh: SubMesh, material: Material, renderState: RenderState, shaderPass: ShaderPass): void;
17
- }
@@ -1,13 +0,0 @@
1
- import { RenderData2D } from "../2d/data/RenderData2D";
2
- import { Material } from "../material/Material";
3
- import { Renderer } from "../Renderer";
4
- import { ShaderPass } from "../shader";
5
- import { RenderState } from "../shader/state/RenderState";
6
- import { Texture2D } from "../texture";
7
- import { RenderElement } from "./RenderElement";
8
- export declare class SpriteElement extends RenderElement {
9
- renderData: RenderData2D;
10
- texture: Texture2D;
11
- constructor();
12
- setValue(component: Renderer, renderDate: RenderData2D, material: Material, texture: Texture2D, renderState: RenderState, shaderPass: ShaderPass): void;
13
- }
@@ -1,10 +0,0 @@
1
- import { RenderData2D } from "../2d/data/RenderData2D";
2
- import { Material } from "../material/Material";
3
- import { Renderer } from "../Renderer";
4
- import { RenderElement } from "./RenderElement";
5
- export declare class SpriteMaskElement extends RenderElement {
6
- renderData: RenderData2D;
7
- isAdd: boolean;
8
- constructor();
9
- setValue(component: Renderer, renderData: RenderData2D, material: Material): void;
10
- }
@@ -1,6 +0,0 @@
1
- import { RenderElement } from "./RenderElement";
2
- import { SpriteElement } from "./SpriteElement";
3
- export declare class TextRenderElement extends RenderElement {
4
- charElements: SpriteElement[];
5
- constructor();
6
- }
@@ -1,2 +0,0 @@
1
- export interface IRefObject {
2
- }
@@ -1,24 +0,0 @@
1
- import { EventDispatcher } from "./EventDispatcher";
2
- export type Listener = ((e: Event) => any) & {
3
- once?: boolean;
4
- };
5
- /** Event Object. * @class */
6
- export declare class Event {
7
- get propagationStopped(): boolean;
8
- get target(): EventDispatcher;
9
- set target(t: EventDispatcher);
10
- get timeStamp(): number;
11
- get currentTarget(): EventDispatcher;
12
- set currentTarget(t: EventDispatcher);
13
- get bubbles(): boolean;
14
- get type(): string | number;
15
- data: any;
16
- private _timeStamp;
17
- private _target;
18
- private _currentTarget;
19
- private _bubbles;
20
- private _propagationStopped;
21
- private _type;
22
- constructor(type: string | number, target?: EventDispatcher, data?: any, bubbles?: boolean);
23
- stopPropagation(): void;
24
- }
@@ -1,14 +0,0 @@
1
- export declare const Util: {
2
- isArray: (value: any) => boolean;
3
- isArrayLike(x: any): boolean;
4
- clone<T>(obj: T): T;
5
- downloadBlob(blob: Blob, fileName?: string): void;
6
- };
7
- export declare const isArrayLike: <T>(x: any) => x is ArrayLike<T>;
8
- /**
9
- * Fastly remove an element from array.
10
- * @param array - Array
11
- * @param item - Element
12
- */
13
- export declare function removeFromArray(array: any[], item: any): boolean;
14
- export declare function ObjectValues(obj: any): any[];