@galacean/effects-core 2.0.0-alpha.14 → 2.0.0-alpha.16

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.
@@ -1 +1,3 @@
1
- export declare function passRenderLevel(l?: string, renderLevel?: string): boolean;
1
+ import * as spec from '@galacean/effects-specification';
2
+ import type { SceneRenderLevel } from './scene';
3
+ export declare function passRenderLevel(l?: spec.RenderLevel, renderLevel?: SceneRenderLevel): boolean;
@@ -28,6 +28,6 @@ export declare class PluginSystem {
28
28
  createPluginItem(name: string, props: VFXItemProps, composition: Composition): VFXItem;
29
29
  processRawJSON(json: spec.JSONScene, options: SceneLoadOptions): Promise<void[]>;
30
30
  private callStatic;
31
- precompile(compositions: spec.Composition[], renderer: Renderer, options?: PrecompileOptions): Promise<void[]>;
31
+ precompile(compositions: spec.CompositionData[], renderer: Renderer, options?: PrecompileOptions): Promise<void[]>;
32
32
  loadResources(scene: Scene, options: SceneLoadOptions): Promise<void[]>;
33
33
  }
@@ -1,5 +1,5 @@
1
1
  import type { Euler, Vector3 } from '@galacean/effects-math/es/core/index';
2
- import * as spec from '@galacean/effects-specification';
2
+ import type * as spec from '@galacean/effects-specification';
3
3
  import type { ValueGetter } from '../../math';
4
4
  import { TrackAsset } from '../timeline/track';
5
5
  import type { TimelineAsset } from './timeline-asset';
@@ -19,22 +19,12 @@ export type ItemLinearVelOverLifetime = {
19
19
  z?: ValueGetter<number>;
20
20
  enabled?: boolean;
21
21
  };
22
- export interface CalculateItemOptions {
23
- start: number;
24
- duration: number;
25
- looping: boolean;
26
- endBehavior: number;
27
- startRotation?: number;
28
- start3DRotation?: number;
29
- }
30
22
  /**
31
23
  * @since 2.0.0
32
24
  * @internal
33
25
  */
34
26
  export declare class ObjectBindingTrack extends TrackAsset {
35
- options: CalculateItemOptions;
36
27
  data: spec.EffectsObjectData;
37
28
  create(timelineAsset: TimelineAsset): void;
38
- toLocalTime(time: number): number;
39
29
  fromData(data: spec.EffectsObjectData): void;
40
30
  }
@@ -7,7 +7,7 @@ import type { ItemBasicTransform, ItemLinearVelOverLifetime } from './calculate-
7
7
  import type { FrameContext, PlayableGraph } from './playable-graph';
8
8
  import { Playable, PlayableAsset } from './playable-graph';
9
9
  import { EffectsObject } from '../../effects-object';
10
- import type { VFXItem } from '../../vfx-item';
10
+ import { VFXItem } from '../../vfx-item';
11
11
  /**
12
12
  * @since 2.0.0
13
13
  * @internal
@@ -8,7 +8,6 @@ export interface TimelineAssetData extends EffectsObjectData {
8
8
  }
9
9
  export declare class TimelineAsset extends PlayableAsset {
10
10
  tracks: TrackAsset[];
11
- graph: PlayableGraph;
12
11
  createPlayable(graph: PlayableGraph): Playable;
13
12
  createTrack<T extends TrackAsset>(classConstructor: new (engine: Engine) => T, parent: TrackAsset, name?: string): T;
14
13
  fromData(data: TimelineAssetData): void;
@@ -22,6 +22,8 @@ export * from './timeline/track';
22
22
  export * from './timeline/tracks/transform-track';
23
23
  export * from './timeline/tracks/activation-track';
24
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';
25
27
  export * from './cal/timeline-asset';
26
28
  export * from './text/text-item';
27
29
  export * from './text/text-loader';
@@ -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>;
@@ -9,7 +9,6 @@ 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
12
  import type { FrameContext, PlayableGraph } from '../cal/playable-graph';
14
13
  import { Playable, PlayableAsset } from '../cal/playable-graph';
15
14
  import type { BoundingBoxTriangle, HitTestTriangleParams } from '../interact/click-handler';
@@ -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
  */
@@ -1,7 +1,6 @@
1
1
  import type { FrameContext } from '../../cal/playable-graph';
