@galacean/effects-core 2.0.0-alpha.8 → 2.0.0-beta.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 (121) hide show
  1. package/README.md +25 -21
  2. package/dist/__definations__/fbeffects-object-data.d.ts +28 -0
  3. package/dist/__definations__/fbeffects-package-data.d.ts +26 -0
  4. package/dist/__definations__/fbgeometry-data.d.ts +77 -0
  5. package/dist/__definations__/fbsub-mesh.d.ts +26 -0
  6. package/dist/__definations__/fbvertex-channel.d.ts +33 -0
  7. package/dist/__definations__/fbvertex-data.d.ts +27 -0
  8. package/dist/__definations__/index.d.ts +6 -0
  9. package/dist/asset-loader.d.ts +0 -13
  10. package/dist/asset-manager.d.ts +1 -75
  11. package/dist/binary-asset.d.ts +6 -0
  12. package/dist/camera.d.ts +10 -1
  13. package/dist/canvas-pool.d.ts +9 -0
  14. package/dist/comp-vfx-item.d.ts +26 -12
  15. package/dist/components/component.d.ts +4 -14
  16. package/dist/components/effect-component.d.ts +3 -23
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/components/post-process-volume.d.ts +15 -0
  19. package/dist/components/renderer-component.d.ts +2 -2
  20. package/dist/composition-source-manager.d.ts +8 -7
  21. package/dist/composition.d.ts +71 -64
  22. package/dist/constants.d.ts +1 -1
  23. package/dist/decorators.d.ts +4 -3
  24. package/dist/downloader.d.ts +9 -0
  25. package/dist/effects-object.d.ts +4 -1
  26. package/dist/effects-package.d.ts +19 -0
  27. package/dist/engine.d.ts +7 -4
  28. package/dist/events/event-emitter.d.ts +46 -0
  29. package/dist/events/index.d.ts +2 -0
  30. package/dist/events/types.d.ts +37 -0
  31. package/dist/fallback/camera.d.ts +2 -0
  32. package/dist/fallback/index.d.ts +12 -0
  33. package/dist/fallback/interact.d.ts +2 -0
  34. package/dist/fallback/migration.d.ts +20 -0
  35. package/dist/fallback/particle.d.ts +2 -0
  36. package/dist/fallback/sprite.d.ts +3 -0
  37. package/dist/fallback/utils.d.ts +25 -0
  38. package/dist/gl/create-gl-context.d.ts +2 -1
  39. package/dist/gl/index.d.ts +3 -0
  40. package/dist/image-asset.d.ts +5 -0
  41. package/dist/index.d.ts +9 -4
  42. package/dist/index.js +18920 -14116
  43. package/dist/index.js.map +1 -1
  44. package/dist/index.mjs +19155 -14360
  45. package/dist/index.mjs.map +1 -1
  46. package/dist/material/material.d.ts +17 -7
  47. package/dist/material/utils.d.ts +0 -10
  48. package/dist/math/bezier.d.ts +99 -0
  49. package/dist/math/keyframe-info.d.ts +39 -0
  50. package/dist/math/translate.d.ts +3 -2
  51. package/dist/math/utils.d.ts +5 -4
  52. package/dist/math/value-getter.d.ts +52 -26
  53. package/dist/pass-render-level.d.ts +3 -1
  54. package/dist/plugin-system.d.ts +3 -4
  55. package/dist/plugins/cal/animation-playable.d.ts +2 -1
  56. package/dist/plugins/cal/calculate-item.d.ts +5 -39
  57. package/dist/plugins/cal/calculate-vfx-item.d.ts +54 -13
  58. package/dist/plugins/cal/playable-graph.d.ts +72 -21
  59. package/dist/plugins/cal/timeline-asset.d.ts +27 -0
  60. package/dist/plugins/camera/camera-controller-node.d.ts +2 -13
  61. package/dist/plugins/index.d.ts +8 -3
  62. package/dist/plugins/interact/click-handler.d.ts +3 -3
  63. package/dist/plugins/interact/event-system.d.ts +0 -2
  64. package/dist/plugins/interact/interact-item.d.ts +15 -1
  65. package/dist/plugins/particle/burst.d.ts +10 -3
  66. package/dist/plugins/particle/link.d.ts +1 -0
  67. package/dist/plugins/particle/particle-loader.d.ts +2 -2
  68. package/dist/plugins/particle/particle-mesh.d.ts +5 -9
  69. package/dist/plugins/particle/particle-system-renderer.d.ts +1 -1
  70. package/dist/plugins/particle/particle-system.d.ts +14 -6
  71. package/dist/plugins/particle/particle-vfx-item.d.ts +9 -3
  72. package/dist/plugins/particle/trail-mesh.d.ts +2 -2
  73. package/dist/plugins/plugin.d.ts +7 -8
  74. package/dist/plugins/sprite/sprite-item.d.ts +29 -12
  75. package/dist/plugins/sprite/sprite-mesh.d.ts +0 -4
  76. package/dist/plugins/text/index.d.ts +4 -0
  77. package/dist/plugins/text/text-item.d.ts +33 -5
  78. package/dist/plugins/text/text-layout.d.ts +9 -1
  79. package/dist/plugins/timeline/playables/activation-mixer-playable.d.ts +7 -0
  80. package/dist/plugins/timeline/playables/sub-composition-clip-playable.d.ts +5 -0
  81. package/dist/plugins/timeline/playables/sub-composition-playable-asset.d.ts +5 -0
  82. package/dist/plugins/timeline/track.d.ts +72 -0
  83. package/dist/plugins/timeline/tracks/activation-track.d.ts +5 -0
  84. package/dist/plugins/timeline/tracks/sprite-color-track.d.ts +3 -0
  85. package/dist/plugins/timeline/tracks/sub-composition-track.d.ts +4 -0
  86. package/dist/plugins/timeline/tracks/transform-track.d.ts +3 -0
  87. package/dist/render/create-copy-shader.d.ts +2 -2
  88. package/dist/render/{frame-buffer.d.ts → framebuffer.d.ts} +7 -7
  89. package/dist/render/geometry.d.ts +14 -1
  90. package/dist/render/global-volume.d.ts +4 -5
  91. package/dist/render/gpu-capability.d.ts +6 -6
  92. package/dist/render/index.d.ts +3 -2
  93. package/dist/render/mesh.d.ts +1 -1
  94. package/dist/render/render-frame.d.ts +13 -12
  95. package/dist/render/render-pass.d.ts +10 -10
  96. package/dist/render/{render-buffer.d.ts → renderbuffer.d.ts} +4 -4
  97. package/dist/render/renderer.d.ts +9 -7
  98. package/dist/{semantic-map.d.ts → render/semantic-map.d.ts} +4 -4
  99. package/dist/render/shader.d.ts +4 -4
  100. package/dist/scene.d.ts +86 -4
  101. package/dist/serialization-helper.d.ts +6 -4
  102. package/dist/shader/index.d.ts +1 -3
  103. package/dist/shader/shader-factory.d.ts +35 -0
  104. package/dist/shape/shape.d.ts +1 -1
  105. package/dist/template-image.d.ts +3 -14
  106. package/dist/texture/texture.d.ts +8 -0
  107. package/dist/texture/types.d.ts +2 -2
  108. package/dist/texture/utils.d.ts +2 -1
  109. package/dist/ticker.d.ts +2 -2
  110. package/dist/transform.d.ts +3 -3
  111. package/dist/utils/array.d.ts +1 -1
  112. package/dist/utils/device.d.ts +4 -0
  113. package/dist/utils/index.d.ts +29 -14
  114. package/dist/utils/text.d.ts +8 -0
  115. package/dist/vfx-item.d.ts +37 -61
  116. package/package.json +7 -5
  117. package/dist/asset-migrations.d.ts +0 -5
  118. package/dist/plugins/cal/animation-mixer-playable.d.ts +0 -4
  119. package/dist/plugins/cal/animation-playable-output.d.ts +0 -4
  120. package/dist/plugins/cal/track.d.ts +0 -34
  121. package/dist/utils/timeline-component.d.ts +0 -6
