@galacean/effects-core 2.4.0-alpha.0 → 2.4.0-beta.1

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.
@@ -7,8 +7,7 @@ import type { Engine } from './engine';
7
7
  export declare class AssetLoader {
8
8
  private engine;
9
9
  constructor(engine: Engine);
10
- loadGUID<T>(guid: string): T;
11
- loadGUIDAsync<T>(guid: string): Promise<T>;
10
+ loadGUID<T>(dataPath: spec.DataPath): T;
12
11
  private findData;
13
12
  private static getClass;
14
13
  }
@@ -1,6 +1,4 @@
1
- import * as spec from '@galacean/effects-specification';
2
1
  import { EffectsObject } from './effects-object';
3
2
  export declare class BinaryAsset extends EffectsObject {
4
3
  buffer: ArrayBuffer;
5
- fromData(data: spec.EffectsObjectData): void;
6
4
  }
@@ -1,6 +1,6 @@
1
1
  import type { Ray } from '@galacean/effects-math/es/core/ray';
2
2
  import * as spec from '@galacean/effects-specification';
3
- import { Behaviour } from './components';
3
+ import { Component } from './components';
4
4
  import type { CompositionHitTestOptions } from './composition';
5
5
  import type { Region, TrackAsset } from './plugins';
6
6
  import { VFXItem } from './vfx-item';
