@galacean/effects-core 2.3.2 → 2.4.0-alpha.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.
@@ -1,21 +1,22 @@
1
+ import { Color } from '@galacean/effects-math/es/core/color';
1
2
  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 { Texture } from '../texture';
5
- import type { GeometryDrawMode, Renderer } from '../render';
6
- import { Geometry } from '../render';
7
3
  import type { Engine } from '../engine';
4
+ import type { Maskable, MaterialProps } from '../material';
5
+ import { MaskMode, Material, MaskProcessor } from '../material';
8
6
  import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
9
- import type { MaterialProps } from '../material';
10
- import { Material } from '../material';
7
+ import type { GeometryDrawMode, Renderer } from '../render';
8
+ import { Geometry } from '../render';
11
9
  import type { GeometryFromShape } from '../shape';
10
+ import { Texture } from '../texture';
11
+ import { RendererComponent } from './renderer-component';
12
12
  /**
13
13
  * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
14
14
  */
15
- export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin'>> {
15
+ export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin' | 'mask'>> {
16
16
  order: number;
17
- mask: number;
18
17
  texture: Texture;
18
+ mask: number;
19
+ maskMode: MaskMode;
19
20
  shape?: GeometryFromShape;
20
21
  anchor?: spec.vec2;
21
22
  particleOrigin?: spec.ParticleOrigin;
@@ -36,26 +37,17 @@ export interface ItemRenderInfo {
36
37
  /**
37
38
  * @since 2.1.0
38
39
  */
39
- export declare class BaseRenderComponent extends RendererComponent {
40
+ export declare class BaseRenderComponent extends RendererComponent implements Maskable {
40
41
  interaction?: {
41
42
  behavior: spec.InteractBehavior;
42
43
  };
43
- cachePrefix: string;
44
- geoData: {
45
- atlasOffset: number[] | spec.TypedArray;
46
- index: number[] | spec.TypedArray;
47
- };
48
- anchor?: spec.vec2;
49
44
  renderer: ItemRenderer;
50
- emptyTexture: Texture;
51
- color: spec.vec4;
52
- worldMatrix: Matrix4;
45
+ color: Color;
53
46
  geometry: Geometry;
47
+ readonly maskManager: MaskProcessor;
54
48
  protected renderInfo: ItemRenderInfo;
55
- protected readonly wireframe?: boolean;
56
49
  protected preMultiAlpha: number;
57
50
  protected visible: boolean;
58
- protected isManualTimeSet: boolean;
59
51
  protected frameAnimationTime: number;
60
52
  /**
61
53
  *
@@ -71,6 +63,13 @@ export declare class BaseRenderComponent extends RendererComponent {
71
63
  * 获取当前 Mesh 的可见性。
72
64
  */
73
65
  getVisible(): boolean;
66
+ /**
67
+ * 设置当前图层的颜色
68
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
69
+ * @since 2.4.0
70
+ * @param color - 颜色值
71
+ */
72
+ setColor(color: Color): void;
74
73
  /**
75
74
  * 设置当前图层的颜色
76
75
  * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
@@ -93,10 +92,6 @@ export declare class BaseRenderComponent extends RendererComponent {
93
92
  render(renderer: Renderer): void;
94
93
  onStart(): void;
95
94
  onDestroy(): void;
96
- protected getItemInitData(): {
97
- atlasOffset: spec.TypedArray | number[];
98
- index: number[];
99
- };
100
95
  protected setItem(): void;
101
96
  protected getItemGeometryData(): {
102
97
  index: number[];
@@ -1,5 +1,7 @@
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';
3
5
  import { MeshComponent } from './mesh-component';
4
6
  interface ShapeAttribute {
5
7
  /**
@@ -90,7 +92,7 @@ export interface PolygonAttribute extends ShapeAttribute {
90
92
  * 图形组件
91
93
  * @since 2.1.0
92
94
  */
93
- export declare class ShapeComponent extends MeshComponent {
95
+ export declare class ShapeComponent extends MeshComponent implements Maskable {
94
96
  private hasStroke;
95
97
  private hasFill;
96
98
  private shapeDirty;
@@ -100,6 +102,7 @@ export declare class ShapeComponent extends MeshComponent {
100
102
  private shapeAttribute;
101
103
  private vert;
102
104
  private frag;
105
+ readonly maskManager: MaskProcessor;
103
106
  get shape(): ShapeAttribute;
104
107
  /**
105
108
  *
@@ -32,9 +32,5 @@ export declare class CompositionSourceManager implements Disposable {
32
32
  private preProcessItemContent;
33
33
  private changeTex;
34
34
  private addTextureUsage;
35
- /**
36
- * 处理蒙版和遮挡关系写入 stencil 的 ref 值
37
- */
38
- private processMask;
39
35
  dispose(): void;
40
36
  }
package/dist/engine.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { Database, SceneData } from './asset-loader';
3
3
  import { AssetLoader } from './asset-loader';
4
4
  import type { EffectsObject } from './effects-object';
5
5
  import type { Material } from './material';
6
+ import { MaskRefManager } from './material';
6
7
  import type { GPUCapability, Geometry, Mesh, RenderPass, Renderer, ShaderLibrary } from './render';
7
8
  import type { Scene } from './scene';
8
9
  import type { Texture } from './texture';
@@ -29,6 +30,10 @@ export declare class Engine implements Disposable {
29
30
  * 渲染过程中错误队列
30
31
  */
31
32
  renderErrors: Set<Error>;
33
+ /**
34
+ * maskRef 值分配
35
+ */
36
+ maskRefManager: MaskRefManager;
32
37
  protected destroyed: boolean;
33
38
  protected textures: Texture[];
34
39
  protected materials: Material[];
@@ -1,3 +1,4 @@
1
+ import * as spec from '@galacean/effects-specification';
1
2
  import type { BaseContent, BinaryFile, JSONScene, JSONSceneLegacy, SpineResource, SpineContent } from '@galacean/effects-specification';
2
3
  /**
3
4
  * 2.1 以下版本数据适配(mars-player@2.4.0 及以上版本支持 2.1 以下数据的适配)
@@ -12,6 +13,9 @@ export declare function version22Migration(json: JSONSceneLegacy): JSONSceneLega
12
13
  * - 富文本插件名称的适配
13
14
  */
14
15
  export declare function version31Migration(json: JSONScene): JSONScene;
16
+ export declare function version32Migration(json: JSONScene): JSONScene;
17
+ export declare function processContent(composition: spec.CompositionData): void;
18
+ export declare function processMask(renderContent: any): void;
15
19
  /**
16
20
  * 3.0 以下版本数据适配(runtime 2.0及以上版本支持)
17
21
  */