@@ -1,4 +1,5 @@
1
- import type { VFXItem, VFXItemContent } from '../../vfx-item';
1
+ import { EffectsObject } from '../../effects-object';
2
+ import type { Disposable } from '../../utils';
2
3
  /**
3
4
  * 动画图,负责更新所有的动画节点
4
5
  * @since 2.0.0
@@ -6,36 +7,70 @@ import type { VFXItem, VFXItemContent } from '../../vfx-item';
6
7
  */
7
8
  export declare class PlayableGraph {
8
9
  private playableOutputs;
9
- constructor();
10
+ private playables;
10
11
  evaluate(dt: number): void;
11
- connect(source: Playable, destination: Playable): void;
12
+ connect(source: Playable, sourceOutputPort: number, destination: Playable, destinationInputPort: number): void;
12
13
  addOutput(output: PlayableOutput): void;
13
- private callProcessFrame;
14
+ addPlayable(playable: Playable): void;
15
+ private processFrameWithRoot;
16
+ private prepareFrameWithRoot;
17
+ private updatePlayableTime;
14
18
  }
15
19
  /**
16
20
  * 动画图可播放节点对象
17
21
  * @since 2.0.0
18
22
  * @internal
19
23
  */
20
- export declare class Playable {
21
- bindingItem: VFXItem<VFXItemContent>;
24
+ export declare class Playable implements Disposable {
25
+ onPlayablePlayFlag: boolean;
26
+ onPlayablePauseFlag: boolean;
27
+ overrideTimeNextEvaluation: boolean;
28
+ private destroyed;
22
29
  private inputs;
30
+ private inputOuputPorts;
31
+ private inputWeight;
32
+ private outputs;
33
+ private playState;
34
+ private traversalMode;
23
35
  /**
24
36
  * 当前本地播放的时间
25
37
  */
26
38
  protected time: number;
27
- constructor();
28
- connect(playable: Playable): void;
39
+ constructor(graph: PlayableGraph, inputCount?: number);
40
+ play(): void;
41
+ pause(): void;
42
+ connectInput(inputPort: number, sourcePlayable: Playable, sourceOutputPort: number, weight?: number): void;
43
+ addInput(sourcePlayable: Playable, sourceOutputPort: number, weight?: number): void;
44
+ getInputCount(): number;
29
45
  getInputs(): Playable[];
30
- getInput(index: number): Playable | undefined;
46
+ getInput(index: number): Playable;
47
+ getOutputCount(): number;
48
+ getOutputs(): Playable[];
49
+ getOutput(index: number): Playable;
50
+ getInputWeight(inputIndex: number): number;
51
+ setInputWeight(playable: Playable, weight: number): void;
52
+ setInputWeight(inputIndex: number, weight: number): void;
31
53
  setTime(time: number): void;
32
54
  getTime(): number;
33
- onGraphStart(): void;
34
- onGraphStop(): void;
35
- onPlayablePlay(): void;
36
- processFrame(dt: number): void;
55
+ getPlayState(): PlayState;
56
+ setTraversalMode(mode: PlayableTraversalMode): void;
57
+ getTraversalMode(): PlayableTraversalMode;
58
+ onPlayablePlay(context: FrameContext): void;
59
+ onPlayablePause(context: FrameContext): void;
60
+ prepareFrame(context: FrameContext): void;
61
+ processFrame(context: FrameContext): void;
37
62
  onPlayableDestroy(): void;
38
- fromData(data: any): void;
63
+ dispose(): void;
64
+ /**
65
+ * @internal
66
+ */
67
+ prepareFrameRecursive(context: FrameContext, passthroughPort: number): void;
68
+ /**
69
+ * @internal
70
+ */
71
+ processFrameRecursive(context: FrameContext, passthroughPort: number): void;
72
+ private setOutput;
73
+ private setInput;
39
74
  }
40
75
  /**
41
76
  * 动画图输出节点对象,将动画数据采样到绑定的元素属性上
@@ -46,21 +81,37 @@ export declare class PlayableOutput {
46
81
  /**
47
82
  * 绑定到的动画 item
48
83
  */
49
- bindingItem: VFXItem<VFXItemContent>;
84
+ userData: object;
50
85
  /**
51
86
  * 源 playable 对象
52
87
  */
53
88
  sourcePlayable: Playable;
89
+ context: FrameContext;
54
90
  /**
55
91
  * 当前本地播放的时间
56
92
  */
57
93
  protected time: number;
94
+ private sourceOutputPort;
58
95
  constructor();
59
- setSourcePlayeble(playable: Playable): void;
60
- onGraphStart(): void;
61
- processFrame(dt: number): void;
96
+ setSourcePlayeble(playable: Playable, port?: number): void;
97
+ getSourceOutputPort(): number;
98
+ setUserData(value: object): void;
99
+ getUserData(): object;
100
+ prepareFrame(): void;
101
+ processFrame(): void;
102
+ }
103
+ export declare abstract class PlayableAsset extends EffectsObject {
104
+ abstract createPlayable(graph: PlayableGraph): Playable;
105
+ }
106
+ export interface FrameContext {
107
+ deltaTime: number;
108
+ output: PlayableOutput;
109
+ }
110
+ export declare enum PlayState {
111
+ Playing = 0,
112
+ Paused = 1
62
113
  }
