@galacean/effects-core 2.7.3 → 2.8.0-alpha.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 (39) hide show
  1. package/dist/asset-manager.d.ts +5 -5
  2. package/dist/components/index.d.ts +1 -0
  3. package/dist/components/position-constraint.d.ts +92 -0
  4. package/dist/composition.d.ts +6 -7
  5. package/dist/constants.d.ts +4 -0
  6. package/dist/downloader.d.ts +7 -0
  7. package/dist/engine.d.ts +67 -6
  8. package/dist/events/types.d.ts +31 -6
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +2726 -2126
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +2720 -2123
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/plugins/interact/click-handler.d.ts +14 -2
  15. package/dist/plugins/interact/event-system.d.ts +16 -3
  16. package/dist/plugins/plugin.d.ts +0 -49
  17. package/dist/plugins/sprite/sprite-mesh.d.ts +0 -4
  18. package/dist/plugins/text/base-layout.d.ts +13 -0
  19. package/dist/plugins/text/index.d.ts +2 -0
  20. package/dist/plugins/text/text-component-base.d.ts +61 -0
  21. package/dist/plugins/text/text-item.d.ts +25 -100
  22. package/dist/plugins/text/text-layout.d.ts +9 -19
  23. package/dist/plugins/text/text-style.d.ts +2 -1
  24. package/dist/render/draw-object-pass.d.ts +8 -0
  25. package/dist/render/framebuffer.d.ts +0 -4
  26. package/dist/render/gpu-capability.d.ts +17 -5
  27. package/dist/render/index.d.ts +1 -0
  28. package/dist/render/post-process-pass.d.ts +14 -5
  29. package/dist/render/render-frame.d.ts +8 -31
  30. package/dist/render/render-pass.d.ts +0 -26
  31. package/dist/render/renderer.d.ts +5 -18
  32. package/dist/scene-loader.d.ts +7 -0
  33. package/dist/texture/index.d.ts +1 -1
  34. package/dist/texture/texture-loader.d.ts +60 -0
  35. package/dist/transform.d.ts +8 -1
  36. package/dist/utils/index.d.ts +1 -0
  37. package/dist/vfx-item.d.ts +10 -3
  38. package/package.json +2 -2
  39. package/dist/texture/ktx-texture.d.ts +0 -21
@@ -1,21 +1,20 @@
1
- import type { vec4 } from '@galacean/effects-specification';
2
1
  import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
3
2
  import { Vector2 } from '@galacean/effects-math/es/core/vector2';
3
+ import type { Vector3 } from '@galacean/effects-math/es/core/vector3';
4
4
  import { Vector4 } from '@galacean/effects-math/es/core/vector4';
5
+ import type { vec4 } from '@galacean/effects-specification';
5
6
  import type { Camera } from '../camera';
7
+ import type { PostProcessVolume, RendererComponent } from '../components';
6
8
  import type { UniformValue } from '../material';
7
9
  import { PassTextureCache } from '../paas-texture-cache';
8
- import type { SemanticFunc } from './semantic-map';
9
- import { SemanticMap } from './semantic-map';
10
- import { Texture } from '../texture';
10
+ import type { Texture } from '../texture';
11
11
  import type { Disposable } from '../utils';
12
12
  import { DestroyOptions } from '../utils';
13
- import { Mesh } from './mesh';
14
- import type { RenderPassClearAction, RenderPassColorAttachmentOptions, RenderPassDepthStencilAttachment, RenderPassDestroyOptions, RenderPassStoreAction } from './render-pass';
15
- import { RenderPass } from './render-pass';
13
+ import type { Mesh } from './mesh';
14
+ import type { RenderPass, RenderPassClearAction, RenderPassColorAttachmentOptions, RenderPassDepthStencilAttachment, RenderPassDestroyOptions, RenderPassStoreAction } from './render-pass';
16
15
  import type { Renderer } from './renderer';
