@galacean/effects-core 1.1.2 → 1.1.3

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 (125) hide show
  1. package/dist/asset-manager.d.ts +135 -0
  2. package/dist/camera.d.ts +183 -0
  3. package/dist/comp-vfx-item.d.ts +71 -0
  4. package/dist/composition-source-manager.d.ts +45 -0
  5. package/dist/composition.d.ts +406 -0
  6. package/dist/config.d.ts +7 -0
  7. package/dist/constants.d.ts +11 -0
  8. package/dist/downloader.d.ts +83 -0
  9. package/dist/engine.d.ts +38 -0
  10. package/dist/filter.d.ts +63 -0
  11. package/dist/filters/alpha-frame.d.ts +5 -0
  12. package/dist/filters/alpha-mask.d.ts +5 -0
  13. package/dist/filters/bloom.d.ts +8 -0
  14. package/dist/filters/camera-move.d.ts +5 -0
  15. package/dist/filters/delay.d.ts +14 -0
  16. package/dist/filters/distortion.d.ts +5 -0
  17. package/dist/filters/gaussian.d.ts +27 -0
  18. package/dist/filters/index.d.ts +2 -0
  19. package/dist/filters/lum.d.ts +5 -0
  20. package/dist/filters/utils.d.ts +7 -0
  21. package/dist/gl/create-gl-context.d.ts +9 -0
  22. package/dist/gl/gpu-time.d.ts +5 -0
  23. package/dist/gl/index.d.ts +6 -0
  24. package/dist/index.d.ts +31 -0
  25. package/dist/index.js +26 -22
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +26 -22
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/libs/earcut.d.ts +37 -0
  30. package/dist/material/index.d.ts +4 -0
  31. package/dist/material/material-data-block.d.ts +27 -0
  32. package/dist/material/material.d.ts +347 -0
  33. package/dist/material/types.d.ts +66 -0
  34. package/dist/material/utils.d.ts +17 -0
  35. package/dist/math/float16array-wrapper.d.ts +5 -0
  36. package/dist/math/index.d.ts +4 -0
  37. package/dist/math/translate.d.ts +10 -0
  38. package/dist/math/utils.d.ts +19 -0
  39. package/dist/math/value-getter.d.ts +127 -0
  40. package/dist/paas-texture-cache.d.ts +24 -0
  41. package/dist/pass-render-level.d.ts +1 -0
  42. package/dist/plugin-system.d.ts +34 -0
  43. package/dist/plugins/cal/calculate-item.d.ts +84 -0
  44. package/dist/plugins/cal/calculate-loader.d.ts +3 -0
  45. package/dist/plugins/cal/calculate-vfx-item.d.ts +26 -0
  46. package/dist/plugins/camera/camera-controller-node.d.ts +17 -0
  47. package/dist/plugins/camera/camera-vfx-item-loader.d.ts +3 -0
  48. package/dist/plugins/camera/camera-vfx-item.d.ts +13 -0
  49. package/dist/plugins/index.d.ts +26 -0
  50. package/dist/plugins/interact/click-handler.d.ts +66 -0
  51. package/dist/plugins/interact/event-system.d.ts +37 -0
  52. package/dist/plugins/interact/interact-item.d.ts +2 -0
  53. package/dist/plugins/interact/interact-loader.d.ts +13 -0
  54. package/dist/plugins/interact/interact-mesh.d.ts +16 -0
  55. package/dist/plugins/interact/interact-vfx-item.d.ts +28 -0
  56. package/dist/plugins/particle/burst.d.ts +21 -0
  57. package/dist/plugins/particle/link.d.ts +21 -0
  58. package/dist/plugins/particle/particle-loader.d.ts +18 -0
  59. package/dist/plugins/particle/particle-mesh.d.ts +164 -0
  60. package/dist/plugins/particle/particle-system.d.ts +198 -0
  61. package/dist/plugins/particle/particle-vfx-item.d.ts +27 -0
  62. package/dist/plugins/particle/trail-mesh.d.ts +61 -0
  63. package/dist/plugins/plugin.d.ts +125 -0
  64. package/dist/plugins/sprite/filter-sprite-vfx-item.d.ts +13 -0
  65. package/dist/plugins/sprite/sprite-group.d.ts +95 -0
  66. package/dist/plugins/sprite/sprite-item.d.ts +106 -0
  67. package/dist/plugins/sprite/sprite-loader.d.ts +20 -0
  68. package/dist/plugins/sprite/sprite-mesh.d.ts +67 -0
  69. package/dist/plugins/sprite/sprite-vfx-item.d.ts +33 -0
  70. package/dist/plugins/text/text-item.d.ts +117 -0
  71. package/dist/plugins/text/text-layout.d.ts +28 -0
  72. package/dist/plugins/text/text-loader.d.ts +18 -0
  73. package/dist/plugins/text/text-mesh.d.ts +15 -0
  74. package/dist/plugins/text/text-style.d.ts +67 -0
  75. package/dist/plugins/text/text-vfx-item.d.ts +28 -0
  76. package/dist/polyfill.d.ts +4 -0
  77. package/dist/render/create-copy-shader.d.ts +6 -0
  78. package/dist/render/frame-buffer.d.ts +48 -0
  79. package/dist/render/geometry.d.ts +118 -0
  80. package/dist/render/global-volume.d.ts +15 -0
  81. package/dist/render/gpu-capability.d.ts +49 -0
  82. package/dist/render/index.d.ts +12 -0
  83. package/dist/render/mesh.d.ts +82 -0
  84. package/dist/render/post-process-pass.d.ts +37 -0
  85. package/dist/render/render-buffer.d.ts +20 -0
  86. package/dist/render/render-frame.d.ts +269 -0
  87. package/dist/render/render-pass.d.ts +309 -0
  88. package/dist/render/renderer.d.ts +62 -0
  89. package/dist/render/shader.d.ts +97 -0
  90. package/dist/render/types.d.ts +5 -0
  91. package/dist/scene.d.ts +29 -0
  92. package/dist/semantic-map.d.ts +14 -0
  93. package/dist/shader/index.d.ts +30 -0
  94. package/dist/shape/2d-shape.d.ts +32 -0
  95. package/dist/shape/cone.d.ts +11 -0
  96. package/dist/shape/donut.d.ts +9 -0
  97. package/dist/shape/earcut.d.ts +1 -0
  98. package/dist/shape/geometry.d.ts +30 -0
  99. package/dist/shape/index.d.ts +3 -0
  100. package/dist/shape/shape.d.ts +21 -0
  101. package/dist/shape/sphere.d.ts +15 -0
  102. package/dist/shape/texture-shape.d.ts +11 -0
  103. package/dist/template-image/index.d.ts +67 -0
  104. package/dist/template-image/qcanvas-viewer.d.ts +21 -0
  105. package/dist/template-image/qtext.d.ts +96 -0
  106. package/dist/template-image/template-v1.d.ts +27 -0
  107. package/dist/template-image/text-metrics.d.ts +18 -0
  108. package/dist/texture/index.d.ts +5 -0
  109. package/dist/texture/ktx-texture.d.ts +21 -0
  110. package/dist/texture/texture-factory.d.ts +13 -0
  111. package/dist/texture/texture.d.ts +78 -0
  112. package/dist/texture/types.d.ts +165 -0
  113. package/dist/texture/utils.d.ts +5 -0
  114. package/dist/ticker.d.ts +48 -0
  115. package/dist/transform.d.ts +221 -0
  116. package/dist/utils/array.d.ts +19 -0
  117. package/dist/utils/asserts.d.ts +2 -0
  118. package/dist/utils/color.d.ts +10 -0
  119. package/dist/utils/device.d.ts +4 -0
  120. package/dist/utils/image-data.d.ts +10 -0
  121. package/dist/utils/index.d.ts +67 -0
  122. package/dist/utils/sortable.d.ts +23 -0
  123. package/dist/utils/timeline-component.d.ts +39 -0
  124. package/dist/vfx-item.d.ts +360 -0
  125. package/package.json +2 -2
