@galacean/engine-core 0.0.0-experimental-0.9-plus.7 → 0.0.0-experimental-ktx2.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 (127) hide show
  1. package/dist/main.js +18302 -15438
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +18302 -15438
  4. package/dist/module.js +18088 -15234
  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/enums/SpriteDrawMode.d.ts +4 -2
  9. package/types/2d/index.d.ts +1 -0
  10. package/types/2d/sprite/Sprite.d.ts +5 -2
  11. package/types/2d/sprite/SpriteMask.d.ts +0 -11
  12. package/types/2d/sprite/SpriteRenderer.d.ts +15 -11
  13. package/types/2d/text/Font.d.ts +2 -7
  14. package/types/2d/text/TextRenderer.d.ts +0 -11
  15. package/types/2d/text/index.d.ts +1 -0
  16. package/types/Camera.d.ts +60 -16
  17. package/types/Component.d.ts +1 -8
  18. package/types/ComponentsDependencies.d.ts +17 -9
  19. package/types/DisorderedArray.d.ts +4 -3
  20. package/types/Engine.d.ts +43 -46
  21. package/types/Entity.d.ts +4 -2
  22. package/types/RenderPipeline/Basic2DBatcher.d.ts +6 -7
  23. package/types/RenderPipeline/BasicRenderPipeline.d.ts +7 -6
  24. package/types/RenderPipeline/ClassPool.d.ts +3 -1
  25. package/types/RenderPipeline/IPoolElement.d.ts +3 -0
  26. package/types/RenderPipeline/MeshRenderData.d.ts +3 -1
  27. package/types/RenderPipeline/PipelinePass.d.ts +16 -0
  28. package/types/RenderPipeline/PipelineUtils.d.ts +1 -0
  29. package/types/RenderPipeline/RenderElement.d.ts +8 -10
  30. package/types/RenderPipeline/RenderPass.d.ts +1 -1
  31. package/types/RenderPipeline/RenderQueue.d.ts +3 -5
  32. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +4 -3
  33. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +3 -1
  34. package/types/RenderPipeline/SpriteRenderData.d.ts +3 -1
  35. package/types/RenderPipeline/TextRenderData.d.ts +3 -1
  36. package/types/RenderPipeline/enums/PipelineStage.d.ts +2 -0
  37. package/types/Renderer.d.ts +8 -14
  38. package/types/Scene.d.ts +13 -9
  39. package/types/SceneManager.d.ts +28 -5
  40. package/types/Script.d.ts +18 -15
  41. package/types/Transform.d.ts +10 -12
  42. package/types/Utils.d.ts +28 -0
  43. package/types/animation/AnimationClip.d.ts +2 -1
  44. package/types/animation/Animator.d.ts +5 -4
  45. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +0 -1
  46. package/types/animation/enums/LayerState.d.ts +3 -1
  47. package/types/asset/AssetType.d.ts +18 -16
  48. package/types/asset/LoadItem.d.ts +16 -9
  49. package/types/asset/Loader.d.ts +3 -1
  50. package/types/asset/ResourceManager.d.ts +23 -11
  51. package/types/asset/request.d.ts +7 -3
  52. package/types/base/Constant.d.ts +3 -1
  53. package/types/base/EngineObject.d.ts +1 -0
  54. package/types/base/EventDispatcher.d.ts +2 -15
  55. package/types/base/Time.d.ts +25 -24
  56. package/types/base/index.d.ts +0 -2
  57. package/types/clone/ComponentCloner.d.ts +2 -1
  58. package/types/enums/DepthTextureMode.d.ts +7 -0
  59. package/types/env-probe/CubeProbe.d.ts +0 -7
  60. package/types/env-probe/Probe.d.ts +0 -6
  61. package/types/graphic/Buffer.d.ts +25 -16
  62. package/types/graphic/BufferUtil.d.ts +1 -0
  63. package/types/graphic/Mesh.d.ts +5 -16
  64. package/types/graphic/SubMesh.d.ts +3 -1
  65. package/types/graphic/VertexElement.d.ts +10 -6
  66. package/types/index.d.ts +9 -7
  67. package/types/input/InputManager.d.ts +3 -3
  68. package/types/input/interface/IInput.d.ts +1 -1
  69. package/types/lighting/AmbientLight.d.ts +4 -1
  70. package/types/lighting/DirectLight.d.ts +0 -1
  71. package/types/lighting/Light.d.ts +0 -1
  72. package/types/lighting/LightManager.d.ts +1 -0
  73. package/types/lighting/SpotLight.d.ts +0 -1
  74. package/types/material/BaseMaterial.d.ts +8 -10
  75. package/types/material/BlinnPhongMaterial.d.ts +0 -3
  76. package/types/material/Material.d.ts +8 -8
  77. package/types/material/PBRMaterial.d.ts +1 -1
  78. package/types/material/PBRSpecularMaterial.d.ts +1 -1
  79. package/types/material/UnlitMaterial.d.ts +1 -1
  80. package/types/mesh/BlendShape.d.ts +1 -1
  81. package/types/mesh/BlendShapeFrame.d.ts +28 -6
  82. package/types/mesh/BufferMesh.d.ts +2 -2
  83. package/types/mesh/MeshRenderer.d.ts +1 -11
  84. package/types/mesh/ModelMesh.d.ts +62 -41
  85. package/types/mesh/PrimitiveMesh.d.ts +6 -2
  86. package/types/mesh/Skin.d.ts +3 -0
  87. package/types/mesh/SkinnedMeshRenderer.d.ts +18 -24
  88. package/types/mesh/index.d.ts +6 -5
  89. package/types/particle/ParticleRenderer.d.ts +2 -2
  90. package/types/physics/CharacterController.d.ts +0 -2
  91. package/types/physics/Collider.d.ts +1 -1
  92. package/types/physics/PhysicsManager.d.ts +1 -20
  93. package/types/physics/index.d.ts +7 -7
  94. package/types/physics/joint/HingeJoint.d.ts +2 -2
  95. package/types/physics/joint/Joint.d.ts +2 -2
  96. package/types/physics/joint/SpringJoint.d.ts +1 -1
  97. package/types/renderingHardwareInterface/IPlatformBuffer.d.ts +0 -1
  98. package/types/renderingHardwareInterface/IPlatformTexture2D.d.ts +1 -1
  99. package/types/renderingHardwareInterface/IPlatformTexture2DArray.d.ts +1 -1
  100. package/types/renderingHardwareInterface/IPlatformTextureCube.d.ts +1 -1
  101. package/types/renderingHardwareInterface/index.d.ts +1 -0
  102. package/types/shader/Shader.d.ts +54 -23
  103. package/types/shader/ShaderData.d.ts +24 -24
  104. package/types/shader/ShaderMacro.d.ts +16 -0
  105. package/types/shader/ShaderPass.d.ts +9 -2
  106. package/types/shader/ShaderProperty.d.ts +7 -0
  107. package/types/shader/enums/RenderStateElementKey.d.ts +58 -0
  108. package/types/shader/index.d.ts +6 -1
  109. package/types/shadow/CascadedShadowCasterPass.d.ts +5 -7
  110. package/types/sky/SkyBoxMaterial.d.ts +27 -9
  111. package/types/sky/index.d.ts +1 -0
  112. package/types/texture/RenderTarget.d.ts +3 -8
  113. package/types/texture/Texture.d.ts +8 -6
  114. package/types/texture/Texture2D.d.ts +4 -2
  115. package/types/texture/Texture2DArray.d.ts +1 -1
  116. package/types/texture/TextureCube.d.ts +1 -1
  117. package/types/texture/enums/TextureFormat.d.ts +55 -49
  118. package/types/texture/enums/TextureUsage.d.ts +9 -0
  119. package/types/texture/index.d.ts +1 -0
  120. package/types/trail/TrailRenderer.d.ts +0 -5
  121. package/types/SafeLoopArray.d.ts +0 -37
  122. package/types/utils/BoolUpdateFlag.d.ts +0 -12
  123. package/types/utils/DisorderedArray.d.ts +0 -18
  124. package/types/utils/UpdateFlag.d.ts +0 -20
  125. package/types/utils/Utils.d.ts +0 -31
  126. /package/types/{animation/internal/AnimationCurveOwnerLayerData.d.ts → RenderPipeline/CullingResults.d.ts} +0 -0
  127. /package/types/{utils/UpdateFlagManager.d.ts → RenderPipeline/DepthOnlyPass.d.ts} +0 -0