2
2
  import { Playable } from '../../cal/playable-graph';
3
3
  export declare class ActivationMixerPlayable extends Playable {
4
- private bindingItem;
5
4
  processFrame(context: FrameContext): void;
6
5
  private hideRendererComponents;
7
6
  private showRendererComponents;
@@ -0,0 +1,5 @@
1
+ import type { FrameContext } from '../../cal/playable-graph';
2
+ import { Playable } from '../../cal/playable-graph';
3
+ export declare class SubCompositionClipPlayable extends Playable {
4
+ processFrame(context: FrameContext): void;
5
+ }
@@ -0,0 +1,5 @@
1
+ import type { Playable, PlayableGraph } from '../../cal/playable-graph';
2
+ import { PlayableAsset } from '../../cal/playable-graph';
3
+ export declare class SubCompositionPlayableAsset extends PlayableAsset {
4
+ createPlayable(graph: PlayableGraph): Playable;
5
+ }
@@ -13,19 +13,18 @@ export declare class TrackAsset extends PlayableAsset {
13
13
  private clipSeed;
14
14
  private clips;
15
15
  protected children: TrackAsset[];
16
- initializeBinding(parentBinding: object): void;
17
16
  /**
18
- * @internal
17
+ * 重写该方法以获取自定义对象绑定
19
18
  */
20
- initializeBindingRecursive(parentBinding: object): void;
21
- createOutput(): PlayableOutput;
22
- createPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
23
- createMixerPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
24
- compileClips(graph: PlayableGraph, timelineClips: TimelineClip[], runtimeClips: RuntimeClip[]): Playable;
19
+ resolveBinding(parentBinding: object): object;
25
20
  /**
26
21
  * 重写该方法以创建自定义混合器
27
22
  */
28
23
  createTrackMixer(graph: PlayableGraph): Playable;
24
+ createOutput(): PlayableOutput;
25
+ createPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
26
+ createMixerPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
27
+ compileClips(graph: PlayableGraph, timelineClips: TimelineClip[], runtimeClips: RuntimeClip[]): Playable;
29
28
  createPlayable(graph: PlayableGraph): Playable;
30
29
  getChildTracks(): TrackAsset[];
31
30
  addChild(child: TrackAsset): void;
@@ -1,6 +1,5 @@
1
1
  import type { PlayableGraph, Playable } from '../../cal/playable-graph';
2
2
  import { TrackAsset } from '../track';
3
3
  export declare class ActivationTrack extends TrackAsset {
4
- initializeBinding(parentBinding: object): void;
5
4
  createTrackMixer(graph: PlayableGraph): Playable;
6
5
  }
@@ -0,0 +1,4 @@
1
+ import { TrackAsset } from '../track';
2
+ export declare class SubCompositionTrack extends TrackAsset {
3
+ resolveBinding(parentBinding: object): object;
4
+ }
package/dist/scene.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
2
  import type { Texture } from './texture';
3
3
  import type { PluginSystem } from './plugin-system';
4
+ import type { PickEnum } from './utils';
4
5
  export type ImageSource = spec.TemplateImage | spec.Image | spec.CompressedImage;
6
+ export type SceneRenderLevel = PickEnum<spec.RenderLevel, spec.RenderLevel.A | spec.RenderLevel.B | spec.RenderLevel.S>;
5
7
  /**
6
8
  * 场景类型
7
9
  */
@@ -9,7 +11,7 @@ export interface Scene {
9
11
  readonly jsonScene: spec.JSONScene;
10
12
  readonly bins: ArrayBuffer[];
11
13
  readonly pluginSystem: PluginSystem;
12
- readonly renderLevel?: spec.RenderLevel;
14
+ readonly renderLevel?: SceneRenderLevel;
13
15
  readonly storage: Record<string, any>;
14
16
  textureOptions: Record<string, any>[];
15
17
  images: ImageSource[];
@@ -57,9 +59,9 @@ export interface SceneLoadOptions {
57
59
  * 渲染分级。
58
60
  * 分级之后,只会加载当前渲染等级的资源。
59
61
  * 当渲染等级被设置为 B 后,player 的 fps 会降到 30 帧
60
- * @default 's'
62
+ * @default 'S'
61
63
  */
62
- renderLevel?: spec.RenderLevel;
64
+ renderLevel?: SceneRenderLevel;
63
65
  /**
64
66
  * 资源加载超时,时间单位秒
65
67
  * @default 10s
@@ -8,6 +8,7 @@ export declare class SerializationHelper {
8
8
  static checkTypedArray(obj: any): boolean;
9
9
  static checkDataPath(value: any): boolean;
10
10
  static checkGLTFNode(value: any): boolean;
11
+ static checkImageSource(value: any): boolean;
11
12
  private static deserializeProperty;
12
13
  private static deserializePropertyAsync;
13
14
  private static serializeObjectProperty;
@@ -9,6 +9,9 @@ export * from './logger';
9
9
  export type Immutable<O> = O extends Record<any, any> ? {
10
10
  readonly [key in keyof O]: Immutable<O[key]>;
11
11
  } : O extends Array<infer X> ? ReadonlyArray<X> : O;
12
+ export type PickEnum<T, K extends T> = {
13
+ [P in keyof K]: P extends K ? P : never;
14
+ };
12
15
  export declare enum DestroyOptions {
13
16
  destroy = 0,
14
17
  keep = 1,
@@ -63,7 +66,9 @@ export declare function isFunction(obj: any): boolean;
63
66
  * @return {boolean}
64
67
  */
65
68
  export declare function isObject(obj: any): boolean;
69
+ export declare function isCanvas(canvas: HTMLCanvasElement): boolean;
66
70
  export declare function deepClone(obj: any): any;
67
71
  export declare function random(min: number, max: number): number;
68
72
  export declare function throwDestroyedError(): void;
69
73
  export declare function generateGUID(): string;
74
+ export declare function base64ToFile(base64: string, filename?: string, contentType?: string): File;
@@ -1,9 +1,8 @@
1
1
  import { Vector3 } from '@galacean/effects-math/es/core/vector3';
2
2
  import * as spec from '@galacean/effects-specification';
3
3
  import type { VFXItemData } from './asset-loader';
4
- import { RendererComponent } from './components';
5
- import type { Component } from './components/component';
6
- import { ItemBehaviour } from './components/component';
4
+ import type { Component } from './components';
5
+ import { RendererComponent, ItemBehaviour } from './components';
7
6
  import type { Composition } from './composition';
8
7
  import { EffectsObject } from './effects-object';
9
8
  import type { Engine } from './engine';
@@ -60,10 +59,6 @@ export declare class VFXItem extends EffectsObject implements Disposable {
60
59
  * 元素是否可用
61
60
  */
62
61
  ended: boolean;
63
- /**
64
- * 元素在合成中的索引
65
- */
66
- listIndex: number;
67
62
  /**
68
63
  * 元素名称
69
64
  */
@@ -92,6 +87,7 @@ export declare class VFXItem extends EffectsObject implements Disposable {
92
87
  * 元素动画的速度
93
88
  */
94
89
  private speed;
90
+ private listIndex;
95
91
  static isComposition(item: VFXItem): boolean;
96
92
  static isSprite(item: VFXItem): boolean;
97
93
  static isParticle(item: VFXItem): boolean;
@@ -108,6 +104,11 @@ export declare class VFXItem extends EffectsObject implements Disposable {
108
104
  * 播放完成后是否需要再使用,是的话生命周期结束后不会 dispose
109
105
  */
110
106
  get compositionReusable(): boolean;
107
+ /**
108
+ * 元素在合成中的索引
109
+ */
110
+ get renderOrder(): number;
111
+ set renderOrder(value: number);
111
112
  /**
112
113
  * 设置元素的动画速度
113
114
  * @param speed - 速度
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/effects-core",
3
- "version": "2.0.0-alpha.14",
3
+ "version": "2.0.0-alpha.16",
4
4
  "description": "Galacean Effects runtime core for the web",
5
5
  "module": "./dist/index.mjs",
6
6
  "main": "./dist/index.js",
@@ -42,7 +42,7 @@
42
42
  "registry": "https://registry.npmjs.org"
43
43
  },
44
44
  "dependencies": {
45
- "@galacean/effects-specification": "2.0.0-alpha.16",
45
+ "@galacean/effects-specification": "2.0.0-alpha.17",
46
46
  "@galacean/effects-math": "1.1.0",
47
47
  "uuid": "9.0.1"
48
48
  },