63
- export declare abstract class PlayableAsset {
64
- abstract createPlayable(): Playable;
65
- fromData(data: any): void;
114
+ export declare enum PlayableTraversalMode {
115
+ Mix = 0,
116
+ Passthrough = 1
66
117
  }
@@ -0,0 +1,27 @@
1
+ import type { DataPath, EffectsObjectData } from '@galacean/effects-specification';
2
+ import type { RuntimeClip, TrackAsset } from '../timeline/track';
3
+ import type { FrameContext, PlayableGraph } from './playable-graph';
4
+ import { Playable, PlayableAsset } from './playable-graph';
5
+ import type { Constructor } from '../../utils';
6
+ export interface TimelineAssetData extends EffectsObjectData {
7
+ tracks: DataPath[];
8
+ }
9
+ export declare class TimelineAsset extends PlayableAsset {
10
+ tracks: TrackAsset[];
11
+ createPlayable(graph: PlayableGraph): Playable;
12
+ createTrack<T extends TrackAsset>(classConstructor: Constructor<T>, parent: TrackAsset, name?: string): T;
13
+ fromData(data: TimelineAssetData): void;
14
+ }
15
+ export declare class TimelinePlayable extends Playable {
16
+ clips: RuntimeClip[];
17
+ prepareFrame(context: FrameContext): void;
18
+ evaluate(): void;
19
+ compileTracks(graph: PlayableGraph, tracks: TrackAsset[]): void;
20
+ private sortTracks;
21
+ private addSubTracksRecursive;
22
+ }
23
+ export declare class TrackSortWrapper {
24
+ track: TrackAsset;
25
+ originalIndex: number;
26
+ constructor(track: TrackAsset, originalIndex: number);
27
+ }
@@ -1,20 +1,9 @@
1
- import { Euler, Vector3 } from '@galacean/effects-math/es/core/index';
2
1
  import * as spec from '@galacean/effects-specification';
3
- import { ItemBehaviour } from '../../components';
2
+ import { Behaviour } from '../../components';
4
3
  import type { Engine } from '../../engine';
5
- export declare class CameraController extends ItemBehaviour {
6
- near: number;
7
- far: number;
8
- fov: number;
9
- clipMode?: spec.CameraClipMode;
10
- position: Vector3;
11
- rotation: Euler;
4
+ export declare class CameraController extends Behaviour {
12
5
  private options;
13
- private translateOverLifetime?;
14
- private rotationOverLifetime?;
15
6
  constructor(engine: Engine, props?: spec.CameraContent);
16
- start(): void;
17
7
  update(): void;
18
8
  fromData(data: spec.CameraContent): void;
19
- private updateCamera;
20
9
  }
@@ -18,6 +18,11 @@ export * from './particle/particle-system-renderer';
18
18
  export * from './cal/calculate-loader';
19
19
  export * from './cal/calculate-vfx-item';
20
20
  export * from './cal/calculate-item';
21
- export * from './text/text-item';
22
- export * from './text/text-loader';
23
- export * from './cal/track';
21
+ export * from './timeline/track';
22
+ export * from './timeline/tracks/transform-track';
23
+ export * from './timeline/tracks/activation-track';
24
+ export * from './timeline/tracks/sprite-color-track';
25
+ export * from './timeline/tracks/sub-composition-track';
26
+ export * from './timeline/playables/sub-composition-playable-asset';
27
+ export * from './cal/timeline-asset';
28
+ export * from './text';
@@ -1,6 +1,6 @@
1
1
  import type { Matrix4, Ray, TriangleLike, Vector2, Vector3 } from '@galacean/effects-math/es/core/index';
2
2
  import type * as spec from '@galacean/effects-specification';
3
- import type { VFXItem, VFXItemContent } from '../../vfx-item';
3
+ import type { VFXItem } from '../../vfx-item';
4
4
  export declare enum HitTestType {
5
5
  triangle = 1,
6
6
  box = 2,
@@ -46,13 +46,13 @@ export interface HitTestCustomParams {
46
46
  behavior?: spec.InteractBehavior;
47
47
  }
48
48
  export type Region = {
49
- compContent: VFXItem<VFXItemContent>;
49
+ compContent: VFXItem;
50
50
  name: string;
51
51
  id: string;
52
52
  position: Vector3;
53
53
  behavior?: spec.InteractBehavior;
54
54
  parentId?: string;
55
- hitPositions?: Vector3[];
55
+ hitPositions: Vector3[];
56
56
  };
57
57
  export type HitTestParams = {
58
58
  camera: {
@@ -1,10 +1,8 @@
1
- import * as spec from '@galacean/effects-specification';
2
1
  import type { Disposable } from '../../utils';
3
2
  export declare const EVENT_TYPE_CLICK = "click";
4
3
  export declare const EVENT_TYPE_TOUCH_START = "touchstart";
5
4
  export declare const EVENT_TYPE_TOUCH_MOVE = "touchmove";
6
5
  export declare const EVENT_TYPE_TOUCH_END = "touchend";
7
- export declare const InteractBehavior: typeof spec.InteractBehavior;
8
6
  export type TouchEventType = {
9
7
  x: number;
10
8
  y: number;
@@ -15,6 +15,19 @@ export declare class InteractComponent extends RendererComponent {
15
15
  bouncingArg: TouchEventType | null;
16
16
  previewContent: InteractMesh | null;
17
17
  interactData: spec.InteractContent;
18
+ /**
19
+ * 拖拽的惯性衰减系数,范围[0, 1], 越大惯性越强
20
+ */
21
+ downgrade: number;
22
+ /**
23
+ * 拖拽的距离映射系数,越大越容易拖动
24
+ */
25
+ dragRatio: number[];
26
+ /** 是否响应点击和拖拽交互事件 */
27
+ private _interactive;
28
+ private hasBeenAddedToComposition;
29
+ set interactive(enable: boolean);
30
+ get interactive(): boolean;
18
31
  start(): void;
19
32
  update(dt: number): void;
20
33
  render(renderer: Renderer): void;
@@ -24,5 +37,6 @@ export declare class InteractComponent extends RendererComponent {
24
37
  beginDragTarget(options: spec.DragInteractOption, eventSystem: EventSystem): void;
25
38
  getHitTestParams: (force?: boolean) => HitTestTriangleParams | void;
26
39
  getBoundingBox(): BoundingBoxTriangle | void;
27
- fromData(data: any): void;
40
+ fromData(data: spec.InteractContent): void;
41
+ canInteract(): boolean;
28
42
  }
@@ -1,6 +1,12 @@
1
+ import { ValueGetter } from '../../math';
2
+ interface BurstOptions {
3
+ time: number;
4
+ interval: number;
5
+ count: number | ValueGetter<number>;
6
+ cycles: number;
7
+ probability: number;
8
+ }
1
9
  export declare class Burst {
2
- once: boolean;
3
- disabled: boolean;
4
10
  private now;
5
11
  private index;
6
12
  private internalCycles;
@@ -9,7 +15,7 @@ export declare class Burst {
9
15
  private readonly count;
10
16
  private readonly cycles;
11
17
  private readonly probability;
12
- constructor(opts: any);
18
+ constructor(options: BurstOptions);
13
19
  getGeneratorOptions(timePassed: number, lifetime: number): {
14
20
  index: number;
15
21
  total: number;
@@ -19,3 +25,4 @@ export declare class Burst {
19
25
  reset(): void;
20
26
  clone(): Burst;
21
27
  }
28
+ export {};
@@ -17,5 +17,6 @@ export declare class Link<T> {
17
17
  removeNode(node: LinkNode<T>): void;
18
18
  forEach(func: (content: T, index: number) => void, thisObj?: any): void;
19
19
  forEachReverse(func: (content: T, index: number) => void, thisObj?: any): void;
20
+ getNodeByIndex(index: number): LinkNode<T> | null;
20
21
  }
21
22
  export {};
@@ -1,7 +1,7 @@
1
- import * as spec from '@galacean/effects-specification';
1
+ import type * as spec from '@galacean/effects-specification';
2
2
  import type { Engine } from '../../engine';
3
3
  import type { Renderer } from '../../render';
4
- import { AbstractPlugin } from '../index';
4
+ import { AbstractPlugin } from '../plugin';
5
5
  import type { PrecompileOptions } from '../../plugin-system';
6
6
  export declare class ParticleLoader extends AbstractPlugin {
7
7
  engine: Engine;
@@ -1,8 +1,9 @@
1
- import type { Matrix4 } from '@galacean/effects-math/es/core/index';
2
- import { Vector2, Vector3 } from '@galacean/effects-math/es/core/index';
3
1
  import type * as spec from '@galacean/effects-specification';
2
+ import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
3
+ import { Vector2 } from '@galacean/effects-math/es/core/vector2';
4
+ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
4
5
  import type { Engine } from '../../engine';
5
- import type { ValueGetter } from '../../math';
6
+ import { ValueGetter } from '../../math';
6
7
  import type { GPUCapability, SharedShaderWithSource } from '../../render';
7
8
  import { Geometry, Mesh } from '../../render';
8
9
  import { Texture } from '../../texture';
@@ -139,18 +140,13 @@ export declare class ParticleMesh implements ParticleMeshData {
139
140
  readonly anchor: Vector2;
140
141
  constructor(engine: Engine, props: ParticleMeshProps);
141
142
  getPointColor(index: number): number[];
142
- /**
143
- * 待废弃
144
- * @deprecated - 使用 `particle-system.getPointPosition` 替代
145
- */
146
- getPointPosition(index: number): Vector3;
147
143
  clearPoints(): void;
148
144
  resetGeometryData(geometry: Geometry): void;
149
145
  minusTime(time: number): void;
150
146
  removePoint(index: number): void;
151
147
  setPoint(index: number, point: Point): void;
152
148
  }
153
- export declare function getParticleMeshShader(item: spec.ParticleItem, env: string | undefined, gpuCapability: GPUCapability): {
149
+ export declare function getParticleMeshShader(item: spec.ParticleItem, gpuCapability: GPUCapability, env?: string): {
154
150
  shader: SharedShaderWithSource;
155
151
  vertex: number;
156
152
  fragment: number;
@@ -15,7 +15,7 @@ export declare class ParticleSystemRenderer extends RendererComponent {
15
15
  meshes: Mesh[];
16
16
  particleMesh: ParticleMesh;
17
17
  private trailMesh?;
18
- constructor(engine: Engine, particleMeshProps: ParticleMeshProps, trailMeshProps?: TrailMeshProps);
18
+ constructor(engine: Engine, particleMeshProps?: ParticleMeshProps, trailMeshProps?: TrailMeshProps);
19
19
  start(): void;
20
20
  update(dt: number): void;
21
21
  render(renderer: Renderer): void;
@@ -48,7 +48,7 @@ type ParticleOptions = {
48
48
  maxCount: number;
49
49
  gravity: vec3;
50
50
  gravityModifier: ValueGetter<number>;
51
- renderLevel?: string;
51
+ renderLevel?: spec.RenderLevel;
52
52
  particleFollowParent?: boolean;
53
53
  forceTarget?: {
54
54
  curve: ValueGetter<number>;
@@ -112,7 +112,7 @@ type ParticleInteraction = {
112
112
  multiple?: boolean;
113
113
  radius: number;
114
114
  };
115
- interface ParticleSystemOptions extends spec.ParticleOptions {
115
+ export interface ParticleSystemOptions extends spec.ParticleOptions {
116
116
  meshSlots?: number[];
117
117
  }
118
118
  export interface ParticleSystemProps extends Omit<spec.ParticleContent, 'options' | 'renderer' | 'trails'> {
@@ -141,7 +141,7 @@ export declare class ParticleSystem extends Component {
141
141
  textureSheetAnimation?: ParticleTextureSheetAnimation;
142
142
  interaction?: ParticleInteraction;
143
143
  emissionStopped: boolean;
144
- destoryed: boolean;
144
+ destroyed: boolean;
145
145
  props: ParticleSystemProps;
146
146
  private generatedCount;
147
147
  private lastUpdate;
@@ -158,6 +158,7 @@ export declare class ParticleSystem extends Component {
158
158
  get timePassed(): number;
159
159
  get lifetime(): number;
160
160
  get particleCount(): number;
161
+ isFrozen(): boolean;
161
162
  initEmitterTransform(): void;
162
163
  private updateEmitterTransform;
163
164
  private addParticle;
@@ -181,9 +182,15 @@ export declare class ParticleSystem extends Component {
181
182
  raycast(options: ParticleSystemRayCastOptions): Vector3[] | undefined;
182
183
  clearPointTrail(pointIndex: number): void;
183
184
  updatePointTrail(pointIndex: number, emitterLifetime: number, point: Point, startTime: number): void;
185
+ /**
186
+ * 通过索引获取指定index粒子当前时刻的位置
187
+ * @params index - 粒子索引
188
+ */
189
+ getPointPositionByIndex(index: number): Vector3 | null;
190
+ /**
191
+ * 通过粒子参数获取当前时刻粒子的位置
192
+ */
184
193
  getPointPosition(point: Point): Vector3;
185
- onEnd(particle: ParticleSystem): void;
186
- onIterate(particle: ParticleSystem): void;
187
194
  initPoint(data: Record<string, any>): Point;
188
195
  addBurst(burst: Burst, offsets: vec3[]): number;
189
196
  removeBurst(index: number): void;
@@ -192,6 +199,7 @@ export declare class ParticleSystem extends Component {
192
199
  resumeParticleEmission(): void;
193
200
  getBoundingBox(): void | BoundingBoxSphere;
194
201
  getHitTestParams: (force?: boolean) => void | HitTestCustomParams;
195
- fromData(data: any): void;
202
+ onAttached(): void;
203
+ fromData(data: unknown): void;
196
204
  }
197
205
  export {};
@@ -1,11 +1,17 @@
1
- import { Playable } from '../cal/playable-graph';
1
+ import type { FrameContext, PlayableGraph } from '../cal/playable-graph';
2
+ import { Playable, PlayableAsset } from '../cal/playable-graph';
2
3
  import { ParticleSystem } from './particle-system';
3
4
  /**
4
5
  * @since 2.0.0
5
6
  * @internal
6
7
  */
7
8
  export declare class ParticleBehaviourPlayable extends Playable {
9
+ lastTime: number;
8
10
  particleSystem: ParticleSystem;
9
- onPlayablePlay(): void;
10
- processFrame(dt: number): void;
11
+ start(context: FrameContext): void;
12
+ processFrame(context: FrameContext): void;
11
13
  }
14
+ export declare class ParticleBehaviourPlayableAsset extends PlayableAsset {
15
+ createPlayable(graph: PlayableGraph): Playable;
16
+ }
17
+ export declare const particleUniformTypeMap: Record<string, string>;
@@ -3,7 +3,7 @@ import { Vector3 } from '@galacean/effects-math/es/core/index';
3
3
  import type * as spec from '@galacean/effects-specification';
4
4
  import type { GradientStop, vec4 } from '@galacean/effects-specification';
5
5
  import type { Engine } from '../../engine';
6
- import type { ValueGetter } from '../../math';
6
+ import { ValueGetter } from '../../math';
7
7
  import type { GPUCapability, ShaderWithSource } from '../../render';
8
8
  import { Geometry, Mesh } from '../../render';
9
9
  import { Texture } from '../../texture';
@@ -56,4 +56,4 @@ export declare class TrailMesh {
56
56
  setPointStartPos(index: number, pos: Vector3): void;
57
57
  onUpdate(escapeTime: number): any;
58
58
  }
59
- export declare function getTrailMeshShader(trails: spec.ParticleTrail, particleMaxCount: number, name: string, env: string | undefined, gpuCapability: GPUCapability): ShaderWithSource;
59
+ export declare function getTrailMeshShader(trails: spec.ParticleTrail, particleMaxCount: number, name: string, gpuCapability: GPUCapability, env?: string): ShaderWithSource;
@@ -1,6 +1,5 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
- import type { SceneLoadOptions } from '../asset-manager';
3
- import type { Scene } from '../scene';
2
+ import type { Scene, SceneLoadOptions } from '../scene';
4
3
  import type { VFXItem } from '../vfx-item';
5
4
  import type { RenderFrame, Renderer } from '../render';
6
5
  import type { Composition } from '../composition';
@@ -22,21 +21,21 @@ export interface Plugin {
22
21
  * @param composition
23
22
  * @param item
24
23
  */
25
- onCompositionItemLifeBegin: (composition: Composition, item: VFXItem<any>) => void;
24
+ onCompositionItemLifeBegin: (composition: Composition, item: VFXItem) => void;
26
25
  /**
27
26
  * 合成生命周期结束时触发(无论结束行为)
28
27
  * 合成播放阶段只触发一次此函数
29
28
  * @param composition
30
29
  * @param item
31
30
  */
32
- onCompositionItemLifeEnd: (composition: Composition, item: VFXItem<any>) => void;
31
+ onCompositionItemLifeEnd: (composition: Composition, item: VFXItem) => void;
33
32
  /**
34
33
  * 合成销毁时触发(当合成的结束行为是冻结、循环或合成配置了 reusable 时不触发)
35
34
  * 元素销毁应该在合成销毁时调用。
36
35
  * @param composition
37
36
  * @param item
38
37
  */
39
- onCompositionItemRemoved: (composition: Composition, item: VFXItem<any>) => void;
38
+ onCompositionItemRemoved: (composition: Composition, item: VFXItem) => void;
40
39
  /**
41
40
  * 合成重播时的回调
42
41
  * @param composition
@@ -113,9 +112,9 @@ export declare abstract class AbstractPlugin implements Plugin {
113
112
  */
114
113
  static precompile(compositions: spec.Composition[], renderer: Renderer): Promise<void>;
115
114
  onCompositionConstructed(composition: Composition, scene: Scene): void;
116
- onCompositionItemLifeBegin(composition: Composition, item: VFXItem<any>): void;
117
- onCompositionItemLifeEnd(composition: Composition, item: VFXItem<any>): void;
118
- onCompositionItemRemoved(composition: Composition, item: VFXItem<any>): void;
115
+ onCompositionItemLifeBegin(composition: Composition, item: VFXItem): void;
116
+ onCompositionItemLifeEnd(composition: Composition, item: VFXItem): void;
117
+ onCompositionItemRemoved(composition: Composition, item: VFXItem): void;
119
118
  onCompositionReset(composition: Composition, frame: RenderFrame): void;
120
119
  onCompositionWillReset(composition: Composition, frame: RenderFrame): void;
121
120
  onCompositionDestroyed(composition: Composition): void;
@@ -9,9 +9,8 @@ import type { Renderer } from '../../render';
9
9
  import { Geometry } from '../../render';
10
10
  import type { GeometryFromShape } from '../../shape';
11
11
  import type { Texture } from '../../texture';
12
- import type { CalculateItemOptions } from '../cal/calculate-item';
13
- import { TimelineComponent } from '../cal/calculate-item';
14
- import { Playable } from '../cal/playable-graph';
12
+ import type { FrameContext, PlayableGraph } from '../cal/playable-graph';
13
+ import { Playable, PlayableAsset } from '../cal/playable-graph';
15
14
  import type { BoundingBoxTriangle, HitTestTriangleParams } from '../interact/click-handler';
16
15
  /**
17
16
  * 用于创建 spriteItem 的数据类型, 经过处理后的 spec.SpriteContent
@@ -29,8 +28,8 @@ export interface SpriteItemProps extends Omit<spec.SpriteContent, 'renderer'> {
29
28
  */
30
29
  export type SpriteItemOptions = {
31
30
  startColor: vec4;
32
- renderLevel?: string;
33
- } & CalculateItemOptions;
31
+ renderLevel?: spec.RenderLevel;
32
+ };
34
33
  /**
35
34
  * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
36
35
  */
@@ -69,12 +68,16 @@ export declare class SpriteColorPlayable extends Playable {
69
68
  startColor: spec.RGBAColorValue;
70
69
  renderColor: vec4;
71
70
  spriteMaterial: Material;
72
- onPlayablePlay(): void;
73
- processFrame(dt: number): void;
74
- fromData(clipData: {
75
- colorOverLifetime?: spec.ColorOverLifetime;
76
- startColor?: spec.RGBAColorValue;
77
- }): this;
71
+ processFrame(context: FrameContext): void;
72
+ create(clipData: SpriteColorPlayableAssetData): this;
73
+ }
74
+ export declare class SpriteColorPlayableAsset extends PlayableAsset {
75
+ data: SpriteColorPlayableAssetData;
76
+ createPlayable(graph: PlayableGraph): Playable;
77
+ fromData(data: SpriteColorPlayableAssetData): void;
78
+ }
79
+ export interface SpriteColorPlayableAssetData extends spec.EffectsObjectData {
80
+ colorOverLifetime?: spec.ColorOverLifetime;
78
81
  }
79
82
  export declare class SpriteComponent extends RendererComponent {
80
83
  renderer: SpriteItemRenderer;
@@ -87,8 +90,9 @@ export declare class SpriteComponent extends RendererComponent {
87
90
  index: number[] | spec.TypedArray;
88
91
  };
89
92
  anchor?: vec2;
90
- timelineComponent: TimelineComponent;
91
93
  textureSheetAnimation?: spec.TextureSheetAnimation;
94
+ frameAnimationLoop: boolean;
95
+ frameAnimationTime: number;
92
96
  splits: splitsDataType;
93
97
  emptyTexture: Texture;
94
98
  color: vec4;
@@ -109,6 +113,19 @@ export declare class SpriteComponent extends RendererComponent {
109
113
  * 获取当前 Mesh 的可见性。
110
114
  */
111
115
  getVisible(): boolean;
116
+ /**
117
+ * 设置当前图层的颜色
118
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
119
+ * @since 2.0.0
120
+ * @param color - 颜色值
121
+ */
122
+ setColor(color: vec4): void;
123
+ /**
124
+ * 设置当前 Mesh 的纹理
125
+ * @since 2.0.0
126
+ * @param texture - 纹理对象
127
+ */
128
+ setTexture(texture: Texture): void;
112
129
  render(renderer: Renderer): void;
113
130
  start(): void;
114
131
  update(dt: number): void;
@@ -20,16 +20,12 @@ export type SpriteRegionData = {
20
20
  size: spec.vec2;
21
21
  };
22
22
  export declare let maxSpriteMeshItemCount: number;
23
- export declare let maxSpriteTextureCount: number;
24
23
  export declare function setSpriteMeshMaxItemCountByGPU(gpuCapability: GPUCapabilityDetail): 16 | 32 | undefined;
25
24
  export declare function getImageItemRenderInfo(item: SpriteComponent): SpriteItemRenderInfo;
26
25
  export declare function spriteMeshShaderFromFilter(level: number, options?: {
27
- count?: number;
28
- ignoreBlend?: boolean;
29
26
  wireframe?: boolean;
30
27
  env?: string;
31
28
  }): SharedShaderWithSource;
32
29
  export declare function spriteMeshShaderIdFromRenderInfo(renderInfo: SpriteItemRenderInfo, count: number): string;
33
30
  export declare function spriteMeshShaderFromRenderInfo(renderInfo: SpriteItemRenderInfo, count: number, level: number, env?: string): SharedShaderWithSource;
34
31
  export declare function setMaxSpriteMeshItemCount(count: number): void;
35
- export declare function setSpriteMeshMaxFragmentTextures(count: number): void;
@@ -0,0 +1,4 @@
1
+ export * from './text-item';
2
+ export * from './text-layout';
3
+ export * from './text-style';
4
+ export * from './text-loader';