@galacean/effects-core 2.9.0-alpha.1 → 2.9.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 (51) hide show
  1. package/dist/animation/animation-events.d.ts +3 -5
  2. package/dist/components/base-render-component.d.ts +6 -1
  3. package/dist/components/component.d.ts +6 -1
  4. package/dist/components/composition-component.d.ts +2 -5
  5. package/dist/components/frame-component.d.ts +6 -1
  6. package/dist/components/mesh-component.d.ts +6 -1
  7. package/dist/components/renderer-component.d.ts +8 -1
  8. package/dist/components/shape-component.d.ts +2 -0
  9. package/dist/composition.d.ts +15 -25
  10. package/dist/effects-object.d.ts +1 -1
  11. package/dist/engine.d.ts +49 -2
  12. package/dist/index.js +3064 -1835
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +3054 -1835
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/material/index.d.ts +1 -0
  17. package/dist/material/material-state.d.ts +50 -0
  18. package/dist/material/material.d.ts +109 -285
  19. package/dist/material/types.d.ts +2 -0
  20. package/dist/math/index.d.ts +1 -0
  21. package/dist/math/shape/build-adaptive-bezier.d.ts +1 -1
  22. package/dist/math/shape/circle.d.ts +1 -1
  23. package/dist/math/shape/ellipse.d.ts +1 -1
  24. package/dist/math/shape/graphics-path.d.ts +1 -1
  25. package/dist/math/shape/poly-star.d.ts +1 -1
  26. package/dist/math/shape/polygon.d.ts +1 -1
  27. package/dist/math/shape/rectangle.d.ts +1 -1
  28. package/dist/math/shape/shape-path.d.ts +1 -1
  29. package/dist/math/shape/shape-primitive.d.ts +1 -1
  30. package/dist/math/shape/triangle.d.ts +1 -1
  31. package/dist/plugin-system.d.ts +1 -1
  32. package/dist/plugins/camera/camera-controller-node.d.ts +5 -2
  33. package/dist/plugins/interact/click-handler.d.ts +5 -0
  34. package/dist/plugins/interact/interact-item.d.ts +1 -1
  35. package/dist/plugins/particle/particle-mesh.d.ts +0 -1
  36. package/dist/plugins/particle/particle-system-renderer.d.ts +3 -3
  37. package/dist/plugins/particle/particle-system.d.ts +6 -23
  38. package/dist/plugins/particle/trail-mesh.d.ts +1 -2
  39. package/dist/plugins/plugin.d.ts +1 -1
  40. package/dist/plugins/text/text-component-base.d.ts +1 -1
  41. package/dist/plugins/text/text-item.d.ts +1 -1
  42. package/dist/plugins/text/text-layout.d.ts +7 -0
  43. package/dist/plugins/timeline/track.d.ts +1 -1
  44. package/dist/plugins/timeline/tracks/property-track.d.ts +2 -2
  45. package/dist/render/renderer.d.ts +15 -23
  46. package/dist/render/shader.d.ts +19 -0
  47. package/dist/scene-loader.d.ts +2 -0
  48. package/dist/scene.d.ts +0 -1
  49. package/dist/texture/texture.d.ts +1 -1
  50. package/dist/vfx-item.d.ts +18 -3
  51. package/package.json +2 -2
@@ -2,4 +2,5 @@ export * from './types';
2
2
  export * from './utils';
3
3
  export * from './material-data-block';
4
4
  export * from './material';
5
+ export * from './material-state';
5
6
  export * from './mask-ref-manager';
