@galacean/effects-core 2.1.0-alpha.6 → 2.1.0-alpha.8

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 (83) hide show
  1. package/dist/animation/color-playable.d.ts +26 -0
  2. package/dist/animation/index.d.ts +1 -0
  3. package/dist/asset-manager.d.ts +8 -1
  4. package/dist/asset.d.ts +4 -0
  5. package/dist/comp-vfx-item.d.ts +2 -5
  6. package/dist/components/base-render-component.d.ts +99 -0
  7. package/dist/components/index.d.ts +1 -0
  8. package/dist/components/post-process-volume.d.ts +2 -3
  9. package/dist/components/shape-component.d.ts +40 -6
  10. package/dist/composition/scene-ticking.d.ts +1 -1
  11. package/dist/composition-source-manager.d.ts +4 -5
  12. package/dist/composition.d.ts +7 -8
  13. package/dist/downloader.d.ts +0 -3
  14. package/dist/index.d.ts +3 -1
  15. package/dist/index.js +19192 -18276
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +19187 -18275
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/math/index.d.ts +1 -1
  20. package/dist/math/translate.d.ts +1 -1
  21. package/dist/math/value-getters/color-curve.d.ts +12 -0
  22. package/dist/math/value-getters/index.d.ts +4 -0
  23. package/dist/math/value-getters/value-getter-map.d.ts +2 -0
  24. package/dist/math/{value-getter.d.ts → value-getters/value-getter.d.ts} +3 -4
  25. package/dist/math/value-getters/vector4-curve.d.ts +12 -0
  26. package/dist/plugin-system.d.ts +7 -5
  27. package/dist/plugins/cal/calculate-item.d.ts +5 -3
  28. package/dist/plugins/cal/calculate-loader.d.ts +1 -1
  29. package/dist/plugins/cal/calculate-vfx-item.d.ts +1 -1
  30. package/dist/plugins/cal/playable-graph.d.ts +1 -1
  31. package/dist/plugins/camera/camera-vfx-item-loader.d.ts +1 -1
  32. package/dist/plugins/index.d.ts +1 -7
  33. package/dist/plugins/interact/interact-item.d.ts +11 -0
  34. package/dist/plugins/interact/interact-loader.d.ts +1 -1
  35. package/dist/plugins/particle/particle-system.d.ts +1 -2
  36. package/dist/plugins/plugin.d.ts +14 -3
  37. package/dist/plugins/shape/ellipse.d.ts +79 -0
  38. package/dist/plugins/shape/graphics-path.d.ts +28 -0
  39. package/dist/plugins/shape/point-like.d.ts +31 -0
  40. package/dist/plugins/shape/point.d.ts +58 -0
  41. package/dist/plugins/shape/polygon.d.ts +12 -5
  42. package/dist/plugins/shape/rectangle.d.ts +129 -0
  43. package/dist/plugins/shape/shape-path.d.ts +25 -3
  44. package/dist/plugins/shape/shape-primitive.d.ts +18 -0
  45. package/dist/plugins/shape/triangle.d.ts +89 -0
  46. package/dist/plugins/sprite/sprite-item.d.ts +17 -111
  47. package/dist/plugins/sprite/sprite-loader.d.ts +1 -1
  48. package/dist/plugins/sprite/sprite-mesh.d.ts +3 -4
  49. package/dist/plugins/text/text-item.d.ts +15 -5
  50. package/dist/plugins/timeline/index.d.ts +3 -0
  51. package/dist/plugins/timeline/playable-assets/color-property-playable-asset.d.ts +7 -0
  52. package/dist/plugins/timeline/playable-assets/float-property-playable-asset.d.ts +7 -0
  53. package/dist/plugins/timeline/playable-assets/index.d.ts +3 -0
  54. package/dist/plugins/{cal → timeline/playable-assets}/timeline-asset.d.ts +7 -4
  55. package/dist/plugins/timeline/playable-assets/vector4-property-playable-asset.d.ts +7 -0
  56. package/dist/plugins/timeline/playables/color-property-mixer-playable.d.ts +6 -0
  57. package/dist/plugins/timeline/playables/float-property-mixer-playable.d.ts +6 -0
  58. package/dist/plugins/timeline/playables/index.d.ts +7 -0
  59. package/dist/plugins/timeline/playables/property-clip-playable.d.ts +8 -0
  60. package/dist/plugins/timeline/playables/vector4-property-mixer-playable.d.ts +6 -0
  61. package/dist/plugins/timeline/track-instance.d.ts +14 -0
  62. package/dist/plugins/timeline/track.d.ts +4 -2
  63. package/dist/plugins/timeline/tracks/color-property-track.d.ts +5 -0
  64. package/dist/plugins/timeline/tracks/float-property-track.d.ts +6 -0
  65. package/dist/plugins/timeline/tracks/index.d.ts +9 -0
  66. package/dist/plugins/timeline/tracks/material-track.d.ts +5 -0
  67. package/dist/plugins/timeline/tracks/property-track.d.ts +8 -0
  68. package/dist/plugins/timeline/tracks/sub-composition-track.d.ts +1 -1
  69. package/dist/plugins/timeline/tracks/vector4-property-track.d.ts +5 -0
  70. package/dist/render/index.d.ts +0 -1
  71. package/dist/render/mesh.d.ts +1 -1
  72. package/dist/render/render-frame.d.ts +5 -1
  73. package/dist/render/renderer.d.ts +1 -1
  74. package/dist/render/semantic-map.d.ts +1 -1
  75. package/dist/serialization-helper.d.ts +3 -3
  76. package/dist/texture/texture.d.ts +9 -0
  77. package/dist/utils/color.d.ts +4 -5
  78. package/dist/utils/index.d.ts +1 -1
  79. package/dist/vfx-item.d.ts +0 -9
  80. package/package.json +2 -2
  81. package/dist/image-asset.d.ts +0 -5
  82. package/dist/render/global-volume.d.ts +0 -17
  83. /package/dist/plugins/timeline/{playables → playable-assets}/sub-composition-playable-asset.d.ts +0 -0
