@galacean/engine-core 1.0.0-beta.10 → 1.0.0-beta.12

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "1.0.0-beta.10",
3
+ "version": "1.0.0-beta.12",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -15,10 +15,10 @@
15
15
  "types/**/*"
16
16
  ],
17
17
  "dependencies": {
18
- "@galacean/engine-math": "1.0.0-beta.10"
18
+ "@galacean/engine-math": "1.0.0-beta.12"
19
19
  },
20
20
  "devDependencies": {
21
- "@galacean/engine-design": "1.0.0-beta.10"
21
+ "@galacean/engine-design": "1.0.0-beta.12"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
package/types/Camera.d.ts CHANGED
@@ -12,8 +12,6 @@ import { RenderTarget } from "./texture/RenderTarget";
12
12
  * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
13
13
  */
14
14
  export declare class Camera extends Component {
15
- /** Shader data. */
16
- readonly shaderData: ShaderData;
17
15
  /** Rendering priority - A Camera with higher priority will be rendered on top of a camera with lower priority. */
18
16
  priority: number;
19
17
  /** Whether to enable frustum culling, it is enabled by default. */
@@ -28,6 +26,7 @@ export declare class Camera extends Component {
28
26
  * @remarks Support bit manipulation, corresponding to `Layer`.
29
27
  */
30
28
  cullingMask: Layer;
29
+ private _shaderData;
31
30
  private _isProjMatSetting;
32
31
  private _nearClipPlane;
33
32
  private _farClipPlane;
@@ -46,6 +45,10 @@ export declare class Camera extends Component {
46
45
  private _inverseProjectionMatrix;
47
46
  private _lastAspectSize;
48
47
  private _invViewProjMat;
48
+ /**
49
+ * Shader data.
50
+ */
51
+ get shaderData(): ShaderData;
49
52
  /**
50
53
  * Near clip plane - the closest point to the camera when rendering occurs.
51
54
  */
@@ -1,7 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
1
2
  /**
2
3
  * Class pool utils.
3
4
  */
4
- export declare class ClassPool<T> {
5
+ export declare class ClassPool<T extends IPoolElement> {
5
6
  private _elementPoolIndex;
6
7
  private _elementPool;
7
8
  private _type;
@@ -14,4 +15,5 @@ export declare class ClassPool<T> {
14
15
  * Reset pool.
15
16
  */
16
17
  resetPool(): void;
18
+ garbageCollection(): void;
17
19
  }
@@ -0,0 +1,3 @@
1
+ export interface IPoolElement {
2
+ dispose?(): void;
3
+ }
@@ -2,14 +2,16 @@ import { Mesh } from "../graphic/Mesh";
2
2
  import { SubMesh } from "../graphic/SubMesh";
3
3
  import { Material } from "../material/Material";
4
4
  import { Renderer } from "../Renderer";
5
+ import { IPoolElement } from "./IPoolElement";
5
6
  import { RenderData } from "./RenderData";
6
7
  /**
7
8
  * Render element.
8
9
  */
9
- export declare class MeshRenderData extends RenderData {
10
+ export declare class MeshRenderData extends RenderData implements IPoolElement {
10
11
  /** Mesh. */
11
12
  mesh: Mesh;
12
13
  /** Sub mesh. */
13
14
  subMesh: SubMesh;
14
15
  set(component: Renderer, material: Material, mesh: Mesh, subMesh: SubMesh): void;
16
+ dispose(): void;
15
17
  }
@@ -1,9 +1,11 @@
1
1
  import { ShaderPass } from "../shader/ShaderPass";
2
2
  import { RenderState } from "../shader/state/RenderState";
3
+ import { IPoolElement } from "./IPoolElement";
3
4
  import { RenderData } from "./RenderData";
4
- export declare class RenderElement {
5
+ export declare class RenderElement implements IPoolElement {
5
6
  data: RenderData;
6
7
  shaderPass: ShaderPass;
7
8
  renderState: RenderState;
8
9
  set(data: RenderData, shaderPass: ShaderPass, renderState: RenderState): void;
10
+ dispose(): void;
9
11
  }
@@ -1,10 +1,12 @@
1
1
  import { VertexData2D } from "../2d/data/VertexData2D";
2
2
  import { Material } from "../material/Material";
3
3
  import { Renderer } from "../Renderer";
4
+ import { IPoolElement } from "./IPoolElement";
4
5
  import { RenderData } from "./RenderData";
5
- export declare class SpriteMaskRenderData extends RenderData {
6
+ export declare class SpriteMaskRenderData extends RenderData implements IPoolElement {
6
7
  isAdd: boolean;
7
8
  verticesData: VertexData2D;
8
9
  constructor();
9
10
  set(component: Renderer, material: Material, verticesData: VertexData2D): void;
11
+ dispose(): void;
10
12
  }
@@ -2,11 +2,13 @@ import { VertexData2D } from "../2d/data/VertexData2D";
2
2
  import { Material } from "../material/Material";
3
3
  import { Renderer } from "../Renderer";
4
4
  import { Texture2D } from "../texture";
5
+ import { IPoolElement } from "./IPoolElement";
5
6
  import { RenderData } from "./RenderData";
6
- export declare class SpriteRenderData extends RenderData {
7
+ export declare class SpriteRenderData extends RenderData implements IPoolElement {
7
8
  verticesData: VertexData2D;
8
9
  texture: Texture2D;
9
10
  dataIndex: number;
10
11
  constructor();
11
12
  set(component: Renderer, material: Material, verticesData: VertexData2D, texture: Texture2D, dataIndex?: number): void;
13
+ dispose(): void;
12
14
  }
@@ -1,6 +1,8 @@
1
+ import { IPoolElement } from "./IPoolElement";
1
2
  import { RenderData } from "./RenderData";
2
3
  import { SpriteRenderData } from "./SpriteRenderData";
3
- export declare class TextRenderData extends RenderData {
4
+ export declare class TextRenderData extends RenderData implements IPoolElement {
4
5
  charsData: SpriteRenderData[];
5
6
  constructor();
7
+ dispose(): void;
6
8
  }
@@ -17,12 +17,11 @@ export declare class Renderer extends Component implements ICustomClone {
17
17
  private static _mvInvMatrixProperty;
18
18
  private static _normalMatrixProperty;
19
19
  private static _rendererLayerProperty;
20
- /** ShaderData related to renderer. */
21
- readonly shaderData: ShaderData;
22
20
  _renderFrameCount: number;
23
21
  protected _overrideUpdate: boolean;
24
22
  protected _materials: Material[];
25
23
  protected _dirtyUpdateFlag: number;
24
+ private _shaderData;
26
25
  private _mvMatrix;
27
26
  private _mvpMatrix;
28
27
  private _mvInvMatrix;
@@ -31,6 +30,10 @@ export declare class Renderer extends Component implements ICustomClone {
31
30
  private _priority;
32
31
  private _receiveShadows;
33
32
  protected _rendererLayer: Vector4;
33
+ /**
34
+ * ShaderData related to renderer.
35
+ */
36
+ get shaderData(): ShaderData;
34
37
  /**
35
38
  * Whether it is culled in the current frame and does not participate in rendering.
36
39
  */
package/types/Scene.d.ts CHANGED
@@ -18,10 +18,6 @@ export declare class Scene extends EngineObject {
18
18
  private static _sunlightDirectionProperty;
19
19
  /** Scene name. */
20
20
  name: string;
21
- /** The background of the scene. */
22
- readonly background: Background;
23
- /** Scene-related shader data. */
24
- readonly shaderData: ShaderData;
25
21
  /** If cast shadows. */
26
22
  castShadows: boolean;
27
23
  /** The resolution of the shadow maps. */
@@ -32,6 +28,8 @@ export declare class Scene extends EngineObject {
32
28
  shadowFourCascadeSplits: Vector3;
33
29
  /** Max Shadow distance. */
34
30
  shadowDistance: number;
31
+ private _background;
32
+ private _shaderData;
35
33
  private _shadowCascades;
36
34
  private _ambientLight;
37
35
  private _fogMode;
@@ -40,6 +38,14 @@ export declare class Scene extends EngineObject {
40
38
  private _fogEnd;
41
39
  private _fogDensity;
42
40
  private _fogParams;
41
+ /**
42
+ * Scene-related shader data.
43
+ */
44
+ get shaderData(): ShaderData;
45
+ /**
46
+ * The background of the scene.
47
+ */
48
+ get background(): Background;
43
49
  /**
44
50
  * Number of cascades to use for directional light shadows.
45
51
  */
@@ -1,8 +1,9 @@
1
+ import { IPoolElement } from "../RenderPipeline/IPoolElement";
1
2
  import { MeshTopology } from "./enums/MeshTopology";
2
3
  /**
3
4
  * Sub-mesh, mainly contains drawing information.
4
5
  */
5
- export declare class SubMesh {
6
+ export declare class SubMesh implements IPoolElement {
6
7
  /** Start drawing offset. */
7
8
  start: number;
8
9
  /** Drawing count. */
@@ -16,4 +17,5 @@ export declare class SubMesh {
16
17
  * @param topology - Drawing topology
17
18
  */
18
19
  constructor(start?: number, count?: number, topology?: MeshTopology);
20
+ dispose?(): void;
19
21
  }
@@ -10,8 +10,11 @@ import { RenderState } from "../shader/state/RenderState";
10
10
  export declare class Material extends ReferResource implements IClone {
11
11
  /** Name. */
12
12
  name: string;
13
- /** Shader data. */
14
- readonly shaderData: ShaderData;
13
+ private _shaderData;
14
+ /**
15
+ * Shader data.
16
+ */
17
+ get shaderData(): ShaderData;
15
18
  /**
16
19
  * Shader used by the material.
17
20
  */
@@ -41,4 +44,8 @@ export declare class Material extends ReferResource implements IClone {
41
44
  */
42
45
  cloneTo(target: Material): void;
43
46
  _addReferCount(value: number): void;
47
+ /**
48
+ * @override
49
+ */
50
+ protected _onDestroy(): void;
44
51
  }
@@ -2,6 +2,7 @@ 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";
5
+ import { TextureUsage } from "./enums/TextureUsage";
5
6
  import { TextureWrapMode } from "./enums/TextureWrapMode";
6
7
  /**
7
8
  * The base class of texture, contains some common functions of texture-related classes.
@@ -11,6 +12,7 @@ export declare abstract class Texture extends GraphicsResource {
11
12
  protected _format: TextureFormat;
12
13
  protected _width: number;
13
14
  protected _height: number;
15
+ protected _usage: TextureUsage;
14
16
  protected _mipmapCount: number;
15
17
  private _wrapModeU;
16
18
  private _wrapModeV;
@@ -30,6 +32,10 @@ export declare abstract class Texture extends GraphicsResource {
30
32
  * The height of the texture.
31
33
  */
32
34
  get height(): number;
35
+ /**
36
+ * The usage of the texture.
37
+ */
38
+ get usage(): TextureUsage;
33
39
  /**
34
40
  * Wrapping mode for texture coordinate S.
35
41
  */
@@ -1,5 +1,6 @@
1
1
  import { Engine } from "../Engine";
2
2
  import { TextureFormat } from "./enums/TextureFormat";
3
+ import { TextureUsage } from "./enums/TextureUsage";
3
4
  import { Texture } from "./Texture";
4
5
  /**
5
6
  * Two-dimensional texture.
@@ -12,8 +13,9 @@ export declare class Texture2D extends Texture {
12
13
  * @param height - Texture height
13
14
  * @param format - Texture format. default `TextureFormat.R8G8B8A8`
14
15
  * @param mipmap - Whether to use multi-level texture
16
+ * @param usage - Texture usage
15
17
  */
16
- constructor(engine: Engine, width: number, height: number, format?: TextureFormat, mipmap?: boolean);
18
+ constructor(engine: Engine, width: number, height: number, format?: TextureFormat, mipmap?: boolean, usage?: TextureUsage);
17
19
  /**
18
20
  * Setting pixels data through color buffer data, designated area and texture mipmapping level,it's also applicable to compressed formats.
19
21
  * @remarks If it is the WebGL1.0 platform and the texture format is compressed, the first upload must be filled with textures.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Texture usage.
3
+ */
4
+ export declare enum TextureUsage {
5
+ /** The content of the texture is intended to be specified once. */
6
+ Static = 0,
7
+ /** The content of the texture is intended to be updated frequently, with better performance. */
8
+ Dynamic = 1
9
+ }
@@ -3,6 +3,7 @@ export { TextureCubeFace } from "./enums/TextureCubeFace";
3
3
  export { TextureDepthCompareFunction } from "./enums/TextureDepthCompareFunction";
4
4
  export { TextureFilterMode } from "./enums/TextureFilterMode";
5
5
  export { TextureFormat } from "./enums/TextureFormat";
6
+ export { TextureUsage } from "./enums/TextureUsage";
6
7
  export { TextureWrapMode } from "./enums/TextureWrapMode";
7
8
  export { RenderTarget } from "./RenderTarget";
8
9
  export { Texture } from "./Texture";