17
- import type { PostProcessVolume, RendererComponent } from '../components';
18
- import type { Vector3 } from '@galacean/effects-math/es/core/vector3';
16
+ import type { SemanticFunc } from './semantic-map';
17
+ import { SemanticMap } from './semantic-map';
19
18
  /**
20
19
  * 渲染数据,保存了当前渲染使用到的数据。
21
20
  */
@@ -172,7 +171,6 @@ export declare class RenderFrame implements Disposable {
172
171
  */
173
172
  globalVolume?: PostProcessVolume;
174
173
  renderer: Renderer;
175
- resource: RenderFrameResource;
176
174
  keepColorBuffer?: boolean;
177
175
  editorTransform: Vector4;
178
176
  renderQueue: RendererComponent[];
@@ -207,19 +205,12 @@ export declare class RenderFrame implements Disposable {
207
205
  * @param options - 可以有选择销毁一些对象
208
206
  */
209
207
  dispose(options?: RenderFrameDestroyOptions): void;
210
- /**
211
- * 重置 RenderPass ColorAttachment,解决 Framebuffer 即读又写的问题
212
- * @param renderPasses - RenderPass 对象数组
213
- * @param startIndex - 开始重置的索引
214
- */
215
- resetRenderPassDefaultAttachment(renderPasses: RenderPass[], startIndex: number): void;
216
208
  /**
217
209
  * 查找 Mesh 所在的 RenderPass 索引,没找到是-1
218
210
  * @param mesh - 需要查找的 Mesh
219
211
  */
220
212
  findMeshRenderPassIndex(mesh: Mesh): number;
221
213
  protected addToRenderPass(renderPass: RenderPass, mesh: Mesh): void;
222
- protected getRPAttachments(attachments: RenderPassColorAttachmentOptions[], preRP?: RenderPass): RenderPassColorAttachmentOptions[];
223
214
  protected resetClearActions(): void;
224
215
  /**
225
216
  * 设置 RenderPass 数组,直接修改内部的 RenderPass 数组
@@ -231,20 +222,6 @@ export declare class RenderFrame implements Disposable {
231
222
  * @param pass - 需要添加的 RenderPass
232
223
  */
233
224
  addRenderPass(pass: RenderPass): void;
234
- /**
235
- * 创建 RenderPass 切分时需要的 GPU 资源
236
- */
237
- createResource(): void;
238
- /**
239
- * 创建拷贝 RenderPass 用到的 Mesh 对象
240
- * @param semantics - RenderPass 渲染时 Framebuffer 的颜色和深度纹理、大小和是否混合
241
- */
242
- createCopyMesh(semantics?: {
243
- tex?: string;
244
- size?: string;
245
- blend?: boolean;
246
- depthTexture?: Texture;
247
- }): Mesh;
248
225
  /**
249
226
  * 移除 RenderPass
250
227
  * @param pass - 需要移除的 RenderPass
@@ -172,16 +172,6 @@ export interface RenderPassDelegate {
172
172
  export interface RenderPassAttachmentOptions {
173
173
  attachments?: RenderPassColorAttachmentOptions[];
174
174
  depthStencilAttachment?: RenderPassDepthStencilAttachmentOptions;
175
- /**
176
- * RenderPass 视口大小,如果没有指定,会用 viewportScale 计算
177
- */
178
- viewport?: [x: number, y: number, width: number, height: number];
179
- /**
180
- * 视口缩放系数
181
- * 1. viewport 提供时,忽略此参数,RenderPass 视口大小由 viewport 决定;
182
- * 2. 默认为1,RenderPass 视口大小由画布大小* viewportScale 决定,画布尺寸变化时,RenderPass 视口也会变化;
183
- */
184
- viewportScale?: number;
185
175
  }
186
176
  export interface RenderPassOptions extends RenderPassAttachmentOptions {
187
177
  name?: string;
@@ -246,7 +236,6 @@ export declare class RenderPass implements Disposable, Sortable {
246
236
  protected options: RenderPassAttachmentOptions;
247
237
  protected renderer: Renderer;
248
238
  private initialized;
249
- private viewportScale;
250
239
  private depthTexture?;
251
240
  private stencilTexture?;
252
241
  private isCustomViewport;
@@ -259,10 +248,6 @@ export declare class RenderPass implements Disposable, Sortable {
259
248
  addMesh(mesh: RendererComponent): void;
260
249
  removeMesh(mesh: RendererComponent): void;
261
250
  setMeshes(meshes: RendererComponent[]): RendererComponent[];
262
- /**
263
- * 获取当前 Attachment 数组,注意 RenderPass 可能没有创建完成
264
- */
265
- getInitAttachments(): RenderPassColorAttachmentOptions[] | RenderTargetHandle[] | undefined;
266
251
  /**
267
252
  * 配置当前pass的RT,在每帧渲染前调用
268
253
  */
@@ -275,17 +260,6 @@ export declare class RenderPass implements Disposable, Sortable {
275
260
  * 每帧所有的pass渲染完后调用,通常用于清空临时的RT资源
276
261
  */
277
262
  frameCleanup(renderer: Renderer): void;
278
- /**
279
- * 重置 ColorAttachment 数组,会直接替换掉
280
- * @param colors - 纹理数组,作为新的 ColorAttachment
281
- */
282
- resetColorAttachments(colors: Texture[]): void;
283
- /**
284
- * 重置所有 Attachment,会替换掉所有 Attachment
285
- * @param options - Attachment 和视口数据
286
- */
287
- resetAttachments(options: RenderPassAttachmentOptions): void;
288
- private setViewportOptions;
289
263
  private _resetAttachments;
290
264
  /**
291
265
  * 获取当前视口大小,格式:[x偏移,y偏移,宽度,高度]
@@ -8,40 +8,27 @@ import type { Geometry } from './geometry';
8
8
  import type { RenderFrame, RenderingData } from './render-frame';
9
9
  import type { RenderPassClearAction, RenderPassStoreAction } from './render-pass';
10
10
  import type { ShaderLibrary } from './shader';
11
- import type { GLType } from '../gl';
12
11
  export declare class Renderer implements LostHandler, RestoreHandler {
13
- static create: (canvas: HTMLCanvasElement | OffscreenCanvas, framework: GLType, renderOptions?: WebGLContextAttributes) => Renderer;
12
+ static create: (engine: Engine) => Renderer;
14
13
  engine: Engine;
15
- env: string;
16
14
  /**
17
15
  * 存放渲染需要用到的数据
18
16
  */
19
17
  renderingData: RenderingData;
20
- constructor();
18
+ protected currentFramebuffer: Framebuffer;
19
+ constructor(engine: Engine);
21
20
  setGlobalFloat(name: string, value: number): void;
22
21
  setGlobalInt(name: string, value: number): void;
23
22
  setGlobalVector4(name: string, value: Vector4): void;
24
23
  setGlobalVector3(name: string, value: Vector3): void;
25
24
  setGlobalMatrix(name: string, value: Matrix4): void;
26
- getFramebuffer(): Framebuffer | null;
25
+ getFramebuffer(): Framebuffer;
27
26
  setFramebuffer(framebuffer: Framebuffer | null): void;
28
27
  setViewport(x: number, y: number, width: number, height: number): void;
29
28
  resize(canvasWidth: number, canvasHeight: number): void;
30
29
  clear(action: RenderPassClearAction | RenderPassStoreAction): void;
31
30
  getWidth(): number;
32
31
  getHeight(): number;
33
- /**
34
- * 添加 webglcontextlost 事件回调
35
- * @override
36
- * @param lostHandler
37
- */
38
- addLostHandler(lostHandler: LostHandler): void;
39
- /**
40
- * 添加 webglContextrestored 事件的回调
41
- * @override
42
- * @param restoreHandler
43
- */
44
- addRestoreHandler(restoreHandler: RestoreHandler): void;
45
32
  /**
46
33
  * @override
47
34
  * @param e
@@ -61,5 +48,5 @@ export declare class Renderer implements LostHandler, RestoreHandler {
61
48
  renderMeshes(meshes: RendererComponent[]): void;
62
49
  drawGeometry(geometry: Geometry, matrix: Matrix4, material: Material, subMeshIndex?: number): void;
63
50
  getTemporaryRT(name: string, width: number, height: number, depthBuffer: number, filter: FilterMode, format: RenderTextureFormat): Framebuffer | null;
64
- dispose(haltGL?: boolean): void;
51
+ dispose(): void;
65
52
  }
@@ -0,0 +1,7 @@
1
+ import { Composition } from './composition';
2
+ import type { Engine } from './engine';
3
+ import type { Scene, SceneLoadOptions } from './scene';
4
+ export declare class SceneLoader {
5
+ static load(scene: Scene.LoadType, engine: Engine, options?: SceneLoadOptions): Promise<Composition>;
6
+ private static createComposition;
7
+ }
@@ -1,5 +1,5 @@
1
1
  export * from './utils';
2
2
  export * from './texture';
3
- export * from './ktx-texture';
4
3
  export * from './texture-factory';
5
4
  export * from './types';
5
+ export * from './texture-loader';
@@ -0,0 +1,60 @@
1
+ import type { Texture2DSourceOptions } from './types';
2
+ import type { GPUCapability } from '../render/gpu-capability';
3
+ export interface TextureLoader {
4
+ /**
5
+ * 从 ArrayBuffer 加载纹理
6
+ */
7
+ loadFromBuffer(arrBuffer: ArrayBuffer, gpuCapability?: GPUCapability): Promise<Texture2DSourceOptions>;
8
+ /**
9
+ * 从 URL 加载纹理
10
+ */
11
+ loadFromURL(url: string, gpuCapability?: GPUCapability): Promise<Texture2DSourceOptions>;
12
+ /**
13
+ * 释放资源
14
+ */
15
+ dispose(): void;
16
+ }
17
+ /**
18
+ * 纹理加载器工厂类型
19
+ */
20
+ export type TextureLoaderFactory = () => TextureLoader;
21
+ /**
22
+ * 纹理加载器注册表
23
+ */
24
+ declare class TextureLoaderRegistry {
25
+ private loaders;
26
+ private instances;
27
+ /**
28
+ * 注册纹理加载器
29
+ * @param type - 加载器类型(如 'ktx2', 'hdr')
30
+ * @param factory - 加载器工厂函数
31
+ */
32
+ register(type: string, factory: TextureLoaderFactory): void;
33
+ /**
34
+ * 注销纹理加载器
35
+ * @param type - 加载器类型
36
+ */
37
+ unregister(type: string): void;
38
+ /**
39
+ * 获取纹理加载器实例(单例)
40
+ * @param type - 加载器类型
41
+ */
42
+ getLoader(type: string): TextureLoader | null;
43
+ /**
44
+ * 检查是否已注册某类型加载器
45
+ */
46
+ has(type: string): boolean;
47
+ /**
48
+ * 获取所有已注册的加载器类型
49
+ */
50
+ getRegisteredTypes(): string[];
51
+ /**
52
+ * 清理所有加载器
53
+ */
54
+ dispose(): void;
55
+ }
56
+ /**
57
+ * 全局纹理加载器注册表实例
58
+ */
59
+ export declare const textureLoaderRegistry: TextureLoaderRegistry;
60
+ export {};
@@ -13,7 +13,7 @@ export interface TransformProps {
13
13
  valid?: boolean;
14
14
  }
15
15
  /**
16
- *
16
+ * 变换组件,用于描述元素的位置、旋转、缩放等信息
17
17
  */
18
18
  export declare class Transform implements Disposable {
19
19
  /**
@@ -204,6 +204,13 @@ export declare class Transform implements Disposable {
204
204
  * @returns
205
205
  */
206
206
  getWorldPosition(): Vector3;
207
+ /**
208
+ * 设置世界坐标位置
209
+ * @param x - 世界坐标 x
210
+ * @param y - 世界坐标 y
211
+ * @param z - 世界坐标 z
212
+ */
213
+ setWorldPosition(x: number, y: number, z: number): void;
207
214
  /**
208
215
  * 获取联合变换后的最终旋转量
209
216
  * @returns
@@ -79,6 +79,7 @@ export declare function isObject(obj: unknown): obj is Record<string | symbol, u
79
79
  */
80
80
  export declare function isPlainObject(obj: unknown): obj is Record<string | symbol, unknown>;
81
81
  export declare function isCanvas(canvas: HTMLCanvasElement): boolean;
82
+ export declare function isPowerOfTwo(value: number): boolean;
82
83
  /**
83
84
  * 生成一个位于 min 和 max 之间的随机数
84
85
  * @param min
@@ -238,17 +238,24 @@ export declare class VFXItem extends EffectsObject implements Disposable {
238
238
  */
239
239
  setPositionByPixel(x: number, y: number): void;
240
240
  /**
241
- * 设置元素在 3D 坐标轴的位置
241
+ * 设置本地坐标位置
242
242
  */
243
243
  setPosition(x: number, y: number, z: number): void;
244
244
  /**
245
- * 设置元素在 3D 坐标轴的角度
245
+ * 设置本地坐标欧拉旋转
246
246
  */
247
247
  setRotation(x: number, y: number, z: number): void;
248
248
  /**
249
- * 设置元素在 3D 坐标轴的缩放
249
+ * 设置本地坐标缩放
250
250
  */
251
251
  setScale(x: number, y: number, z: number): void;
252
+ /**
253
+ * 设置世界坐标位置
254
+ * @param x - 世界坐标 x
255
+ * @param y - 世界坐标 y
256
+ * @param z - 世界坐标 z
257
+ */
258
+ setWorldPosition(x: number, y: number, z: number): void;
252
259
  /**
253
260
  * 获取元素包围盒
254
261
  * @override
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/effects-core",
3
- "version": "2.7.3",
3
+ "version": "2.8.0-alpha.0",
4
4
  "description": "Galacean Effects runtime core for the web",
5
5
  "module": "./dist/index.mjs",
6
6
  "main": "./dist/index.js",
@@ -42,7 +42,7 @@
42
42
  "registry": "https://registry.npmjs.org"
43
43
  },
44
44
  "dependencies": {
45
- "@galacean/effects-specification": "2.6.0",
45
+ "@galacean/effects-specification": "2.7.0-alpha.0",
46
46
  "@galacean/effects-math": "1.1.0",
47
47
  "flatbuffers": "24.3.25",
48
48
  "uuid": "9.0.1",
@@ -1,21 +0,0 @@
1
- import type { Texture2DSourceOptionsCompressed, TextureDataType } from './types';
2
- export declare class KTXTexture {
3
- private readonly arrayBuffer;
4
- private readonly baseOffset;
5
- glType: number;
6
- glTypeSize: number;
7
- glFormat: number;
8
- glInternalFormat: number;
9
- glBaseInternalFormat: number;
10
- pixelWidth: number;
11
- pixelHeight: number;
12
- loadType: number;
13
- pixelDepth: number;
14
- numberOfArrayElements: number;
15
- numberOfFaces: number;
16
- numberOfMipmapLevels: number;
17
- bytesOfKeyValueData: number;
18
- constructor(arrayBuffer: ArrayBuffer, facesExpected: number, baseOffset?: number);
19
- mipmaps(loadMipmaps: boolean): TextureDataType[];
20
- }
21
- export declare function getKTXTextureOptions(data: ArrayBuffer): Texture2DSourceOptionsCompressed;