@@ -0,0 +1,82 @@
1
+ import { Matrix4 } from '@galacean/effects-math/es/core/index';
2
+ import type { Engine } from '../engine';
3
+ import type { Material, MaterialDestroyOptions } from '../material';
4
+ import type { Geometry, Renderer } from '../render';
5
+ import type { Disposable } from '../utils';
6
+ import { DestroyOptions } from '../utils';
7
+ export interface MeshOptionsBase {
8
+ material: Material;
9
+ name?: string;
10
+ worldMatrix?: Matrix4;
11
+ priority?: number;
12
+ }
13
+ export interface GeometryMeshProps extends MeshOptionsBase {
14
+ geometry: Geometry;
15
+ }
16
+ export interface MeshDestroyOptions {
17
+ geometries?: DestroyOptions;
18
+ material?: MaterialDestroyOptions | DestroyOptions.keep;
19
+ }
20
+ /**
21
+ * Mesh 抽象类
22
+ */
23
+ export declare class Mesh implements Disposable {
24
+ private engine;
25
+ /**
26
+ * Mesh 的全局唯一 id
27
+ */
28
+ readonly id: string;
29
+ /**
30
+ * Mesh 名称,缺省是 \<unnamed>
31
+ */
32
+ readonly name: string;
33
+ /**
34
+ * Mesh 的世界矩阵
35
+ */
36
+ worldMatrix: Matrix4;
37
+ /**
38
+ * Mesh 的材质
39
+ */
40
+ material: Material;
41
+ /**
42
+ * Mesh 的 Geometry
43
+ */
44
+ geometry: Geometry;
45
+ protected destroyed: boolean;
46
+ private _priority;
47
+ private visible;
48
+ /**
49
+ * 创建一个新的 Mesh 对象。
50
+ */
51
+ static create: (engine: Engine, props: GeometryMeshProps) => Mesh;
52
+ constructor(engine: Engine, props: GeometryMeshProps);
53
+ get priority(): number;
54
+ set priority(value: number);
55
+ get isDestroyed(): boolean;
56
+ /**
57
+ * 设置当前 Mesh 的可见性。
58
+ * @param visible - true:可见,false:不可见
59
+ */
60
+ setVisible(visible: boolean): void;
61
+ render(renderer: Renderer): void;
62
+ /**
63
+ * 获取当前 Mesh 的可见性。
64
+ */
65
+ getVisible(): boolean;
66
+ /**
67
+ * 获取当前 Mesh 的第一个 geometry。
68
+ */
69
+ firstGeometry(): Geometry;
70
+ /**
71
+ * 设置当前 Mesh 的材质
72
+ * @param material - 要设置的材质
73
+ * @param destroy - 可选的材质销毁选项
74
+ */
75
+ setMaterial(material: Material, destroy?: MaterialDestroyOptions | DestroyOptions.keep): void;
76
+ restore(): void;
77
+ /**
78
+ * 销毁当前资源
79
+ * @param options - 可选的销毁选项
80
+ */
81
+ dispose(options?: MeshDestroyOptions): void;
82
+ }
@@ -0,0 +1,37 @@
1
+ import type { RenderPassOptions } from './render-pass';
2
+ import { RenderTargetHandle } from './render-pass';
3
+ import { RenderPass } from './render-pass';
4
+ import type { Renderer } from './renderer';
5
+ export declare class BloomThresholdPass extends RenderPass {
6
+ sceneTextureHandle: RenderTargetHandle;
7
+ private mainTexture;
8
+ private screenMesh;
9
+ constructor(renderer: Renderer, option: RenderPassOptions);
10
+ configure(renderer: Renderer): void;
11
+ execute(renderer: Renderer): void;
12
+ }
13
+ export declare class HQGaussianDownSamplePass extends RenderPass {
14
+ gaussianResult: RenderTargetHandle;
15
+ private mainTexture;
16
+ private screenMesh;
17
+ private readonly type;
18
+ constructor(renderer: Renderer, type: 'V' | 'H', options: RenderPassOptions);
19
+ configure(renderer: Renderer): void;
20
+ execute(renderer: Renderer): void;
21
+ }
22
+ export declare class HQGaussianUpSamplePass extends RenderPass {
23
+ gaussianDownSampleResult: RenderTargetHandle;
24
+ private mainTexture;
25
+ private screenMesh;
26
+ constructor(renderer: Renderer, options: RenderPassOptions);
27
+ configure(renderer: Renderer): void;
28
+ execute(renderer: Renderer): void;
29
+ }
30
+ export declare class ToneMappingPass extends RenderPass {
31
+ private screenMesh;
32
+ private sceneTextureHandle;
33
+ private mainTexture;
34
+ constructor(renderer: Renderer, sceneTextureHandle?: RenderTargetHandle);
35
+ configure(renderer: Renderer): void;
36
+ execute(renderer: Renderer): void;
37
+ }
@@ -0,0 +1,20 @@
1
+ import type { Disposable } from '../utils';
2
+ import type { RenderPassAttachmentStorageType } from './render-pass';
3
+ export interface RenderBufferProps {
4
+ storageType: RenderPassAttachmentStorageType;
5
+ format: GLenum;
6
+ attachment: GLenum;
7
+ }
8
+ export declare abstract class RenderBuffer implements Disposable {
9
+ readonly size: [x: number, y: number];
10
+ readonly multiSample = 1;
11
+ readonly storageType: RenderPassAttachmentStorageType;
12
+ readonly format: GLenum;
13
+ readonly attachment: GLenum;
14
+ protected destroyed: boolean;
15
+ static create: (props: RenderBufferProps) => RenderBuffer;
16
+ constructor(props: RenderBufferProps);
17
+ get isDestroyed(): boolean;
18
+ abstract setSize(width: number, height: number): void;
19
+ abstract dispose(): void;
20
+ }
@@ -0,0 +1,269 @@
1
+ import type { vec4 } from '@galacean/effects-specification';
2
+ import type { Matrix4 } from '@galacean/effects-math/es/core/index';
3
+ import { Vector2, Vector4 } from '@galacean/effects-math/es/core/index';
4
+ import type { Camera } from '../camera';
5
+ import type { UniformValue } from '../material';
6
+ import { PassTextureCache } from '../paas-texture-cache';
7
+ import type { SemanticFunc } from '../semantic-map';
8
+ import { SemanticMap } from '../semantic-map';
9
+ import { Texture } from '../texture';
10
+ import type { Disposable } from '../utils';
11
+ import { DestroyOptions } from '../utils';
12
+ import { Mesh } from './mesh';
13
+ import type { RenderPassClearAction, RenderPassColorAttachmentOptions, RenderPassDepthStencilAttachment, RenderPassDestroyOptions, RenderPassStoreAction } from './render-pass';
14
+ import { RenderPass } from './render-pass';
15
+ import type { Renderer } from './renderer';
16
+ import type { GlobalVolume } from './global-volume';
17
+ /**
18
+ * 渲染数据,保存了当前渲染使用到的数据。
19
+ */
20
+ export interface RenderingData {
21
+ /**
22
+ * 当前渲染使用的 Camera
23
+ */
24
+ currentCamera: Camera;
25
+ /**
26
+ * 当前渲染的 RenderFrame
27
+ */
28
+ currentFrame: RenderFrame;
29
+ /**
30
+ * 当前渲染的 RenderPass
31
+ */
32
+ currentPass: RenderPass;
33
+ }
34
+ /**
35
+ * RenderPass 信息,记录了 RenderFrame 中 RenderPass 的信息
36
+ */
37
+ export interface RenderPassInfo {
38
+ /**
39
+ * 内部包含 Mesh 中最小优先级
40
+ */
41
+ listStart: number;
42
+ /**
43
+ * 内部包含 Mesh 中最大优先级
44
+ */
45
+ listEnd: number;
46
+ /**
47
+ * 是否绑定 Framebuffer 对象
48
+ */
49
+ intermedia: boolean;
50
+ /**
51
+ * RenderPass 对象
52
+ */
53
+ renderPass: RenderPass;
54
+ /**
55
+ * 前面的 RenderPass 对象数组
56
+ */
57
+ prePasses?: {
58
+ pass: RenderPass;
59
+ destroyOptions?: RenderPassDestroyOptions | boolean;
60
+ }[];
61
+ /**
62
+ * 前一个 RenderPass 对象
63
+ */
64
+ preRenderPass?: RenderPass;
65
+ }
66
+ /**
67
+ * RenderFrame 内部保存的多 Pass 相关资源
68
+ */
69
+ export interface RenderFrameResource {
70
+ /**
71
+ * 纹理对象,用于 FrameBuffer 的颜色 Attachment
72
+ */
73
+ color_a: Texture;
74
+ /**
75
+ * 纹理对象,用于 FrameBuffer 的颜色 Attachment
76
+ */
77
+ color_b: Texture;
78
+ /**
79
+ * 拷贝 RenderPass 对象,将前 RenderPass 的渲染结果拷贝到硬件帧缓存中
80
+ */
81
+ finalCopyRP: RenderPass;
82
+ /**
83
+ * 资源 RenderPass 对象,为临时生成的 RenderPass 提供 Attachment 资源
84
+ */
85
+ resRP: RenderPass;
86
+ /**
87
+ * 深度和蒙版,为临时生成的 RenderPass 提供 Attachment 资源
88
+ */
89
+ depthStencil?: RenderPassDepthStencilAttachment;
90
+ }
91
+ /**
92
+ * RenderPass 切分时的参数
93
+ */
94
+ export interface RenderPassSplitOptions {
95
+ attachments?: RenderPassColorAttachmentOptions[];
96
+ storeAction?: RenderPassStoreAction;
97
+ prePasses?: RenderPass[];
98
+ }
99
+ export declare const RENDER_PASS_NAME_PREFIX = "_effects_default_";
100
+ /**
101
+ * 抽象 RenderFrame 选项
102
+ */
103
+ export interface RenderFrameOptions {
104
+ camera: Camera;
105
+ /**
106
+ * 编辑器整体变换,Player 开发不需要关注
107
+ */
108
+ editorTransform?: vec4;
109
+ /**
110
+ * 是否每次渲染时清除 RenderFrame 颜色缓存
111
+ */
112
+ keepColorBuffer?: boolean;
113
+ /**
114
+ * 渲染视口大小
115
+ */
116
+ viewport?: vec4;
117
+ /**
118
+ * RenderFrame 范围内共用的 Shader Uniform 变量,
119
+ * 以及多 Pass 渲染时 ColorAttachment 关联到后面的 Shader Uniform 上
120
+ */
121
+ semantics?: Record<string, UniformValue | SemanticFunc>;
122
+ /**
123
+ * 每个 RenderPass 使用前进行的 Clear 操作
124
+ */
125
+ clearAction?: RenderPassClearAction;
126
+ /**
127
+ * 后处理渲染配置
128
+ */
129
+ globalVolume?: Partial<GlobalVolume>;
130
+ /**
131
+ * 名称
132
+ */
133
+ name?: string;
134
+ renderer: Renderer;
135
+ }
136
+ export type RenderFrameDestroyOptions = {
137
+ passes?: RenderPassDestroyOptions | DestroyOptions.keep;
138
+ semantics?: DestroyOptions;
139
+ };
140
+ /**
141
+ * RenderFrame 抽象类
142
+ */
143
+ export declare class RenderFrame implements Disposable {
144
+ /**
145
+ * 当前使用的全部 RenderPass
146
+ */
147
+ _renderPasses: RenderPass[];
148
+ /**
149
+ * RenderPass 清除帧缓存操作
150
+ */
151
+ clearAction: RenderPassClearAction;
152
+ /**
153
+ * 滤镜中 RenderPass 用到的纹理缓存器
154
+ */
155
+ passTextureCache: PassTextureCache;
156
+ /**
157
+ * 渲染时的相机
158
+ */
159
+ camera: Camera;
160
+ /**
161
+ * Composition中用到的所有纹理缓存
162
+ */
163
+ cachedTextures: Texture[];
164
+ /**
165
+ * 存放后处理的属性设置
166
+ */
167
+ globalVolume: GlobalVolume;
168
+ renderer: Renderer;
169
+ resource: RenderFrameResource;
170
+ keepColorBuffer?: boolean;
171
+ editorTransform: Vector4;
172
+ /**
173
+ * 名称
174
+ */
175
+ readonly name: string;
176
+ /**
177
+ * 公用 Uniform 变量表
178
+ */
179
+ readonly semantics: SemanticMap;
180
+ readonly globalUniforms: GlobalUniforms;
181
+ /**
182
+ * 空纹理,大小1x1,白色
183
+ */
184
+ readonly emptyTexture: Texture;
185
+ /**
186
+ * 空纹理,大小1x1,透明
187
+ */
188
+ readonly transparentTexture: Texture;
189
+ protected destroyed: boolean;
190
+ protected renderPassInfoMap: WeakMap<RenderPass, RenderPassInfo>;
191
+ constructor(options: RenderFrameOptions);
192
+ get renderPasses(): RenderPass[];
193
+ get isDestroyed(): boolean;
194
+ /**
195
+ * 根据 Mesh 优先级添加到 RenderPass
196
+ * @param mesh - 要添加的 Mesh 对象
197
+ */
198
+ addMeshToDefaultRenderPass(mesh: Mesh): void;
199
+ /**
200
+ * 把 Mesh 从 RenderPass 中移除,
201
+ * 如果 renderPass 中没有 mesh,此 renderPass 会被删除
202
+ * @param mesh - 要删除的 Mesh 对象
203
+ */
204
+ removeMeshFromDefaultRenderPass(mesh: Mesh): void;
205
+ /**
206
+ * 将 Mesh 所有在 RenderPass 进行切分
207
+ * @param mesh - 目标 Mesh 对象
208
+ * @param options - 切分选项,包含 RenderPass 相关的 Attachment 等数据
209
+ */
210
+ splitDefaultRenderPassByMesh(mesh: Mesh, options: RenderPassSplitOptions): RenderPass;
211
+ /**
212
+ * 销毁 RenderFrame
213
+ * @param options - 可以有选择销毁一些对象
214
+ */
215
+ dispose(options?: RenderFrameDestroyOptions): void;
216
+ /**
217
+ * 重置 RenderPass ColorAttachment,解决 FrameBuffer 即读又写的问题
218
+ * @param renderPasses - RenderPass 对象数组
219
+ * @param startIndex - 开始重置的索引
220
+ */
221
+ resetRenderPassDefaultAttachment(renderPasses: RenderPass[], startIndex: number): void;
222
+ /**
223
+ * 查找 Mesh 所在的 RenderPass 索引,没找到是-1
224
+ * @param mesh - 需要查找的 Mesh
225
+ */
226
+ findMeshRenderPassIndex(mesh: Mesh): number;
227
+ protected addToRenderPass(renderPass: RenderPass, mesh: Mesh): void;
228
+ protected getRPAttachments(attachments: RenderPassColorAttachmentOptions[], preRP?: RenderPass): RenderPassColorAttachmentOptions[];
229
+ protected resetClearActions(): void;
230
+ protected updateRenderInfo(renderPass: RenderPass): RenderPassInfo;
231
+ /**
232
+ * 设置 RenderPass 数组,直接修改内部的 RenderPass 数组
233
+ * @param passes - RenderPass 数组
234
+ */
235
+ setRenderPasses(passes: RenderPass[]): void;
236
+ /**
237
+ * 添加 RenderPass
238
+ * @param pass - 需要添加的 RenderPass
239
+ */
240
+ addRenderPass(pass: RenderPass): void;
241
+ /**
242
+ * 创建 RenderPass 切分时需要的 GPU 资源
243
+ */
244
+ createResource(): void;
245
+ /**
246
+ * 创建拷贝 RenderPass 用到的 Mesh 对象
247
+ * @param semantics - RenderPass 渲染时 FrameBuffer 的颜色和深度纹理、大小和是否混合
248
+ */
249
+ createCopyMesh(semantics?: {
250
+ tex?: string;
251
+ size?: string;
252
+ blend?: boolean;
253
+ depthTexture?: Texture;
254
+ }): Mesh;
255
+ /**
256
+ * 移除 RenderPass
257
+ * @param pass - 需要移除的 RenderPass
258
+ */
259
+ removeRenderPass(pass: RenderPass): void;
260
+ }
261
+ export declare function getTextureSize(tex?: Texture): Vector2;
262
+ export declare function findPreviousRenderPass(renderPasses: RenderPass[], renderPass: RenderPass): RenderPass | undefined;
263
+ export declare class GlobalUniforms {
264
+ floats: Record<string, number>;
265
+ ints: Record<string, number>;
266
+ matrices: Record<string, Matrix4>;
267
+ samplers: string[];
268
+ uniforms: string[];
269
+ }