@@ -1,15 +1,12 @@
1
+ type PickOnlyOne<T extends {}, Keys extends keyof T = keyof T> = Keys extends unknown ? {
2
+ [K in Keys]: T[Keys];
3
+ } & {
4
+ [K in Exclude<keyof T, Keys>]?: never;
5
+ } : never;
1
6
  /**
2
7
  * Used to describe loading asset.
3
8
  */
4
9
  export type LoadItem = {
5
- /**
6
- * Loading url.
7
- */
8
- url?: string;
9
- /**
10
- * Available when AssetType is TextureCube.
11
- */
12
- urls?: string[];
13
10
  /**
14
11
  * Asset Type.
15
12
  */
@@ -30,4 +27,14 @@ export type LoadItem = {
30
27
  * Additional parameters for specified loader.
31
28
  */
32
29
  params?: Record<string, any>;
33
- };
30
+ } & PickOnlyOne<{
31
+ /**
32
+ * Loading url.
33
+ */
34
+ url: string;
35
+ /**
36
+ * Available when AssetType is TextureCube.
37
+ */
38
+ urls: string[];
39
+ }>;
40
+ export {};
@@ -1,3 +1,4 @@
1
+ import { Engine, EngineConfiguration } from "../Engine";
1
2
  import { AssetPromise } from "./AssetPromise";