@@ -0,0 +1,50 @@
1
+ import type { Engine } from '../engine';
2
+ export declare class MaterialState {
3
+ blending: boolean;
4
+ blendFunctionParameters: [blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number];
5
+ blendEquationParameters: [blendEquationRGB: number, blendEquationAlpha: number];
6
+ blendColor: [r: number, g: number, b: number, a: number];
7
+ depthTest: boolean;
8
+ depthMask: boolean;
9
+ depthRange: [zNear: number, zFar: number];
10
+ depthFunc: number;
11
+ polygonOffset: [factor: number, units: number];
12
+ polygonOffsetFill: boolean;
13
+ sampleAlphaToCoverage: boolean;
14
+ colorMask: [r: boolean, g: boolean, b: boolean, a: boolean];
15
+ stencilTest: boolean;
16
+ stencilMask: [front: number, back: number];
17
+ stencilRef: [front: number, back: number];
18
+ stencilFunc: [front: number, back: number];
19
+ stencilOpFail: [front: number, back: number];
20
+ stencilOpZFail: [front: number, back: number];
21
+ stencilOpZPass: [front: number, back: number];
22
+ culling: boolean;
23
+ frontFace: number;
24
+ cullFace: number;
25
+ constructor();
26
+ setBlendColor(color: [r: number, g: number, b: number, a: number]): void;
27
+ setBlending(value: boolean): void;
28
+ setBlendFunctionParameters(value: [blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]): void;
29
+ setBlendEquationParameters(value: [rgb: number, alpha: number]): void;
30
+ setDepthTest(value: boolean): void;
31
+ setDepthMask(value: boolean): void;
32
+ setDepthRange(value: [zNear: number, zFar: number]): void;
33
+ setDepthFunc(value: number): void;
34
+ setPolygonOffsetFill(value: boolean): void;
35
+ setPolygonOffset(value: [factor: number, units: number]): void;
36
+ setSampleAlphaToCoverage(value: boolean): void;
37
+ setColorMask(colorMask: boolean): void;
38
+ setStencilTest(value: boolean): void;
39
+ setStencilMask(value: [front: number, back: number]): void;
40
+ setStencilRef(value: [front: number, back: number]): void;
41
+ setStencilFunc(value: [front: number, back: number]): void;
42
+ setStencilOpFail(value: [front: number, back: number]): void;
43
+ setStencilOpZFail(value: [front: number, back: number]): void;
44
+ setStencilOpZPass(value: [front: number, back: number]): void;
45
+ setCulling(value: boolean): void;
46
+ setFrontFace(value: number): void;
47
+ setCullFace(value: number): void;
48
+ reset(): void;
49
+ apply(engine: Engine): void;
50
+ }
@@ -1,10 +1,14 @@
1
- import type { Matrix3, Matrix4, Quaternion, Vector2, Vector3, Vector4, Color } from '@galacean/effects-math/es/core/index';
2
- import type { GlobalUniforms, Renderer, Shader, ShaderVariant, ShaderWithSource } from '../render';
1
+ import * as spec from '@galacean/effects-specification';
2
+ import type { Color, Matrix3, Quaternion, Vector2, Vector3 } from '@galacean/effects-math/es/core/index';
3
+ import { Vector4, Matrix4 } from '@galacean/effects-math/es/core/index';
4
+ import type { GlobalUniforms, Renderer, ShaderVariant, ShaderWithSource } from '../render';
5
+ import { Shader } from '../render/shader';
3
6
  import type { Texture } from '../texture';
4
7
  import type { DestroyOptions, Disposable } from '../utils';
5
8
  import type { UniformValue } from './types';
6
9
  import type { Engine } from '../engine';
7
10
  import { EffectsObject } from '../effects-object';
11
+ import { MaterialState } from './material-state';
8
12
  /**
9
13
  * 材质销毁设置
10
14
  */
@@ -44,9 +48,9 @@ export interface MaterialProps {
44
48
  uniformValues?: Record<string, UniformValue>;
45
49
  }
46
50
  /**
47
- * Material 抽象类
51
+ * Material
48
52
  */
