@galacean/effects-core 2.5.0-alpha.0 → 2.5.0-alpha.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.
- package/dist/components/base-render-component.d.ts +1 -3
- package/dist/index.js +64 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -43
- package/dist/index.mjs.map +1 -1
- package/dist/material/mask-ref-manager.d.ts +5 -2
- package/dist/material/types.d.ts +0 -7
- package/dist/plugins/particle/particle-system.d.ts +2 -8
- package/dist/plugins/text/text-item.d.ts +3 -2
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/promise-util.d.ts +9 -0
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ 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
4
|
import type { Maskable } from '../material';
|
|
5
|
-
import {
|
|
5
|
+
import { MaskProcessor } from '../material';
|
|
6
6
|
import type { BoundingBoxTriangle, HitTestTriangleParams, splitsDataType } from '../plugins';
|
|
7
7
|
import { MeshCollider } from '../plugins';
|
|
8
8
|
import type { Renderer } from '../render';
|
|
@@ -16,9 +16,7 @@ import { RendererComponent } from './renderer-component';
|
|
|
16
16
|
export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'shape' | 'anchor' | 'particleOrigin' | 'mask'>> {
|
|
17
17
|
texture: Texture;
|
|
18
18
|
mask: number;
|
|
19
|
-
maskMode: MaskMode;
|
|
20
19
|
shape?: GeometryFromShape;
|
|
21
|
-
alphaMask: boolean;
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
22
|
* @since 2.1.0
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Description: Galacean Effects runtime core for the web
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
|
|
6
|
-
* Version: v2.5.0-alpha.
|
|
6
|
+
* Version: v2.5.0-alpha.1
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
'use strict';
|
|
@@ -680,6 +680,17 @@ function asserts(condition, msg) {
|
|
|
680
680
|
return /^[^\d.][\w-]*$/.test(fontFamily);
|
|
681
681
|
}
|
|
682
682
|
|
|
683
|
+
/**
|
|
684
|
+
* Simple implementation of the deferred pattern.
|
|
685
|
+
* An object that exposes a promise and functions to resolve and reject it.
|
|
686
|
+
*/ var Deferred = function Deferred() {
|
|
687
|
+
var _this = this;
|
|
688
|
+
this.promise = new Promise(function(resolve, reject) {
|
|
689
|
+
_this.resolve = resolve;
|
|
690
|
+
_this.reject = reject;
|
|
691
|
+
});
|
|
692
|
+
};
|
|
693
|
+
|
|
683
694
|
var prefix = "[Galacean Effects]";
|
|
684
695
|
var localLogger;
|
|
685
696
|
function format(message) {
|
|
@@ -7625,6 +7636,8 @@ exports.MaterialRenderType = void 0;
|
|
|
7625
7636
|
var MaskProcessor = /*#__PURE__*/ function() {
|
|
7626
7637
|
function MaskProcessor(engine) {
|
|
7627
7638
|
this.engine = engine;
|
|
7639
|
+
this.alphaMaskEnabled = false;
|
|
7640
|
+
this.maskMode = exports.MaskMode.NONE;
|
|
7628
7641
|
this.maskable = null;
|
|
7629
7642
|
this.stencilClearAction = {
|
|
7630
7643
|
stencilAction: exports.TextureLoadAction.clear
|
|
@@ -7635,19 +7648,17 @@ var MaskProcessor = /*#__PURE__*/ function() {
|
|
|
7635
7648
|
return 1;
|
|
7636
7649
|
};
|
|
7637
7650
|
_proto.getMaskMode = function getMaskMode(data) {
|
|
7638
|
-
var
|
|
7639
|
-
|
|
7640
|
-
|
|
7641
|
-
|
|
7642
|
-
|
|
7643
|
-
|
|
7644
|
-
|
|
7645
|
-
|
|
7646
|
-
this.maskable = ref;
|
|
7647
|
-
}
|
|
7651
|
+
var _data_isMask = data.isMask, isMask = _data_isMask === void 0 ? false : _data_isMask, _data_inverted = data.inverted, inverted = _data_inverted === void 0 ? false : _data_inverted, reference = data.reference, _data_alphaMaskEnabled = data.alphaMaskEnabled, alphaMaskEnabled = _data_alphaMaskEnabled === void 0 ? false : _data_alphaMaskEnabled;
|
|
7652
|
+
this.alphaMaskEnabled = alphaMaskEnabled;
|
|
7653
|
+
if (isMask) {
|
|
7654
|
+
this.maskMode = exports.MaskMode.MASK;
|
|
7655
|
+
} else {
|
|
7656
|
+
this.maskMode = inverted ? exports.MaskMode.REVERSE_OBSCURED : exports.MaskMode.OBSCURED;
|
|
7657
|
+
if (reference) {
|
|
7658
|
+
this.maskable = this.engine.findObject(reference);
|
|
7648
7659
|
}
|
|
7649
7660
|
}
|
|
7650
|
-
return maskMode;
|
|
7661
|
+
return this.maskMode;
|
|
7651
7662
|
};
|
|
7652
7663
|
_proto.drawStencilMask = function drawStencilMask(renderer) {
|
|
7653
7664
|
if (this.maskable) {
|
|
@@ -12491,9 +12502,7 @@ var singleSplits = [
|
|
|
12491
12502
|
occlusion: false,
|
|
12492
12503
|
transparentOcclusion: false,
|
|
12493
12504
|
side: SideMode.DOUBLE,
|
|
12494
|
-
|
|
12495
|
-
mask: 0,
|
|
12496
|
-
alphaMask: false
|
|
12505
|
+
mask: 0
|
|
12497
12506
|
};
|
|
12498
12507
|
_this.defaultGeometry = Geometry.create(_this.engine, {
|
|
12499
12508
|
attributes: {
|
|
@@ -12783,7 +12792,8 @@ var singleSplits = [
|
|
|
12783
12792
|
return geometry;
|
|
12784
12793
|
};
|
|
12785
12794
|
_proto.configureMaterial = function configureMaterial(renderer) {
|
|
12786
|
-
var side = renderer.side, occlusion = renderer.occlusion, blendMode = renderer.blending,
|
|
12795
|
+
var side = renderer.side, occlusion = renderer.occlusion, blendMode = renderer.blending, mask = renderer.mask, texture = renderer.texture;
|
|
12796
|
+
var maskMode = this.maskManager.maskMode;
|
|
12787
12797
|
var material = this.material;
|
|
12788
12798
|
material.blending = true;
|
|
12789
12799
|
material.depthTest = true;
|
|
@@ -12804,9 +12814,9 @@ var singleSplits = [
|
|
|
12804
12814
|
texParams.x = renderer.occlusion ? +renderer.transparentOcclusion : 1;
|
|
12805
12815
|
texParams.y = preMultiAlpha;
|
|
12806
12816
|
texParams.z = renderer.renderMode;
|
|
12807
|
-
texParams.w =
|
|
12817
|
+
texParams.w = maskMode;
|
|
12808
12818
|
material.setVector4("_TexParams", texParams);
|
|
12809
|
-
if (texParams.x === 0 ||
|
|
12819
|
+
if (texParams.x === 0 || this.maskManager.alphaMaskEnabled) {
|
|
12810
12820
|
material.enableMacro("ALPHA_CLIP");
|
|
12811
12821
|
} else {
|
|
12812
12822
|
material.disableMacro("ALPHA_CLIP");
|
|
@@ -12833,11 +12843,10 @@ var singleSplits = [
|
|
|
12833
12843
|
var renderer = (_baseRenderComponentData_renderer = baseRenderComponentData.renderer) != null ? _baseRenderComponentData_renderer : {};
|
|
12834
12844
|
var splits = baseRenderComponentData.splits;
|
|
12835
12845
|
var textureSheetAnimation = baseRenderComponentData.textureSheetAnimation;
|
|
12836
|
-
var
|
|
12837
|
-
if (
|
|
12838
|
-
|
|
12846
|
+
var maskOptions = baseRenderComponentData.mask;
|
|
12847
|
+
if (maskOptions) {
|
|
12848
|
+
this.maskManager.getMaskMode(maskOptions);
|
|
12839
12849
|
}
|
|
12840
|
-
var maskMode = this.maskManager.getMaskMode(data);
|
|
12841
12850
|
// TODO 新蒙板上线后移除
|
|
12842
12851
|
//-------------------------------------------------------------------------
|
|
12843
12852
|
var shapeData = renderer.shape;
|
|
@@ -12849,19 +12858,16 @@ var singleSplits = [
|
|
|
12849
12858
|
//-------------------------------------------------------------------------
|
|
12850
12859
|
this.splits = splits || singleSplits;
|
|
12851
12860
|
this.textureSheetAnimation = textureSheetAnimation;
|
|
12852
|
-
var _renderer_renderMode, _renderer_blending, _renderer_side
|
|
12861
|
+
var _renderer_renderMode, _renderer_blending, _renderer_side;
|
|
12853
12862
|
this.renderer = {
|
|
12854
12863
|
renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
|
|
12855
12864
|
blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
|
|
12856
12865
|
texture: renderer.texture ? this.engine.findObject(renderer.texture) : this.engine.emptyTexture,
|
|
12857
12866
|
occlusion: !!renderer.occlusion,
|
|
12858
|
-
transparentOcclusion: !!renderer.transparentOcclusion || maskMode === exports.MaskMode.MASK,
|
|
12867
|
+
transparentOcclusion: !!renderer.transparentOcclusion || this.maskManager.maskMode === exports.MaskMode.MASK,
|
|
12859
12868
|
side: (_renderer_side = renderer.side) != null ? _renderer_side : SideMode.DOUBLE,
|
|
12860
12869
|
mask: this.maskManager.getRefValue(),
|
|
12861
|
-
shape: shapeGeometry
|
|
12862
|
-
maskMode: maskMode,
|
|
12863
|
-
//@ts-expect-error TODO 新蒙版兼容老数据需要增加纹理透明度蒙版是否开启参数
|
|
12864
|
-
alphaMask: (_renderer_alphaMask = renderer.alphaMask) != null ? _renderer_alphaMask : false
|
|
12870
|
+
shape: shapeGeometry
|
|
12865
12871
|
};
|
|
12866
12872
|
this.configureMaterial(this.renderer);
|
|
12867
12873
|
if (baseRenderComponentData.geometry) {
|
|
@@ -13204,17 +13210,15 @@ exports.ShapeComponent = /*#__PURE__*/ function(BaseRenderComponent) {
|
|
|
13204
13210
|
break;
|
|
13205
13211
|
}
|
|
13206
13212
|
}
|
|
13207
|
-
|
|
13208
|
-
|
|
13209
|
-
maskProps.ref = this.engine.findObject(maskProps.ref);
|
|
13213
|
+
if (data.mask) {
|
|
13214
|
+
this.maskManager.getMaskMode(data.mask);
|
|
13210
13215
|
}
|
|
13211
|
-
var maskMode = this.maskManager.getMaskMode(data);
|
|
13212
13216
|
var maskRef = this.maskManager.getRefValue();
|
|
13213
13217
|
this.material.stencilRef = maskRef !== undefined ? [
|
|
13214
13218
|
maskRef,
|
|
13215
13219
|
maskRef
|
|
13216
13220
|
] : undefined;
|
|
13217
|
-
setMaskMode(this.material, maskMode);
|
|
13221
|
+
setMaskMode(this.material, this.maskManager.maskMode);
|
|
13218
13222
|
};
|
|
13219
13223
|
_create_class(ShapeComponent, [
|
|
13220
13224
|
{
|
|
@@ -19689,11 +19693,7 @@ exports.ParticleSystem = /*#__PURE__*/ function(Component) {
|
|
|
19689
19693
|
var maskMode = exports.MaskMode.NONE;
|
|
19690
19694
|
var maskRef = 0;
|
|
19691
19695
|
if (data.mask) {
|
|
19692
|
-
|
|
19693
|
-
if (maskProps && maskProps.ref) {
|
|
19694
|
-
maskProps.ref = this.engine.findObject(maskProps.ref);
|
|
19695
|
-
}
|
|
19696
|
-
maskMode = this.maskManager.getMaskMode(data);
|
|
19696
|
+
maskMode = this.maskManager.getMaskMode(data.mask);
|
|
19697
19697
|
maskRef = this.maskManager.getRefValue();
|
|
19698
19698
|
}
|
|
19699
19699
|
return {
|
|
@@ -27546,13 +27546,13 @@ function processMask(renderContent) {
|
|
|
27546
27546
|
}
|
|
27547
27547
|
if (maskMode === exports.MaskMode.MASK) {
|
|
27548
27548
|
renderContent.mask = {
|
|
27549
|
-
|
|
27549
|
+
isMask: true
|
|
27550
27550
|
};
|
|
27551
27551
|
currentMaskComponent = renderContent.id;
|
|
27552
27552
|
} else if (maskMode === ObscuredMode.OBSCURED || maskMode === ObscuredMode.REVERSE_OBSCURED) {
|
|
27553
27553
|
renderContent.mask = {
|
|
27554
|
-
|
|
27555
|
-
|
|
27554
|
+
inverted: maskMode === ObscuredMode.REVERSE_OBSCURED ? true : false,
|
|
27555
|
+
reference: {
|
|
27556
27556
|
"id": currentMaskComponent
|
|
27557
27557
|
}
|
|
27558
27558
|
};
|
|
@@ -28376,6 +28376,7 @@ function getStandardSpriteContent(sprite, transform) {
|
|
|
28376
28376
|
return ret;
|
|
28377
28377
|
}
|
|
28378
28378
|
|
|
28379
|
+
var version$1 = "2.5.0-alpha.1";
|
|
28379
28380
|
var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
|
|
28380
28381
|
var standardVersion = /^(\d+)\.(\d+)$/;
|
|
28381
28382
|
var reverseParticle = false;
|
|
@@ -28383,6 +28384,11 @@ function getStandardJSON(json) {
|
|
|
28383
28384
|
if (!json || typeof json !== "object") {
|
|
28384
28385
|
throw new Error("Invalid input: Expected a JSON object.");
|
|
28385
28386
|
}
|
|
28387
|
+
// 如果 JSON 中的 runtime 版本高于当前运行时版本,则发出警告
|
|
28388
|
+
if (checkRuntimeVersion(json)) {
|
|
28389
|
+
var _json_playerVersion;
|
|
28390
|
+
console.warn("The JSON need higher than " + ((_json_playerVersion = json.playerVersion) == null ? void 0 : _json_playerVersion.web) + " runtime version(current: " + version$1 + "). Some features may not work as expected.");
|
|
28391
|
+
}
|
|
28386
28392
|
// 修正老版本数据中,meshItem 以及 lightItem 结束行为错误问题
|
|
28387
28393
|
version22Migration(json);
|
|
28388
28394
|
if (v0.test(json.version)) {
|
|
@@ -28698,6 +28704,21 @@ function getStandardItem(item, opt) {
|
|
|
28698
28704
|
return {};
|
|
28699
28705
|
}
|
|
28700
28706
|
}
|
|
28707
|
+
/**
|
|
28708
|
+
* 检查 json.playerVersion.web 的版本号是否低于当前 runtime 的版本
|
|
28709
|
+
*/ function checkRuntimeVersion(json) {
|
|
28710
|
+
var _ref = json.playerVersion || {}, _ref_web = _ref.web, web = _ref_web === void 0 ? "" : _ref_web;
|
|
28711
|
+
if (web) {
|
|
28712
|
+
var _v0_exec;
|
|
28713
|
+
var jsonVersionMatch = (_v0_exec = v0.exec(web)) != null ? _v0_exec : [];
|
|
28714
|
+
var _v0_exec1;
|
|
28715
|
+
var runtimeVersionMatch = (_v0_exec1 = v0.exec(version$1)) != null ? _v0_exec1 : [];
|
|
28716
|
+
var major = jsonVersionMatch[1], minor = jsonVersionMatch[2];
|
|
28717
|
+
var currentMajor = runtimeVersionMatch[1], currentMinor = runtimeVersionMatch[2];
|
|
28718
|
+
return Number(currentMajor) < Number(major) || Number(currentMajor) === Number(major) && Number(currentMinor) < Number(minor);
|
|
28719
|
+
}
|
|
28720
|
+
return false;
|
|
28721
|
+
}
|
|
28701
28722
|
|
|
28702
28723
|
var _obj;
|
|
28703
28724
|
/**
|
|
@@ -31605,7 +31626,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
|
|
|
31605
31626
|
registerPlugin("particle", ParticleLoader, exports.VFXItem);
|
|
31606
31627
|
registerPlugin("cal", CalculateLoader, exports.VFXItem);
|
|
31607
31628
|
registerPlugin("interact", InteractLoader, exports.VFXItem);
|
|
31608
|
-
var version = "2.5.0-alpha.
|
|
31629
|
+
var version = "2.5.0-alpha.1";
|
|
31609
31630
|
logger.info("Core version: " + version + ".");
|
|
31610
31631
|
|
|
31611
31632
|
exports.AbstractPlugin = AbstractPlugin;
|
|
@@ -31633,6 +31654,7 @@ exports.Composition = Composition;
|
|
|
31633
31654
|
exports.DEFAULT_FONTS = DEFAULT_FONTS;
|
|
31634
31655
|
exports.DEFAULT_FPS = DEFAULT_FPS;
|
|
31635
31656
|
exports.Database = Database;
|
|
31657
|
+
exports.Deferred = Deferred;
|
|
31636
31658
|
exports.Downloader = Downloader;
|
|
31637
31659
|
exports.EFFECTS_COPY_MESH_NAME = EFFECTS_COPY_MESH_NAME;
|
|
31638
31660
|
exports.EVENT_TYPE_CLICK = EVENT_TYPE_CLICK;
|