@@ -0,0 +1,26 @@
1
+ import * as spec from '@galacean/effects-specification';
2
+ import { type ValueGetter } from '../math';
3
+ import type { FrameContext } from '../plugins/cal/playable-graph';
4
+ import { Playable } from '../plugins/cal/playable-graph';
5
+ import { VFXItem } from '../vfx-item';
6
+ import type { Material } from '../material';
7
+ import type { ColorStop } from '../utils';
8
+ import { BaseRenderComponent } from '../components';
9
+ export interface ColorPlayableAssetData extends spec.EffectsObjectData {
10
+ colorOverLifetime?: spec.ColorOverLifetime;
11
+ }
12
+ export declare class ColorPlayable extends Playable {
13
+ clipData: {
14
+ colorOverLifetime?: spec.ColorOverLifetime;
15
+ startColor?: spec.RGBAColorValue;
16
+ };
17
+ colorOverLifetime: ColorStop[];
18
+ opacityOverLifetime: ValueGetter<number>;
19
+ startColor: spec.RGBAColorValue;
20
+ renderColor: spec.vec4;
21
+ activeComponent?: BaseRenderComponent;
22
+ activeMaterial?: Material;
23
+ processFrame(context: FrameContext): void;
24
+ create(clipData: ColorPlayableAssetData): this;
25
+ getActiveComponent(boundObject: VFXItem): BaseRenderComponent;
26
+ }
@@ -0,0 +1 @@
1
+ export * from './color-playable';
@@ -18,10 +18,14 @@ export declare class AssetManager implements Disposable {
18
18
  * 图像资源,用于创建和释放 GPU 纹理资源
19
19
  */
20
20
  private assets;
21
+ /**
22
+ * TextureSource 来源
23
+ */
24
+ private sourceFrom;
21
25
  /**
22
26
  * 自定义文本缓存,随页面销毁而销毁
23
27
  */
24
- static fonts: Set<string>;
28
+ private static fontCache;
25
29
  private id;
26
30
  /**
27
31
  * 加载超时时间
@@ -54,9 +58,12 @@ export declare class AssetManager implements Disposable {
54
58
  private processBins;
55
59
  private processFontURL;
56
60
  private processImages;
61
+ private processPluginAssets;
62
+ private prepareAssets;
57
63
  private processTextures;
58
64
  private loadJSON;
59
65
  private loadBins;
66
+ private assignImagesToAssets;
60
67
  private removeTimer;
61
68
  /**
62
69
  * 销毁方法
@@ -0,0 +1,4 @@
1
+ import { EffectsObject } from './effects-object';
2
+ export declare class Asset<T> extends EffectsObject {
3
+ data: T;
4
+ }
@@ -2,7 +2,6 @@ import type { Ray } from '@galacean/effects-math/es/core/ray';
2
2
  import * as spec from '@galacean/effects-specification';
3
3
  import { Behaviour } from './components';
4
4
  import type { CompositionHitTestOptions } from './composition';
5
- import type { ContentOptions } from './composition-source-manager';
6
5
  import type { Region, TrackAsset } from './plugins';
7
6
  import { VFXItem } from './vfx-item';
8
7
  export interface SceneBinding {
@@ -19,9 +18,7 @@ export interface SceneBindingData {
19
18
  export declare class CompositionComponent extends Behaviour {
20
19
  time: number;
21
20
  startTime: number;
22
- refId: string;
23
21
  items: VFXItem[];
24
- data: ContentOptions;
25
22
  private reusable;
26
23
  private sceneBindings;
27
24
  private timelineAsset;
@@ -36,7 +33,7 @@ export declare class CompositionComponent extends Behaviour {
36
33
  hideItems(): void;
37
34
  onDestroy(): void;
38
35
  hitTest(ray: Ray, x: number, y: number, regions: Region[], force?: boolean, options?: CompositionHitTestOptions): Region[];
39
- fromData(data: unknown): void;
36
+ fromData(data: any): void;
40
37
  private resolveBindings;
41
- private resolveTrackBindingsWithRoot;
38
+ private updateTrackAnimatedObject;
42
39
  }
@@ -0,0 +1,99 @@
1
+ import * as spec from '@galacean/effects-specification';
2
+ import { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
3
+ import { RendererComponent } from './renderer-component';
4
+ import type { Texture } from '../texture';
5
+ import type { GeometryDrawMode, Renderer } from '../render';
6
+ import { Geometry } from '../render';
7
+ import type { Engine } from '../engine';
8
+ import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
9
+ import { Material } from '../material';
10
+ /**
11
+ * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
12
+ */
13
+ export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin'>> {
14
+ order: number;
15
+ mask: number;
16
+ texture: Texture;
17
+ anchor?: spec.vec2;
18
+ particleOrigin?: spec.ParticleOrigin;
19
+ }
20
+ /**
21
+ * 图层的渲染属性,用于 Mesh 的合并判断
22
+ */
23
+ export interface ItemRenderInfo {
24
+ side: number;
25
+ occlusion: boolean;
26
+ blending: number;
27
+ cachePrefix: string;
28
+ mask: number;
29
+ maskMode: number;
30
+ cacheId: string;
31
+ wireframe?: boolean;
32
+ }
33
+ export declare class BaseRenderComponent extends RendererComponent {
34
+ interaction?: {
35
+ behavior: spec.InteractBehavior;
36
+ };
37
+ cachePrefix: string;
38
+ geoData: {
39
+ atlasOffset: number[] | spec.TypedArray;
40
+ index: number[] | spec.TypedArray;
41
+ };
42
+ anchor?: spec.vec2;
43
+ renderer: ItemRenderer;
44
+ emptyTexture: Texture;
45
+ color: spec.vec4;
46
+ worldMatrix: Matrix4;
47
+ geometry: Geometry;
48
+ protected renderInfo: ItemRenderInfo;
49
+ protected readonly wireframe?: boolean;
50
+ protected preMultiAlpha: number;
51
+ protected visible: boolean;
52
+ protected isManualTimeSet: boolean;
53
+ protected frameAnimationTime: number;
54
+ constructor(engine: Engine);
55
+ /**
56
+ * 设置当前 Mesh 的可见性。
57
+ * @param visible - true:可见,false:不可见
58
+ */
59
+ setVisible(visible: boolean): void;
60
+ /**
61
+ * 获取当前 Mesh 的可见性。
62
+ */
63
+ getVisible(): boolean;
64
+ /**
65
+ * 设置当前图层的颜色
66
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
67
+ * @since 2.0.0
68
+ * @param color - 颜色值
69
+ */
70
+ setColor(color: spec.vec4): void;
71
+ /**
72
+ * 设置当前 Mesh 的纹理
73
+ * @since 2.0.0
74
+ * @param texture - 纹理对象
75
+ */
76
+ setTexture(texture: Texture): void;
77
+ render(renderer: Renderer): void;
78
+ onStart(): void;
79
+ onDestroy(): void;
80
+ protected getItemInitData(): {
81
+ atlasOffset: spec.TypedArray | number[];
82
+ index: number[];
83
+ };
84
+ protected setItem(): void;
85
+ protected getItemGeometryData(): {
86
+ index: number[];
87
+ atlasOffset: number[];
88
+ };
89
+ protected createGeometry(mode: GeometryDrawMode): Geometry;
90
+ protected createMaterial(renderInfo: ItemRenderInfo, count: number): Material;
91
+ getTextures(): Texture[];
92
+ /**
93
+ * 获取图层包围盒的类型和世界坐标
94
+ * @returns
95
+ */
96
+ getBoundingBox(): BoundingBoxTriangle | void;
97
+ getHitTestParams: (force?: boolean) => HitTestTriangleParams | undefined;
98
+ }
99
+ export declare function getImageItemRenderInfo(item: BaseRenderComponent): ItemRenderInfo;
@@ -2,4 +2,5 @@ export * from './renderer-component';
2
2
  export * from './component';