49
- export declare abstract class Material extends EffectsObject implements Disposable {
53
+ export declare class Material extends EffectsObject implements Disposable {
50
54
  shaderVariant: ShaderVariant;
51
55
  shaderSource: ShaderWithSource;
52
56
  stringTags: Record<string, string>;
@@ -58,10 +62,24 @@ export declare abstract class Material extends EffectsObject implements Disposab
58
62
  protected initialized: boolean;
59
63
  protected shaderDirty: boolean;
60
64
  private _shader;
61
- /**
62
- *
63
- * @param props - 材质属性
64
- */
65
+ protected floats: Record<string, number>;
66
+ protected ints: Record<string, number>;
67
+ protected vector2s: Record<string, Vector2>;
68
+ protected vector3s: Record<string, Vector3>;
69
+ protected vector4s: Record<string, Vector4>;
70
+ protected colors: Record<string, Color>;
71
+ protected quaternions: Record<string, Quaternion>;
72
+ protected matrices: Record<string, Matrix4>;
73
+ protected matrice3s: Record<string, Matrix3>;
74
+ protected textures: Record<string, Texture>;
75
+ protected floatArrays: Record<string, number[]>;
76
+ protected vector4Arrays: Record<string, number[]>;
77
+ protected matrixArrays: Record<string, number[]>;
78
+ protected samplers: string[];
79
+ protected uniforms: string[];
80
+ protected uniformDirty: boolean;
81
+ protected macrosDirty: boolean;
82
+ protected materialState: MaterialState;
65
83
  constructor(engine: Engine, props?: MaterialProps);
66
84
  get shader(): Shader;
67
85
  set shader(value: Shader);
@@ -75,294 +93,100 @@ export declare abstract class Material extends EffectsObject implements Disposab
75
93
  */
76
94
  get color(): Color;
77
95
  set color(value: Color);
78
- /******** effects-core 中会调用 引擎必须实现 ***********************/
79
- /**
80
- * 设置 Material 的颜色融合开关
81
- * @param blending - 是否开启混合效果
82
- */
96
+ /*** 渲染状态 getter/setter ***/
97
+ get blending(): UndefinedAble<boolean>;
83
98
  set blending(blending: UndefinedAble<boolean>);
84
- /**
85
- * 分别指定 Material 的颜色混合函数乘数
86
- * @param func - 混合函数参数
87
- */
99
+ get blendColor(): UndefinedAble<[r: number, g: number, b: number, a: number]>;
100
+ set blendColor(color: UndefinedAble<[r: number, g: number, b: number, a: number]>);
101
+ get blendFunction(): UndefinedAble<[blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]>;
88
102
  set blendFunction(func: UndefinedAble<[blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]>);
89
- /**
90
- * 分别指定 Material 的颜色混合方式
91
- * @param equation - 混合方程参数
92
- */
103
+ get blendEquation(): UndefinedAble<[rgb: number, alpha: number]>;
93
104
  set blendEquation(equation: UndefinedAble<[rgb: number, alpha: number]>);
94
- /**
95
- * 设置 Material 的深度测试开关
96
- * @param value - 是否开启深度测试
97
- */
105
+ get depthTest(): UndefinedAble<boolean>;
98
106
  set depthTest(value: UndefinedAble<boolean>);
99
- /**
100
- * 设置 Material 的写入深度缓冲开关
101
- * @param value - 是否开启深度写入
102
- */
107
+ get depthMask(): UndefinedAble<boolean>;
103
108
  set depthMask(value: UndefinedAble<boolean>);
104
- /**
105
- * 设置 Material 的模板测试开关
106
- * @param value - 是否开启模板测试
107
- */
109
+ get depthRange(): UndefinedAble<[number, number]>;
110
+ set depthRange(value: UndefinedAble<[number, number]>);
111
+ get depthFunc(): UndefinedAble<number>;
112
+ set depthFunc(value: UndefinedAble<number>);
113
+ get polygonOffsetFill(): UndefinedAble<boolean>;
114
+ set polygonOffsetFill(value: UndefinedAble<boolean>);
115
+ get polygonOffset(): UndefinedAble<[number, number]>;
116
+ set polygonOffset(value: UndefinedAble<[number, number]>);
117
+ get sampleAlphaToCoverage(): UndefinedAble<boolean>;
118
+ set sampleAlphaToCoverage(value: UndefinedAble<boolean>);
119
+ get colorMask(): boolean;
120
+ set colorMask(value: boolean);
121
+ get stencilTest(): UndefinedAble<boolean>;
108
122
  set stencilTest(value: UndefinedAble<boolean>);
109
- /**
110
- * 分别指定 Material 的模板测试参考值
111
- * @param value - 模板测试参考值参数
112
- */
113
- set stencilRef(value: UndefinedAble<[front: number, back: number]>);
114
- /**
115
- * 分别指定 Material 的模板测试函数
116
- * @param value - 模板测试函数参数
117
- */
118
- set stencilFunc(value: UndefinedAble<[front: number, back: number]>);
119
- /**
120
- * 分别指定 Material 的模板测试和深度测试都通过时使用的函数
121
- * @param value - 模板测试深度测试通过时的操作参数
122
- */
123
- set stencilOpZPass(value: UndefinedAble<[front: number, back: number]>);
124
- /**
125
- * 设置 Material 的正反面剔除开关
126
- * @param value - 是否开启剔除
127
- */
123
+ get stencilMask(): UndefinedAble<[number, number]>;
124
+ set stencilMask(value: UndefinedAble<[number, number]>);
125
+ get stencilRef(): UndefinedAble<[number, number]>;
126
+ set stencilRef(value: UndefinedAble<[number, number]>);
127
+ get stencilFunc(): UndefinedAble<[number, number]>;
128
+ set stencilFunc(value: UndefinedAble<[number, number]>);
129
+ get stencilOpFail(): UndefinedAble<[number, number]>;
130
+ set stencilOpFail(value: UndefinedAble<[number, number]>);
131
+ get stencilOpZFail(): UndefinedAble<[number, number]>;
132
+ set stencilOpZFail(value: UndefinedAble<[number, number]>);
133
+ get stencilOpZPass(): UndefinedAble<[number, number]>;
134
+ set stencilOpZPass(value: UndefinedAble<[number, number]>);
135
+ get culling(): UndefinedAble<boolean>;
128
136
  set culling(value: UndefinedAble<boolean>);
129
- /**
130
- * 设置 Material 的正反面计算方向
131
- * @param value
132
- */
137
+ get frontFace(): UndefinedAble<number>;
133
138
  set frontFace(value: UndefinedAble<number>);
134
- /**
135
- * 设置 Material 要剔除的面
136
- * @param value - 剔除面参数
137
- */
139
+ get cullFace(): UndefinedAble<number>;
138
140
  set cullFace(value: UndefinedAble<number>);
139
- /***************************************************/
140
- /******** effects-core 中暂无调用 引擎可以先不实现 ***********************/
141
- /**
142
- * 设置 Material 的源和目标混合因子
143
- * @param color
144
- */
145
- set blendColor(color: UndefinedAble<[r: number, g: number, b: number, a: number]>);
146
- /**
147
- * 设置 Material 的深度映射范围
148
- * @param value
149
- */
150
- set depthRange(value: UndefinedAble<[zNear: number, zFar: number]>);
151
- /**
152
- * 设置 Material 的深度比较函数
153
- * @param value - 深度测试函数参数
154
- */
155
- set depthFunc(value: UndefinedAble<number>);
156
- /**
157
- * 设置 Material 的多边形偏移(实现类似深度偏移的效果)
158
- * @param value - 多边形偏移参数
159
- */
160
- set polygonOffsetFill(value: UndefinedAble<boolean>);
161
- /**
162
- * 指定 Material 计算深度值的比例因子 factor 和单位 units
163
- * @param value
164
- */
165
- set polygonOffset(value: UndefinedAble<[factor: number, units: number]>);
166
- /**
167
- * 设置 Material 的通过 alpha 值决定临时覆盖值计算的开关
168
- * @param value - 是否开启 alpha 抖动
169
- */
170
- set sampleAlphaToCoverage(value: UndefinedAble<boolean>);
171
- /**
172
- * 设置 Material 颜色缓冲区的写入开关
173
- * @param value
174
- */
175
- abstract set colorMask(value: boolean);
176
- /**
177
- * 获取 Material 颜色缓冲区的写入开关
178
- * @param value
179
- */
180
- abstract get colorMask(): boolean;
181
- /**
182
- * 分别指定 Material 的模板测试掩码
183
- * @param value - 模板测试写入掩码参数
184
- */
185
- set stencilMask(value: UndefinedAble<[front: number, back: number]>);
186
- /**
187
- * 分别指定 Material 模板测试失败时要使用的函数
188
- * @param value - 模板测试失败时的操作参数
189
- */
190
- set stencilOpFail(value: UndefinedAble<[front: number, back: number]>);
191
- /**
192
- * 分别指定 Material 模板测试通过但深度测试失败时要使用的函数
193
- * @param value - 模板测试深度测试失败时的操作参数
194
- */
195
- set stencilOpZFail(value: UndefinedAble<[front: number, back: number]>);
196
- /***************************************************/
197
- /**
198
- * 获取 Material 的 float 类型的 uniform 数据
199
- * @param name
200
- */
201
- abstract getFloat(name: string): number | null;
202
- /**
203
- * 设置 float 类型的 uniform 数据
204
- * @param name - uniform 名称
205
- * @param value - 要设置的 uniform 数据
206
- */
207
- abstract setFloat(name: string, value: number): void;
208
- /**
209
- * 获取 Material 的 float 类型的 uniform 数据
210
- * @param name
211
- */
212
- abstract getInt(name: string): number | null;
213
- /**
214
- * 设置 int 类型的 uniform 的数据
215
- * @param name - uniform 名称
216
- * @param value - 要设置的 uniform 数据
217
- */
218
- abstract setInt(name: string, value: number): void;
219
- /**
220
- * 获取 Material 的 float 数组类型的 uniform 数据
221
- * @param name
222
- */
223
- abstract getFloats(name: string): number[] | null;
224
- /**
225
- * 设置 float 数组类型的 uniform 的数据
226
- * @param name - uniform 名称
227
- * @param value - 要设置的 uniform 数据
228
- */
229
- abstract setFloats(name: string, value: number[]): void;
230
- /**
231
- * 获取 Material 的 vec2 类型的 uniform 数据
232
- * @param name
233
- */
234
- abstract getVector2(name: string): Vector2 | null;
235
- /**
236
- * 设置 vec2 类型的 uniform 的数据
237
- * @param name - uniform 名称
238
- * @param value - 要设置的 uniform 数据
239
- */
240
- abstract setVector2(name: string, value: Vector2): void;
241
- /**
242
- * 获取 Material 的 vec3 类型的 uniform 数据
243
- * @param name
244
- */
245
- abstract getVector3(name: string): Vector3 | null;
246
- /**
247
- * 设置 vec3 类型的 uniform 的数据
248
- * @param name - uniform 名称
249
- * @param value - 要设置的 uniform 数据
250
- */
251
- abstract setVector3(name: string, value: Vector3): void;
252
- /**
253
- * 获取 Material 的 vec4 类型的 uniform 数据
254
- * @param name
255
- */
256
- abstract getVector4(name: string): Vector4 | null;
257
- /**
258
- * 设置 vec4 类型的 uniform 的数据
259
- * @param name - uniform 名称
260
- * @param value - 要设置的 uniform 数据
261
- */
262
- abstract setVector4(name: string, value: Vector4): void;
263
- /**
264
- * 获取 Material 的 Color 类型的 uniform 数据
265
- * @param name
266
- */
267
- abstract getColor(name: string): Color | null;
268
- /**
269
- * 设置 Color 类型的 uniform 的数据
270
- * @param name - uniform 名称
271
- * @param value - 要设置的 uniform 数据
272
- */
273
- abstract setColor(name: string, value: Color): void;
274
- /**
275
- * 获取 Material 的 Quaternion 类型的 uniform 数据
276
- * @param name
277
- */
278
- abstract getQuaternion(name: string): Quaternion | null;
279
- /**
280
- * 设置 Quaternion 类型的 uniform 的数据
281
- * @param name - uniform 名称
282
- * @param value - 要设置的 uniform 数据
283
- */
284
- abstract setQuaternion(name: string, value: Quaternion): void;
285
- /**
286
- * 获取 Material 的 vec4 数组类型的 uniform 数据
287
- * @param name
288
- */
289
- abstract getVector4Array(name: string): number[];
290
- /**
291
- * 设置 vec4 数组类型的 uniform 的数据
292
- * @param name - uniform 名称
293
- * @param value - 要设置的 uniform 数据
294
- */
295
- abstract setVector4Array(name: string, value: Vector4[]): void;
296
- /**
297
- * 获取 Material 的 mat4 类型的 uniform 数据
298
- * @param name
299
- */
300
- abstract getMatrix(name: string): Matrix4 | null;
301
- /**
302
- * 设置 mat4 类型的 uniform 的数据
303
- * @param name - uniform 名称
304
- * @param value - 要设置的 uniform 数据
305
- */
306
- abstract setMatrix(name: string, value: Matrix4): void;
307
- /**
308
- * 设置 mat3 类型的 uniform 的数据
309
- * @param name - uniform 名称
310
- * @param value - 要设置的 uniform 数据
311
- */
312
- abstract setMatrix3(name: string, value: Matrix3): void;
313
- /**
314
- * 获取 Material 的 mat4 数组类型的 uniform 数据
315
- * @param name
316
- */
317
- abstract getMatrixArray(name: string): number[] | null;
318
- /**
319
- * 设置 mat 数组类型的 uniform 的数据
320
- * @param name - uniform 名称
321
- * @param array - 要设置的 uniform 数据
322
- */
323
- abstract setMatrixArray(name: string, array: Matrix4[]): void;
324
- /**
325
- * 设置 mat 数组类型的 uniform 的数据,传入 number 数组
326
- * @param name - uniform 名称
327
- * @param array - 要设置的 uniform 数据,number 类型数组
328
- */
329
- abstract setMatrixNumberArray(name: string, array: number[]): void;
330
- /**
331
- * 获取 Material 的 sampler2D 类型的 uniform 数据
332
- * @param name
333
- */
334
- abstract getTexture(name: string): Texture | null;
335
- /**
336
- * 设置 sampler2D 类型的 uniform 的数据
337
- * @param name - uniform 名称
338
- * @param texture - 要设置的 uniform 数据
339
- */
340
- abstract setTexture(name: string, texture: Texture): void;
341
- /**
342
- * 获取 Material 的 float 类型的 uniform 数据
343
- * @param name
344
- */
345
- abstract hasUniform(name: string): boolean;
346
- /******** 预留接口,暂时不用实现 ***********************/
347
- abstract enableMacro(keyword: string, value?: boolean | number): void;
348
- abstract disableMacro(keyword: string): void;
349
- abstract isMacroEnabled(keyword: string): boolean;
350
- /***************************************************/
351
- /**
352
- * Material 的克隆方法(不接入滤镜,本方法可以不做实现)
353
- * @param props 新的材质属性
354
- */
355
- abstract clone(props?: MaterialProps): Material;
356
- abstract cloneUniforms(sourceMaterial: Material): void;
141
+ /*** Macro 管理 ***/
142
+ enableMacro(keyword: string, value?: boolean | number): void;
143
+ disableMacro(keyword: string): void;
144
+ isMacroEnabled(keyword: string): boolean;
145
+ get isDestroyed(): boolean;
146
+ /*** GPU 资源初始化 ***/
147
+ initialize(): void;
148
+ createShaderVariant(): void;
149
+ setupStates(engine: Engine): void;
150
+ use(renderer: Renderer, globalUniforms?: GlobalUniforms): void;
151
+ /*** Uniform get/set 方法 ***/
152
+ getFloat(name: string): number | null;
153
+ setFloat(name: string, value: number): void;
154
+ getInt(name: string): number | null;
155
+ setInt(name: string, value: number): void;
156
+ getFloats(name: string): number[] | null;
157
+ setFloats(name: string, value: number[]): void;
158
+ getVector2(name: string): Vector2 | null;
159
+ setVector2(name: string, value: Vector2): void;
160
+ getVector3(name: string): Vector3 | null;
161
+ setVector3(name: string, value: Vector3): void;
162
+ getVector4(name: string): Vector4 | null;
163
+ setVector4(name: string, value: Vector4): void;
164
+ getColor(name: string): Color | null;
165
+ setColor(name: string, value: Color): void;
166
+ getQuaternion(name: string): Quaternion | null;
167
+ setQuaternion(name: string, value: Quaternion): void;
168
+ getMatrix(name: string): Matrix4 | null;
169
+ setMatrix(name: string, value: Matrix4): void;
170
+ setMatrix3(name: string, value: Matrix3): void;
171
+ getVector4Array(name: string): number[];
172
+ setVector4Array(name: string, array: Vector4[]): void;
173
+ getMatrixArray(name: string): number[] | null;
174
+ setMatrixArray(name: string, array: Matrix4[]): void;
175
+ setMatrixNumberArray(name: string, array: number[]): void;
176
+ getTexture(name: string): Texture | null;
177
+ setTexture(name: string, texture: Texture): void;
178
+ hasUniform(name: string): boolean;
179
+ /*** 克隆 ***/
180
+ clone(props?: MaterialProps): Material;
181
+ cloneUniforms(sourceMaterial: Material): void;
182
+ /*** 序列化 ***/
183
+ fromData(data: spec.MaterialData): void;
184
+ toData(): spec.MaterialData;
357
185
  /**
358
186
  * 创建 Material
359
187
  */
360
188
  static create: (engine: Engine, props?: MaterialProps) => Material;
361
- /**
362
- * 初始化 GPU 资源
363
- * @override
364
- */
365
- initialize(): void;
366
- createShaderVariant(): void;
367
- use(render: Renderer, globalUniforms: GlobalUniforms): void;
189
+ /*** 内部方法 ***/
190
+ private checkUniform;
191
+ dispose(): void;
368
192
  }
@@ -2,6 +2,7 @@ import type * as spec from '@galacean/effects-specification';
2
2
  import type { Matrix3, Matrix4, Vector2, Vector3, Vector4 } from '@galacean/effects-math/es/core/index';
3
3
  import type { Texture } from '../texture';
4
4
  import type { DestroyOptions } from '../utils';
5
+ import type { VFXItem } from '../vfx-item';
5
6
  export type UniformSemantic = 'VIEW' | 'MODEL' | 'MODELVIEW' | 'PROJECTION' | 'VIEWPROJECTION' | 'VIEWINVERSE' | 'EDITOR_TRANSFORM' | 'MODELVIEWPROJECTION';
6
7
  export interface MaterialBlendingStates {
7
8
  blending?: boolean;
@@ -63,6 +64,7 @@ export declare enum ShaderType {
63
64
  *
64
65
  */
65
66
  export interface Maskable {
67
+ item: VFXItem;
66
68
  drawStencilMask(maskRef: number): void;
67
69
  }
68
70
  /**
@@ -8,3 +8,4 @@ export * from './shape/ellipse';
8
8
  export * from './shape/poly-star';
9
9
  export * from './shape/polygon';
10
10
  export * from './shape/shape-path';
11
+ export * from './bezier';
@@ -1 +1 @@
1
- export declare function buildAdaptiveBezier(points: number[], sX: number, sY: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, eX: number, eY: number, smoothness?: number): number[];
1
+ export declare function buildAdaptiveBezier(points: number[], sX: number, sY: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, eX: number, eY: number, smoothness?: number, scale?: number): number[];
@@ -191,6 +191,6 @@ export declare class Circle extends ShapePrimitive {
191
191
  * @see {@link Circle.clone} For creating new circle copy
192
192
  */
193
193
  copyTo(circle: Circle): Circle;
194
- build(points: number[]): void;
194
+ build(points: number[], screenScale?: number): void;
195
195
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
196
196
  }
@@ -74,6 +74,6 @@ export declare class Ellipse extends ShapePrimitive {
74
74
  copyTo(ellipse: Ellipse): Ellipse;
75
75
  getX(): number;
76
76
  getY(): number;
77
- build(points: number[]): number[];
77
+ build(points: number[], screenScale?: number): number[];
78
78
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
79
79
  }
@@ -23,7 +23,7 @@ export declare class GraphicsPath {
23
23
  * @param smoothness - Optional parameter to adjust the smoothness of the curve.
24
24
  * @returns The instance of the current object for chaining.
25
25
  */
26
- bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number): GraphicsPath;
26
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number, scale?: number): GraphicsPath;
27
27
  /**
28
28
  * Connects the current point to a new point with a straight line. This method updates the current path.
29
29
  * @param x - The x-coordinate of the new point to connect to.
@@ -35,7 +35,7 @@ export declare class PolyStar extends ShapePrimitive {
35
35
  clone(): ShapePrimitive;
36
36
  copyFrom(source: PolyStar): void;
37
37
  copyTo(destination: PolyStar): void;
38
- build(points: number[]): void;
38
+ build(points: number[], screenScale?: number): void;
39
39
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
40
40
  private buildStarPath;
41
41
  private buildPolygonPath;
@@ -58,7 +58,7 @@ export declare class Polygon extends ShapePrimitive {
58
58
  * @readonly
59
59
  */
60
60
  getY(): number;
61
- build(points: number[]): void;
61
+ build(points: number[], screenScale?: number): void;
62
62
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
63
63
  /**
64
64
  * 获取直线上最远的两个端点坐标组成的三角形
@@ -57,6 +57,6 @@ export declare class Rectangle extends ShapePrimitive {
57
57
  * @returns Returns given parameter.
58
58
  */
59
59
  copyTo(rectangle: Rectangle): Rectangle;
60
- build(points: number[]): void;
60
+ build(points: number[], screenScale?: number): void;
61
61
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
62
62
  }