@@ -15,7 +15,7 @@ export interface SceneBindingData {
15
15
  /**
16
16
  * @since 2.0.0
17
17
  */
18
- export declare class CompositionComponent extends Behaviour {
18
+ export declare class CompositionComponent extends Component {
19
19
  time: number;
20
20
  startTime: number;
21
21
  items: VFXItem[];
@@ -1,38 +1,23 @@
1
1
  import { Color } from '@galacean/effects-math/es/core/color';
2
2
  import * as spec from '@galacean/effects-specification';
3
3
  import type { Engine } from '../engine';
4
- import type { Maskable, MaterialProps } from '../material';
5
- import { MaskMode, Material, MaskProcessor } from '../material';
4
+ import type { Maskable } from '../material';
5
+ import { MaskMode, MaskProcessor } from '../material';
6
6
  import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
7
- import type { GeometryDrawMode, Renderer } from '../render';
7
+ import { MeshCollider } from '../plugins';
8
+ import type { Renderer } from '../render';
8
9
  import { Geometry } from '../render';
9
- import type { GeometryFromShape } from '../shape';
10
+ import { type GeometryFromShape } from '../shape';
10
11
  import { Texture } from '../texture';
11
12
  import { RendererComponent } from './renderer-component';
12
13
  /**
13
14
  * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
14
15
  */
15
16
  export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin' | 'mask'>> {
16
- order: number;
17
17
  texture: Texture;
18
18
  mask: number;
19
19
  maskMode: MaskMode;
20
20
  shape?: GeometryFromShape;
21
- anchor?: spec.vec2;
22
- particleOrigin?: spec.ParticleOrigin;
23
- }
24
- /**
25
- * 图层的渲染属性,用于 Mesh 的合并判断
26
- */
27
- export interface ItemRenderInfo {
28
- side: number;
29
- occlusion: boolean;
30
- blending: number;
31
- cachePrefix: string;
32
- mask: number;
33
- maskMode: number;
34
- cacheId: string;
35
- wireframe?: boolean;
36
21
  }
37
22
  /**
38
23
  * @since 2.1.0
@@ -45,10 +30,12 @@ export declare class BaseRenderComponent extends RendererComponent implements Ma
45
30
  color: Color;
46
31
  geometry: Geometry;
47
32
  readonly maskManager: MaskProcessor;
48
- protected renderInfo: ItemRenderInfo;
49
33
  protected preMultiAlpha: number;
50
34
  protected visible: boolean;
51
- protected frameAnimationTime: number;
35
+ /**
36
+ * 用于点击测试的碰撞器
37
+ */
38
+ protected meshCollider: MeshCollider;
52
39
  /**
53
40
  *
54
41
  * @param engine
@@ -57,10 +44,12 @@ export declare class BaseRenderComponent extends RendererComponent implements Ma
57
44
  /**
58
45
  * 设置当前 Mesh 的可见性。
59
46
  * @param visible - true:可见,false:不可见
47
+ * @deprecated 2.4.0 Please use enabled instead
60
48
  */
61
49
  setVisible(visible: boolean): void;
62
50
  /**
63
51
  * 获取当前 Mesh 的可见性。
52
+ * @deprecated 2.4.0 Please use enabled instead
64
53
  */
65
54
  getVisible(): boolean;
66
55
  /**
@@ -91,21 +80,13 @@ export declare class BaseRenderComponent extends RendererComponent implements Ma
91
80
  setTexture(input: string): Promise<void>;
92
81
  render(renderer: Renderer): void;
93
82
  onStart(): void;
94
- onDestroy(): void;
95
- protected setItem(): void;
96
- protected getItemGeometryData(): {
83
+ getHitTestParams: (force?: boolean) => HitTestTriangleParams | undefined;
84
+ getBoundingBox(): BoundingBoxTriangle;
85
+ protected getItemGeometryData(geometry: Geometry): {
97
86
  index: number[];
98
87
  atlasOffset: number[];
99
88
  };
100
- protected createGeometry(mode: GeometryDrawMode): Geometry;
101
- protected getMaterialProps(renderInfo: ItemRenderInfo, count: number): MaterialProps;
102
- protected createMaterial(renderInfo: ItemRenderInfo, count: number): Material;
103
- getTextures(): Texture[];
104
- /**
105
- * 获取图层包围盒的类型和世界坐标
106
- * @returns
107
- */
108
- getBoundingBox(): BoundingBoxTriangle | void;
109
- getHitTestParams: (force?: boolean) => HitTestTriangleParams | undefined;
89
+ protected createGeometry(): Geometry;
90
+ private configureMaterial;
91
+ fromData(data: unknown): void;
110
92
  }
111
- export declare function getImageItemRenderInfo(item: BaseRenderComponent): ItemRenderInfo;
@@ -58,6 +58,7 @@ export declare abstract class Component extends EffectsObject {
58
58
  }
59
59
  /**
60
60
  * @since 2.0.0
61
+ * @deprecated 2.4.0 Please use Component instead
61
62
  */
62
63
  export declare abstract class Behaviour extends Component {
63
64
  setVFXItem(item: VFXItem): void;
@@ -1,10 +1,10 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
- import { Behaviour } from './component';
2
+ import { Component } from './component';
3
3
  import type { Engine } from '../engine';
4
4
  /**
5
5
  * @since 2.1.0
6
6
  */
7
- export declare class PostProcessVolume extends Behaviour {
7
+ export declare class PostProcessVolume extends Component {
8
8
  bloom: spec.Bloom;
9
9
  vignette: spec.Vignette;
10
10
  tonemapping: spec.Tonemapping;
@@ -1,6 +1,5 @@
1
1
  import type { Material } from '../material';
2
2
  import type { Renderer } from '../render';
3
- import type { VFXItem } from '../vfx-item';
4
3
  import { Component } from './component';
5
4
  /**
6
5
  * 所有渲染组件的基类
@@ -14,10 +13,6 @@ export declare class RendererComponent extends Component {
14
13
  get material(): Material;
15
14
  set material(material: Material);
16
15
  render(renderer: Renderer): void;
17
- setVFXItem(item: VFXItem): void;
18
16
  onEnable(): void;
19
17
  onDisable(): void;
20
- fromData(data: unknown): void;
21
- toData(): void;
22
- dispose(): void;
23
18
  }
@@ -1,8 +1,6 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
2
  import type { Engine } from '../engine';
3
- import type { Maskable } from '../material';
4
- import { MaskProcessor } from '../material';
5
- import { MeshComponent } from './mesh-component';
3
+ import { BaseRenderComponent } from './base-render-component';
6
4
  interface ShapeAttribute {
7
5
  /**
8
6
  * 矢量图形类型
@@ -92,7 +90,7 @@ export interface PolygonAttribute extends ShapeAttribute {
92
90
  * 图形组件
93
91
  * @since 2.1.0
94
92
  */
95
- export declare class ShapeComponent extends MeshComponent implements Maskable {
93
+ export declare class ShapeComponent extends BaseRenderComponent {
96
94
  private hasStroke;
97
95
  private hasFill;
98
96
  private shapeDirty;
@@ -102,7 +100,6 @@ export declare class ShapeComponent extends MeshComponent implements Maskable {
102
100
  private shapeAttribute;
103
101
  private vert;
104
102
  private frag;
105
- readonly maskManager: MaskProcessor;
106
103
  get shape(): ShapeAttribute;
107
104
  /**
108
105
  *
@@ -3,7 +3,6 @@ import type { Ray } from '@galacean/effects-math/es/core/ray';
3
3
  import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
4
4
  import { Camera } from './camera';
5
5
  import { CompositionComponent } from './comp-vfx-item';
6
- import { CompositionSourceManager } from './composition-source-manager';
7
6
  import type { PluginSystem } from './plugin-system';
8
7
  import type { EventSystem, Plugin, Region } from './plugins';
9
8
  import type { MeshRendererOptions, Renderer } from './render';
@@ -160,7 +159,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
160
159
  * 合成是否结束
161
160
  */
162
161
  isEnded: boolean;
163
- compositionSourceManager: CompositionSourceManager;
164
162
  /**
165
163
  * 合成id
166
164
  */
@@ -181,10 +179,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
181
179
  * 插件系统,保存当前加载的插件对象,负责插件事件和创建插件的 Item 对象
182
180
  */
183
181
  readonly pluginSystem: PluginSystem;
184
- /**
185
- * 是否在合成结束时自动销毁引用的纹理,合成重播时不销毁
186
- */
187
- readonly autoRefTex: boolean;
188
182
  /**
189
183
  * 当前合成名称
190
184
  */
@@ -239,7 +233,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
239
233
  private paused;
240
234
  private lastVideoUpdateTime;
241
235
  private isEndCalled;
242
- private readonly texInfo;
236
+ private _textures;
243
237
  /**
244
238
  * 合成中消息元素创建/销毁时触发的回调
245
239
  */
@@ -365,10 +359,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
365
359
  private shouldDispose;
366
360
  private getUpdateTime;
367
361
  private callAwake;
368
- /**
369
- * 构建父子树,同时保存到 itemCacheMap 中便于查找
370
- */
371
- private buildItemTree;
372
362
  /**
373
363
  * 更新视频数据到纹理
374
364
  * @override
@@ -15,7 +15,7 @@ export declare abstract class EffectsObject {
15
15
  /**
16
16
  * 存储需要序列化的数据
17
17
  */
18
- readonly taggedProperties: Record<string, any>;
18
+ defination: Record<string, any>;
19
19
  /**
20
20
  *
21
21
  * @param engine
package/dist/engine.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
2
  import type { Database, SceneData } from './asset-loader';
3
- import { AssetLoader } from './asset-loader';
4
3
  import type { EffectsObject } from './effects-object';
5
4
  import type { Material } from './material';
6
5
  import { MaskRefManager } from './material';
7
6
  import type { GPUCapability, Geometry, Mesh, RenderPass, Renderer, ShaderLibrary } from './render';
8
- import type { Scene } from './scene';
7
+ import type { Scene, SceneRenderLevel } from './scene';
9
8
  import type { Texture } from './texture';
10
9
  import type { Disposable } from './utils';
11
10
  /**
@@ -16,6 +15,10 @@ export declare class Engine implements Disposable {
16
15
  * 渲染器
17
16
  */
18
17
  renderer: Renderer;
18
+ /**
19
+ * 渲染等级
20
+ */
21
+ renderLevel?: SceneRenderLevel;
19
22
  emptyTexture: Texture;
20
23
  transparentTexture: Texture;
21
24
  /**
@@ -24,7 +27,6 @@ export declare class Engine implements Disposable {
24
27
  gpuCapability: GPUCapability;
25
28
  jsonSceneData: SceneData;
26
29
  objectInstance: Record<string, EffectsObject>;
27
- assetLoader: AssetLoader;
28
30
  database?: Database;
29
31
  /**
30
32
  * 渲染过程中错误队列
@@ -40,6 +42,7 @@ export declare class Engine implements Disposable {
40
42
  protected geometries: Geometry[];
41
43
  protected meshes: Mesh[];
42
44
  protected renderPasses: RenderPass[];
45
+ private assetLoader;
43
46
  /**
44
47
  *
45
48
  */
@@ -52,7 +55,10 @@ export declare class Engine implements Disposable {
52
55
  addEffectsObjectData(data: spec.EffectsObjectData): void;
53
56
  findEffectsObjectData(uuid: string): spec.EffectsObjectData;
54
57
  addInstance(effectsObject: EffectsObject): void;
55
- getInstance(id: string): EffectsObject;
58
+ /**
59
+ * @ignore
60
+ */
61
+ findObject<T>(guid: spec.DataPath): T;
56
62
  removeInstance(id: string): void;
57
63
  addPackageDatas(scene: Scene): void;
58
64
  createVFXItems(scene: Scene): Promise<void>;
@@ -14,6 +14,7 @@ export declare function version22Migration(json: JSONSceneLegacy): JSONSceneLega
14
14
  */
15
15
  export declare function version31Migration(json: JSONScene): JSONScene;
16
16
  export declare function version32Migration(json: JSONScene): JSONScene;
17
+ export declare function version33Migration(json: JSONScene): JSONScene;
17
18
  export declare function processContent(composition: spec.CompositionData): void;
18
19
  export declare function processMask(renderContent: any): void;
19
20
  /**
package/dist/index.d.ts CHANGED
@@ -10,7 +10,6 @@ export * from './canvas-pool';
10
10
  export * from './comp-vfx-item';
11
11
  export * from './components';
12
12
  export * from './composition';
13
- export * from './composition-source-manager';
14
13
  export * from './config';
15
14
  export * from './constants';
16
15
  export * from './decorators';