2
3
  import { LoadItem } from "./LoadItem";
3
4
  import { RequestConfig } from "./request";
@@ -25,6 +26,7 @@ export declare abstract class Loader<T> {
25
26
  };
26
27
  private static _engineObjects;
27
28
  constructor(useCache: boolean);
28
- request: <U>(url: string, config: RequestConfig) => AssetPromise<U>;
29
+ initialize?(engine: Engine, configuration: EngineConfiguration): Promise<void>;
29
30
  abstract load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<T> | Record<string, AssetPromise<any>>;
31
+ request: <U>(url: string, config: RequestConfig) => AssetPromise<U>;
30
32
  }
@@ -1,4 +1,4 @@
1
- import { Engine } from "..";
1
+ import { ContentRestorer, Engine, EngineObject } from "..";
2
2
  import { AssetPromise } from "./AssetPromise";
3
3
  import { Loader } from "./Loader";
4
4
  import { LoadItem } from "./LoadItem";
@@ -7,8 +7,6 @@ import { LoadItem } from "./LoadItem";
7
7
  */
8
8
  export declare class ResourceManager {
9
9
  readonly engine: Engine;
10
- /** Loader collection. */
11
- private static _loaders;
12
10
  private static _extTypeMapping;
13
11
  private static _getTypeByUrl;
14
12
  /** The number of retries after failing to load assets. */
@@ -17,14 +15,17 @@ export declare class ResourceManager {
17
15
  retryInterval: number;
18
16
  /** The default timeout period for loading assets, in milliseconds. */
19
17
  timeout: number;
20
- /** Asset path pool, key is asset ID, value is asset path */
18
+ private _loadingPromises;
19
+ /** Asset path pool, key is the `instanceID` of resource, value is asset path. */
21
20
  private _assetPool;
22
- /** Asset pool, the key is the asset path and the value is the asset. */
21
+ /** Asset url pool, key is the asset path and the value is the asset. */
23
22
  private _assetUrlPool;
24
- /** Reference counted object pool, key is the object ID, and reference counted objects are put into this pool. */
25
- private _refObjectPool;
26
- /** Loading promises. */
27
- private _loadingPromises;
23
+ /** Referable resource pool, key is the `instanceID` of resource. */
24
+ private _referResourcePool;
25
+ /** Graphic resource pool, key is the `instanceID` of resource. */
26
+ private _graphicResourcePool;
27
+ /** Restorable resource information pool, key is the `instanceID` of resource. */
28
+ private _contentRestorerPool;
28
29
  /**
29
30
  * Create a ResourceManager.
30
31
  * @param engine - Engine to which the current ResourceManager belongs
@@ -60,6 +61,12 @@ export declare class ResourceManager {
60
61
  * @returns Resource object
61
62
  */
62
63
  getFromCache<T>(url: string): T;
64
+ /**
65
+ * Find the resource by type.
66
+ * @param type - Resource type
67
+ * @returns - Resource collection
68
+ */
69
+ findResourcesByType<T extends EngineObject>(type: new (...args: any[]) => T): T[];
63
70
  /**
64
71
  * Get asset url from instanceId.
65
72
  * @param instanceId - Engine instance id
@@ -85,6 +92,11 @@ export declare class ResourceManager {
85
92
  * @remarks The release principle is that it is not referenced by the components, including direct and indirect reference.
86
93
  */
87
94
  gc(): void;
95
+ /**
96
+ * Add content restorer.
97
+ * @param restorer - The restorer
98
+ */
99
+ addContentRestorer<T extends EngineObject>(restorer: ContentRestorer<T>): void;
88
100
  private _assignDefaultOptions;
89
101
  private _loadSingleItem;
90
102
  private _gc;
@@ -96,6 +108,6 @@ export declare class ResourceManager {
96
108
  /**
97
109
  * Declare ResourceLoader's decorator.
98
110
  * @param assetType - Type of asset
99
- * @param extnames - Name of file extension
111
+ * @param extNames - Name of file extension
100
112
  */
101
- export declare function resourceLoader(assetType: string, extnames: string[], useCache?: boolean): <T extends Loader<any>>(Target: new (useCache: boolean) => T) => void;
113
+ export declare function resourceLoader(assetType: string, extNames: string[], useCache?: boolean): <T extends Loader<any>>(Target: new (useCache: boolean) => T) => void;
@@ -17,9 +17,13 @@ export declare class MultiExecutor {
17
17
  private interval;
18
18
  private _timeoutId;
19
19
  private _currentCount;
20
+ private _onComplete;
21
+ private _onError;
22
+ private _error;
20
23
  constructor(execFunc: (count?: number) => Promise<any>, totalCount: number, interval: number);
21
- private done;
22
- start(done?: Function): void;
23
- stop(): void;
24
+ start(): this;
25
+ onComplete(func: Function): this;
26
+ onError(func: Function): this;
27
+ cancel(): void;
24
28
  private exec;
25
29
  }
@@ -105,6 +105,8 @@ export declare enum GLCapabilityType {
105
105
  pvrtc = "WEBGL_compressed_texture_pvrtc",
106
106
  pvrtc_webkit = "WEBKIT_WEBGL_compressed_texture_pvrtc",
107
107
  s3tc = "WEBGL_compressed_texture_s3tc",
108
- s3tc_webkit = "WEBKIT_WEBGL_compressed_texture_s3tc"
108
+ s3tc_webkit = "WEBKIT_WEBGL_compressed_texture_s3tc",
109
+ bptc = "EXT_texture_compression_bptc",
110
+ WEBGL_lose_context = "WEBGL_lose_context"
109
111
  }
110
112
  export type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array;
@@ -21,4 +21,5 @@ export declare abstract class EngineObject {
21
21
  * Destroy self.
22
22
  */
23
23
  destroy(): void;
24
+ protected _onDestroy(): void;
24
25
  }
@@ -1,11 +1,10 @@
1
- import { Event } from "./Event";
2
1
  /**
3
2
  * EventDispatcher, which can be inherited as a base class.
4
3
  */
5
4
  export declare class EventDispatcher {
5
+ private static _dispatchingListenersPool;
6
6
  private _events;
7
7
  private _eventCount;
8
- private _dispatchingListeners;
9
8
  /**
10
9
  * Determine whether there is event listening.
11
10
  * @param event - Event name
@@ -44,15 +43,6 @@ export declare class EventDispatcher {
44
43
  * @returns This
45
44
  */
46
45
  once(event: string, fn: Function): EventDispatcher;
47
- /**
48
- * @deprecated Use `on/once` instead.
49
- * Add a listener function with the specified event name.
50
- * @param event - Event name
51
- * @param fn - Function
52
- * @param once - Is it a one-time listener
53
- * @returns this
54
- */
55
- addEventListener(event: string, fn: Function, once?: boolean): EventDispatcher;
56
46
  /**
57
47
  * Remove the event listener(s) of the specified event name.
58
48
  * @param event - Event name
@@ -71,9 +61,6 @@ export declare class EventDispatcher {
71
61
  * @param event - Event name, delete all events if not passed
72
62
  */
73
63
  removeAllEventListeners(event?: string): void;
74
- /**
75
- * @deprecated Use `dispatch` instead.
76
- */
77
- trigger(e: Event): void;
64
+ private _addEventListener;
78
65
  private _clearEvent;
79
66
  }
@@ -1,43 +1,44 @@
1
1
  /**
2
- * Tools for calculating the time per frame.
2
+ * Provide time related information.
3
3
  */
4
4
  export declare class Time {
5
5
  private static _elapsedTimeProperty;
6
- private _clock;
7
- private _timeScale;
6
+ private static _deltaTimeProperty;
7
+ private _frameCount;
8
8
  private _deltaTime;
9
- private _startTime;
10
- private _lastTickTime;
9
+ private _actualDeltaTime;
10
+ private _elapsedTime;
11
+ private _actualElapsedTime;
12
+ private _lastSystemTime;
11
13
  private _elapsedTimeValue;
14
+ private _deltaTimeValue;
15
+ /** Maximum delta time allowed per frame in seconds. */
16
+ maximumDeltaTime: number;
17
+ /** The scale of time. */
18
+ timeScale: number;
12
19
  get frameCount(): number;
13
20
  /**
14
- * Constructor of the Time.
15
- */
16
- constructor();
17
- reset(): void;
18
- /**
19
- * Current Time
20
- */
21
- get nowTime(): number;
22
- /**
23
- * Time between two ticks
21
+ * The delta time in seconds from the last frame to the current frame.
22
+ *
23
+ * @remarks When the frame rate is low or stutter occurs, `deltaTime` will not exceed the value of `maximumDeltaTime` * `timeScale`.
24
24
  */
25
25
  get deltaTime(): number;
26
26
  /**
27
- * Scaled delta time.
27
+ * The amount of elapsed time in seconds since the start of the engine.
28
28
  */
29
- get timeScale(): number;
30
- set timeScale(s: number);
29
+ get elapsedTime(): number;
31
30
  /**
32
- * Unscaled delta time.
31
+ * The actual delta time in seconds from the last frame to the current frame.
32
+ *
33
+ * @remarks The actual delta time is not affected by `maximumDeltaTime` and `timeScale`.
33
34
  */
34
- get unscaledDeltaTime(): number;
35
+ get actualDeltaTime(): number;
35
36
  /**
36
- * The elapsed time, after the clock is initialized.
37
+ * The amount of actual elapsed time in seconds since the start of the engine.
37
38
  */
38
- get timeSinceStartup(): number;
39
+ get actualElapsedTime(): number;
39
40
  /**
40
- * Call every frame, update delta time and other data.
41
+ * Constructor of the Time.
41
42
  */
42
- tick(): void;
43
+ constructor();
43
44
  }
@@ -1,7 +1,5 @@
1
- export { Event } from "./Event";
2
1
  export { EventDispatcher } from "./EventDispatcher";
3
2
  export { Logger } from "./Logger";
4
3
  export { Time } from "./Time";
5
- export { Util, ObjectValues } from "./Util";
6
4
  export { EngineObject } from "./EngineObject";
7
5
  export * from "./Constant";
@@ -1,4 +1,5 @@
1
1
  import { Component } from "../Component";
2
+ import { Entity } from "../Entity";
2
3
  /**
3
4
  * Custom clone interface.
4
5
  */
@@ -10,5 +11,5 @@ export declare class ComponentCloner {
10
11
  * @param source - Clone source
11
12
  * @param target - Clone target
12
13
  */
13
- static cloneComponent(source: Component, target: Component): void;
14
+ static cloneComponent(source: Component, target: Component, srcRoot: Entity, targetRoot: Entity): void;
14
15
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Depth texture mode.
3
+ */
4
+ export declare enum DepthTextureMode {
5
+ None = 0,
6
+ PrePass = 1
7
+ }
@@ -9,15 +9,8 @@ export declare class CubeProbe extends Probe {
9
9
  * The position of the probe can be set, the default is the origin [0,0,0].
10
10
  */
11
11
  position: Vector3;
12
- /**
13
- * @override
14
- */
15
- protected readonly _isCube: boolean;
16
12
  private oriViewMatrix;
17
13
  private _oriFieldOfView;
18
- /**
19
- * @override
20
- */
21
14
  onBeginRender(camera: Camera): void;
22
15
  /**
23
16
  * Store original camera parameters.
@@ -46,13 +46,7 @@ export declare abstract class Probe extends Script {
46
46
  * @remarks Prevent issue: Feedback Loops Between Textures and the Framebuffer.
47
47
  */
48
48
  onTextureChange(renderColorTexture: Texture): void;
49
- /**
50
- * @override
51
- */
52
49
  onBeginRender(camera: Camera): void;
53
- /**
54
- * @override
55
- */
56
50
  onEndRender(camera: Camera): void;
57
51
  protected _reset(): void;
58
52
  }
@@ -1,4 +1,4 @@
1
- import { RefObject } from "../asset/RefObject";
1
+ import { GraphicsResource } from "../asset/GraphicsResource";
2
2
  import { Engine } from "../Engine";
3
3
  import { BufferBindFlag } from "./enums/BufferBindFlag";
4
4
  import { BufferUsage } from "./enums/BufferUsage";
@@ -6,14 +6,13 @@ import { SetDataOptions } from "./enums/SetDataOptions";
6
6
  /**
7
7
  * Buffer.
8
8
  */
9
- export declare class Buffer extends RefObject {
10
- _glBindTarget: number;
11
- _glBufferUsage: number;
12
- _nativeBuffer: WebGLBuffer;
13
- private _hardwareRenderer;
9
+ export declare class Buffer extends GraphicsResource {
14
10
  private _type;
15
11
  private _byteLength;
16
12
  private _bufferUsage;
13
+ private _platformBuffer;
14
+ private _readable;
15
+ private _data;
17
16
  /**
18
17
  * Buffer binding flag.
19
18
  */
@@ -26,22 +25,36 @@ export declare class Buffer extends RefObject {
26
25
  * Buffer usage.
27
26
  */
28
27
  get bufferUsage(): BufferUsage;
28
+ /**
29
+ * If buffer is readable.
30
+ */
31
+ get readable(): boolean;
32
+ /**
33
+ * Buffer data cache.
34
+ *
35
+ * @remarks
36
+ * Buffer must be readable.
37
+ * If the data you get is modified, must call `setData()` to update buffer to GPU.
38
+ */
39
+ get data(): Uint8Array;
29
40
  /**
30
41
  * Create Buffer.
31
42
  * @param engine - Engine
32
43
  * @param type - Buffer binding flag
33
44
  * @param byteLength - Byte length
34
45
  * @param bufferUsage - Buffer usage
46
+ * @param readable - If buffer is readable
35
47
  */
36
- constructor(engine: Engine, type: BufferBindFlag, byteLength: number, bufferUsage?: BufferUsage);
48
+ constructor(engine: Engine, type: BufferBindFlag, byteLength: number, bufferUsage?: BufferUsage, readable?: boolean);
37
49
  /**
38
50
  * Create Buffer.
39
51
  * @param engine - Engine
40
52
  * @param type - Buffer binding flag
41
- * @param data - Byte
53
+ * @param data - Buffer data, if `readable` is true, the`data` property will store a copy of this
42
54
  * @param bufferUsage - Buffer usage
55
+ * @param readable - If buffer is readable
43
56
  */
44
- constructor(engine: Engine, type: BufferBindFlag, data: ArrayBuffer | ArrayBufferView, bufferUsage?: BufferUsage);
57
+ constructor(engine: Engine, type: BufferBindFlag, data: ArrayBuffer | ArrayBufferView, bufferUsage?: BufferUsage, readable?: boolean);
45
58
  /**
46
59
  * Bind buffer.
47
60
  */
@@ -94,12 +107,8 @@ export declare class Buffer extends RefObject {
94
107
  */
95
108
  getData(data: ArrayBufferView, bufferByteOffset: number, dataOffset: number, dataLength: number): void;
96
109
  /**
97
- * @override
98
- * Destroy.
99
- */
100
- _onDestroy(): void;
101
- /**
102
- * @deprecated
110
+ * Mark buffer as readable, the `data` property will be not accessible anymore.
103
111
  */
104
- resize(dataLength: number): void;
112
+ markAsUnreadable(): void;
113
+ _rebuild(): void;
105
114
  }
@@ -4,6 +4,7 @@ export interface ElementInfo {
4
4
  size: number;
5
5
  type: DataType;
6
6
  normalized: boolean;
7
+ normalizedScaleFactor: number;
7
8
  }
8
9
  export declare class BufferUtil {
9
10
  static _getGLIndexType(indexFormat: IndexFormat): DataType;
@@ -1,14 +1,12 @@
1
1
  import { BoundingBox } from "@galacean/engine-math";
2
- import { RefObject } from "../asset/RefObject";
3
2
  import { Engine } from "../Engine";
4
- import { MeshTopology } from "../graphic/enums/MeshTopology";
5
- import { IndexBufferBinding } from "../graphic/IndexBufferBinding";
3
+ import { GraphicsResource } from "../asset/GraphicsResource";
6
4
  import { SubMesh } from "../graphic/SubMesh";
7
- import { VertexElement } from "../graphic/VertexElement";
5
+ import { MeshTopology } from "../graphic/enums/MeshTopology";
8
6
  /**
9
7
  * Mesh.
10
8
  */
11
- export declare abstract class Mesh extends RefObject {
9
+ export declare abstract class Mesh extends GraphicsResource {
12
10
  /** Name. */
13
11
  name: string;
14
12
  private _bounds;
@@ -55,16 +53,7 @@ export declare abstract class Mesh extends RefObject {
55
53
  * Clear all sub-mesh.
56
54
  */
57
55
  clearSubMesh(): void;
58
- /**
59
- * @override
60
- */
61
- _addRefCount(value: number): void;
62
- /**
63
- * @override
64
- * Destroy.
65
- */
66
- _onDestroy(): void;
67
- protected _setVertexElements(elements: VertexElement[]): void;
68
- protected _setIndexBufferBinding(binding: IndexBufferBinding | null): void;
56
+ _addReferCount(value: number): void;
57
+ _rebuild(): void;
69
58
  private _onBoundsChanged;
70
59
  }
@@ -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
  }
@@ -4,16 +4,16 @@ import { VertexElementFormat } from "./enums/VertexElementFormat";
4
4
  * Vertex element.
5
5
  */
6
6
  export declare class VertexElement {
7
- _glElementInfo: ElementInfo;
8
- private _semantic;
7
+ _formatMetaInfo: ElementInfo;
8
+ private _attributeName;
9
9
  private _offset;
10
10
  private _format;
11
11
  private _bindingIndex;
12
12
  private _instanceStepRate;
13
13
  /**
14
- * Vertex semantic.
14
+ * Vertex attribute.
15
15
  */
16
- get semantic(): string;
16
+ get attribute(): string;
17
17
  /**
18
18
  * Vertex data byte offset.
19
19
  */
@@ -34,11 +34,15 @@ export declare class VertexElement {
34
34
  get instanceStepRate(): number;
35
35
  /**
36
36
  * Create vertex element.
37
- * @param semantic - Input vertex semantic
37
+ * @param attribute - Input attribute
38
38
  * @param offset - Vertex data byte offset
39
39
  * @param format - Vertex data format
40
40
  * @param bindingIndex - Vertex buffer binding index
41
41
  * @param instanceStepRate - Instance cadence, the number of instances drawn for each vertex in the buffer, non-instance elements must be 0.
42
42
  */
43
- constructor(semantic: string, offset: number, format: VertexElementFormat, bindingIndex: number, instanceStepRate?: number);
43
+ constructor(attribute: string, offset: number, format: VertexElementFormat, bindingIndex: number, instanceStepRate?: number);
44
+ /**
45
+ * @deprecated use `attributeName` instead
46
+ */
47
+ get semantic(): string;
44
48
  }
package/types/index.d.ts CHANGED
@@ -8,26 +8,25 @@ export { Entity } from "./Entity";
8
8
  export { Component } from "./Component";
9
9
  export { Script } from "./Script";
10
10
  export { Renderer } from "./Renderer";
11
- export { dependentComponents } from "./ComponentsDependencies";
11
+ export { dependentComponents, DependentMode } from "./ComponentsDependencies";
12
12
  export { Camera } from "./Camera";
13
13
  export { Transform } from "./Transform";
14
14
  export { BoolUpdateFlag } from "./BoolUpdateFlag";
15
15
  export type { EngineSettings } from "./EngineSettings";
16
+ export type { EngineConfiguration } from "./Engine";
16
17
  export { request } from "./asset/request";
17
18
  export { Loader } from "./asset/Loader";
19
+ export { ContentRestorer } from "./asset/ContentRestorer";
18
20
  export { ResourceManager, resourceLoader } from "./asset/ResourceManager";
19
21
  export { AssetPromise } from "./asset/AssetPromise";
20
22
  export type { LoadItem } from "./asset/LoadItem";
21
23
  export { AssetType } from "./asset/AssetType";
22
- export { RefObject } from "./asset/RefObject";
23
- export { BasicRenderPipeline } from "./RenderPipeline/BasicRenderPipeline";
24
- export { RenderQueue } from "./RenderPipeline/RenderQueue";
25
- export { RenderPass } from "./RenderPipeline/RenderPass";
26
- export { MeshRenderElement } from "./RenderPipeline/MeshRenderElement";
27
- export { SpriteElement } from "./RenderPipeline/SpriteElement";
24
+ export { ReferResource } from "./asset/ReferResource";
25
+ export * from "./RenderPipeline/index";
28
26
  export * from "./base";
29
27
  export { Background } from "./Background";
30
28
  export { BackgroundMode } from "./enums/BackgroundMode";
29
+ export { DepthTextureMode } from "./enums/DepthTextureMode";
31
30
  export { FogMode } from "./enums/FogMode";
32
31
  export { CameraClearFlags } from "./enums/CameraClearFlags";
33
32
  export { ColorSpace } from "./enums/ColorSpace";
@@ -51,3 +50,6 @@ export * from "./Layer";
51
50
  export * from "./clone/CloneManager";
52
51
  export * from "./renderingHardwareInterface/index";
53
52
  export * from "./physics/index";
53
+ export * from "./Utils";
54
+ export { Basic2DBatcher } from "./RenderPipeline/Basic2DBatcher";
55
+ export { ShaderMacroCollection } from "./shader/ShaderMacroCollection";
@@ -1,14 +1,14 @@
1
+ import { Vector3 } from "@galacean/engine-math";
1
2
  import { Keys } from "./enums/Keys";
2
- import { Pointer } from "./pointer/Pointer";
3
3
  import { PointerButton } from "./enums/PointerButton";
4
- import { Vector3 } from "@galacean/engine-math";
4
+ import { Pointer } from "./pointer/Pointer";
5
5
  /**
6
6
  * InputManager manages device input such as mouse, touch, keyboard, etc.
7
7
  */
8
8
  export declare class InputManager {
9
+ private _engine;
9
10
  /** Sometimes the input module will not be initialized, such as off-screen rendering. */
10
11
  private _initialized;
11
- private _curFrameCount;
12
12
  private _wheelManager;
13
13
  private _pointerManager;
14
14
  private _keyboardManager;
@@ -2,7 +2,7 @@ export interface IInput {
2
2
  /**
3
3
  * Handler function updated every frame.
4
4
  */
5
- _update(frameCount?: number): void;
5
+ _update(): void;
6
6
  /**
7
7
  * Function called when the engine is destroyed.
8
8
  */
@@ -1,10 +1,12 @@
1
1
  import { Color, SphericalHarmonics3 } from "@galacean/engine-math";
2
2
  import { TextureCube } from "../texture";
3
3
  import { DiffuseMode } from "./enums/DiffuseMode";
4
+ import { ReferResource } from "../asset/ReferResource";
5
+ import { Engine } from "../Engine";
4
6
  /**
5
7
  * Ambient light.
6
8
  */
7
- export declare class AmbientLight {
9
+ export declare class AmbientLight extends ReferResource {
8
10
  private static _shMacro;
9
11
  private static _specularMacro;
10
12
  private static _decodeRGBMMacro;
@@ -60,6 +62,7 @@ export declare class AmbientLight {
60
62
  */
61
63
  get specularIntensity(): number;
62
64
  set specularIntensity(value: number);
65
+ constructor(engine: Engine);
63
66
  private _setDiffuseMode;
64
67
  private _setSpecularTexture;
65
68
  private _setSpecularTextureDecodeRGBM;
@@ -8,7 +8,6 @@ export declare class DirectLight extends Light {
8
8
  private static _colorProperty;
9
9
  private static _directionProperty;
10
10
  private static _combinedData;
11
- private _forward;
12
11
  private _reverseDirection;
13
12
  /**
14
13
  * Get direction.
@@ -44,5 +44,4 @@ export declare abstract class Light extends Component {
44
44
  * Inverse view matrix.
45
45
  */
46
46
  get inverseViewMatrix(): Matrix;
47
- protected _getLightColor(): Color;
48
47
  }
@@ -2,4 +2,5 @@
2
2
  * Light manager.
3
3
  */
4
4
  export declare class LightManager {
5
+ private _getSunLightIndex;
5
6
  }
@@ -18,7 +18,6 @@ export declare class SpotLight extends Light {
18
18
  angle: number;
19
19
  /** Angle, in radians, from falloff begins to ends. */
20
20
  penumbra: number;
21
- private _forward;
22
21
  private _inverseDirection;
23
22
  private _projectMatrix;
24
23
  /**