@@ -26,7 +26,7 @@ export declare class ShapePath {
26
26
  * @param smoothness - Optional parameter to adjust the smoothness of the curve.
27
27
  * @returns The instance of the current object for chaining.
28
28
  */
29
- bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number): ShapePath;
29
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number, scale?: number): ShapePath;
30
30
  moveTo(x: number, y: number): ShapePath;
31
31
  /**
32
32
  * Connects the current point to a new point with a straight line. This method updates the current path.
@@ -10,6 +10,6 @@ export declare abstract class ShapePrimitive {
10
10
  /** Returns the framing rectangle of the ShapePrimitive as a Rectangle object. */
11
11
  /** The X coordinate of the shape */
12
12
  /** The Y coordinate of the shape */
13
- abstract build(points: number[]): void;
13
+ abstract build(points: number[], screenScale?: number): void;
14
14
  abstract triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
15
15
  }
@@ -84,6 +84,6 @@ export declare class Triangle extends ShapePrimitive {
84
84
  getBounds(out?: Rectangle): Rectangle;
85
85
  getX(): number;
86
86
  getY(): number;
87
- build(points: number[]): void;
87
+ build(points: number[], screenScale?: number): void;
88
88
  triangulate(points: number[], vertices: number[], verticesOffset: number, indices: number[], indicesOffset: number): void;
89
89
  }