3
3
  export * from './effect-component';
4
4
  export * from './post-process-volume';
5
+ export * from './base-render-component';
5
6
  export * from './shape-component';
@@ -1,7 +1,6 @@
1
1
  import { Behaviour } from './component';
2
2
  export declare class PostProcessVolume extends Behaviour {
3
- useHDR: boolean;
4
- useBloom: boolean;
3
+ bloomEnabled: boolean;
5
4
  threshold: number;
6
5
  bloomIntensity: number;
7
6
  brightness: number;
@@ -10,6 +9,6 @@ export declare class PostProcessVolume extends Behaviour {
10
9
  vignetteIntensity: number;
11
10
  vignetteSmoothness: number;
12
11
  vignetteRoundness: number;
13
- useToneMapping: boolean;
12
+ toneMappingEnabled: boolean;
14
13
  onStart(): void;
15
14
  }
@@ -1,7 +1,5 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
2
  import type { Engine } from '../engine';
3
- import { GraphicsPath } from '../plugins/shape/graphics-path';
4
- import type { ShapePath } from '../plugins/shape/shape-path';
5
3
  import type { Renderer } from '../render';
6
4
  import { RendererComponent } from './renderer-component';
7
5
  /**
@@ -9,17 +7,19 @@ import { RendererComponent } from './renderer-component';
9
7
  * @since 2.1.0
10
8
  */
11
9
  export declare class ShapeComponent extends RendererComponent {
12
- path: GraphicsPath;
10
+ private path;
13
11
  private curveValues;
14
12
  private geometry;
15
- private dirty;
13
+ private data;
14
+ private animated;
16
15
  private vert;
17
16
  private frag;
18
17
  constructor(engine: Engine);
19
18
  onUpdate(dt: number): void;
20
19
  render(renderer: Renderer): void;
21
- buildGeometryFromPath(shapePath: ShapePath): void;
22
- fromData(data: ShapeCustomComponent): void;
20
+ private buildGeometryFromPath;
21
+ private buildPath;
22
+ fromData(data: ShapeComponentData): void;
23
23
  }
24
24
  /************************** Test Interface **********************************/
25
25
  /**
@@ -170,3 +170,37 @@ export declare enum ShapeConnectType {
170
170
  }
171
171
  export declare enum ShapePointType {
172
172
  }
173
+ /**
174
+ * @description 椭圆组件参数
175
+ */
176
+ export interface ShapeEllipseComponent extends ShapeComponentData {
177
+ type: ComponentShapeType.ELLIPSE;
178
+ param: ShapeEllipseParam;
179
+ }
180
+ /**
181
+ * @description 椭圆参数
182
+ */
183
+ export interface ShapeEllipseParam {
184
+ /**
185
+ * @description x轴半径
186
+ * -- TODO 后续完善类型
187
+ * -- TODO 可以看一下用xRadius/yRadius 还是 width/height
188
+ */
189
+ xRadius: number;
190
+ /**
191
+ * @description y轴半径
192
+ */
193
+ yRadius: number;
194
+ /**
195
+ * 填充属性
196
+ */
197
+ fill?: ShapeFillParam;
198
+ /**
199
+ * 描边属性
200
+ */
201
+ stroke?: ShapeStrokeParam;
202
+ /**
203
+ * 空间变换
204
+ */
205
+ transform?: spec.TransformData;
206
+ }
@@ -1,4 +1,4 @@
1
- import { Component } from '../components/component';
1
+ import { Component } from '../components';
2
2
  export declare class SceneTicking {
3
3
  update: UpdateTickData;
4
4
  lateUpdate: LateUpdateTickData;
@@ -5,13 +5,12 @@ import type { PluginSystem } from './plugin-system';
5
5
  import type { Scene, SceneRenderLevel } from './scene';
6
6
  import type { Texture } from './texture';
7
7
  import type { Disposable } from './utils';
8
- import type { VFXItemProps } from './vfx-item';
9
8
  export interface ContentOptions {
10
9
  id: string;
11
10
  duration: number;
12
11
  name: string;
13
12
  endBehavior: spec.EndBehavior;
14
- items: VFXItemProps[];
13
+ items: spec.DataPath[];
15
14
  camera: spec.CameraOptions;
16
15
  startTime: number;
17
16
  timelineAsset: spec.DataPath;
@@ -22,9 +21,8 @@ export interface ContentOptions {
22
21
  */
23
22
  export declare class CompositionSourceManager implements Disposable {
24
23
  composition?: spec.CompositionData;
25
- refCompositions: Map<string, spec.CompositionData>;
26
- sourceContent?: ContentOptions;
27
- refCompositionProps: Map<string, VFXItemProps>;
24
+ sourceContent?: spec.CompositionData;
25
+ refCompositionProps: Map<string, spec.CompositionData>;
28
26
  renderLevel?: SceneRenderLevel;
29
27
  pluginSystem?: PluginSystem;
30
28
  totalTime: number;
@@ -33,6 +31,7 @@ export declare class CompositionSourceManager implements Disposable {
33
31
  jsonScene?: spec.JSONScene;
34
32
  mask: number;
35
33
  engine: Engine;
34
+ private refCompositions;
36
35
  constructor(scene: Scene, engine: Engine);
37
36
  private getContent;
38
37
  private assembleItems;
@@ -12,11 +12,10 @@ import { RenderFrame } from './render';
12
12
  import type { Scene } from './scene';
13
13
  import type { Texture } from './texture';
14
14
  import type { Disposable, LostHandler } from './utils';
15
- import type { VFXItemProps } from './vfx-item';
16
15
  import { VFXItem } from './vfx-item';
17
16
  import type { CompositionEvent } from './events';
18
17
  import { EventEmitter } from './events';
19
- import type { PostProcessVolume } from './components/post-process-volume';
18
+ import type { PostProcessVolume } from './components';
20
19
  import { SceneTicking } from './composition/scene-ticking';
21
20
  export interface CompositionStatistic {
22
21
  loadStart: number;
@@ -93,7 +92,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
93
92
  * 是否播放完成后销毁 texture 对象
94
93
  */
95
94
  keepResource: boolean;
96
- extraCamera: VFXItem;
97
95
  /**
98
96
  * 合成内的元素否允许点击、拖拽交互
99
97
  * @since 1.6.0
@@ -151,7 +149,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
151
149
  /**
152
150
  * 预合成的合成属性,在 content 中会被其元素属性覆盖
153
151
  */
154
- refCompositionProps: Map<string, VFXItemProps>;
152
+ refCompositionProps: Map<string, spec.CompositionData>;
155
153
  /**
156
154
  * 合成的相机对象
157
155
  */
@@ -159,7 +157,11 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
159
157
  /**
160
158
  * 后处理渲染配置
161
159
  */
162
- globalVolume: PostProcessVolume;
160
+ globalVolume?: PostProcessVolume;
161
+ /**
162
+ * 是否开启后处理
163
+ */
164
+ postProcessingEnabled: boolean;
163
165
  protected rendererOptions: MeshRendererOptions | null;
164
166
  protected assigned: boolean;
165
167
  /**
@@ -189,7 +191,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
189
191
  * @param compositionSourceManager
190
192
  */
191
193
  constructor(props: CompositionProps, scene: Scene);
192
- initializeSceneTicking(item: VFXItem): void;
193
194
  /**
194
195
  * 所有合成 Item 的根变换
195
196
  */
@@ -296,7 +297,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
296
297
  * @param deltaTime - 更新的时间步长
297
298
  */
298
299
  update(deltaTime: number): void;
299
- private toLocalTime;
300
300
  private shouldDispose;
301
301
  private getUpdateTime;
302
302
  private callAwake;
@@ -304,7 +304,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
304
304
  * 构建父子树,同时保存到 itemCacheMap 中便于查找
305
305
  */
306
306
  private buildItemTree;
307
- private getParentIdWithoutSuffix;
308
307
  /**
309
308
  * 更新视频数据到纹理
310
309
  * @override
@@ -1,8 +1,5 @@
1
1
  type SuccessHandler<T> = (data: T) => void;
2
2
  type ErrorHandler = (status: number, responseText: string) => void;
3
- /**
4
- *
5
- */
6
3
  /**
7
4
  * JSON 值,它可以是字符串、数字、布尔值、对象或者 JSON 值的数组。
8
5
  *
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * as math from '@galacean/effects-math/es/core/index';
2
2
  export * as spec from '@galacean/effects-specification';
3
+ export * from './asset';
4
+ export * from './binary-asset';
3
5
  export * from './asset-loader';
4
6
  export * from './asset-manager';
5
7
  export * from './camera';
@@ -32,8 +34,8 @@ export * from './ticker';
32
34
  export * from './transform';
33
35
  export * from './utils';
34
36
  export * from './vfx-item';
35
- export * from './binary-asset';
36
37
  export * from './effects-object';
37
38
  export * from './effects-package';
38
39
  export * from './events';
40
+ export * from './pass-render-level';
39
41
  export declare const version: string;