@@ -17,7 +17,7 @@ export declare function registerPlugin(name: string, pluginClass: PluginConstruc
17
17
  export declare function unregisterPlugin(name: string): void;
18
18
  export declare class PluginSystem {
19
19
  static getPlugins(): Plugin[];
20
- static initializeComposition(composition: Composition, scene: Scene): void;
20
+ static initializeComposition(composition: Composition, scene?: Scene): void;
21
21
  static destroyComposition(comp: Composition): void;
22
22
  static onAssetsLoadStart(scene: Scene, options?: SceneLoadOptions): Promise<void[]>;
23
23
  static onAssetsLoadFinish(scene: Scene, options: SceneLoadOptions, engine: Engine): void;
@@ -1,9 +1,12 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
2
  import { Component } from '../../components';
3
3
  import type { Engine } from '../../engine';
4
+ interface CameraControllerData extends spec.ComponentData, spec.CameraContent {
5
+ }
4
6
  export declare class CameraController extends Component {
5
7
  private options;
6
- constructor(engine: Engine, props?: spec.CameraContent);
8
+ constructor(engine: Engine, props?: CameraControllerData);
7
9
  onUpdate(): void;
8
- fromData(data: spec.CameraContent): void;
10
+ fromData(data: CameraControllerData): void;
9
11
  }
12
+ export {};