@galacean/effects-threejs 2.7.0-alpha.2 → 2.7.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.
- package/dist/index.js +392 -247
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +392 -247
- package/dist/index.mjs.map +1 -1
- package/dist/material/three-material.d.ts +2 -2
- package/dist/three-composition.d.ts +1 -7
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Description: Galacean Effects runtime threejs plugin for the web
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
|
|
6
|
-
* Version: v2.7.0
|
|
6
|
+
* Version: v2.7.0
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
'use strict';
|
|
@@ -3684,15 +3684,30 @@ var MaterialBlending;
|
|
|
3684
3684
|
var TextOverflow;
|
|
3685
3685
|
(function(TextOverflow) {
|
|
3686
3686
|
/**
|
|
3687
|
-
*
|
|
3688
|
-
*/ TextOverflow[TextOverflow["
|
|
3687
|
+
* visible 模式下,文本内容超出边界框时,会继续显示内容,不进行裁剪或缩放。
|
|
3688
|
+
*/ TextOverflow[TextOverflow["visible"] = 0] = "visible";
|
|
3689
|
+
/**
|
|
3690
|
+
* display 模式下,会显示所有文本,文本字号大小会根据边界框调整。
|
|
3691
|
+
*/ TextOverflow[TextOverflow["display"] = 1] = "display";
|
|
3689
3692
|
/**
|
|
3690
3693
|
* clip 模式下,当文本内容超出边界框时,多余的会被截断。
|
|
3691
|
-
*/ TextOverflow[TextOverflow["clip"] =
|
|
3694
|
+
*/ TextOverflow[TextOverflow["clip"] = 2] = "clip";
|
|
3692
3695
|
/**
|
|
3693
3696
|
* ellipsis 模式下,会使用(...)来代替超出边界框的内容。
|
|
3694
|
-
*/ TextOverflow[TextOverflow["ellipsis"] =
|
|
3697
|
+
*/ TextOverflow[TextOverflow["ellipsis"] = 3] = "ellipsis";
|
|
3695
3698
|
})(TextOverflow || (TextOverflow = {}));
|
|
3699
|
+
var TextSizeMode;
|
|
3700
|
+
(function(TextSizeMode) {
|
|
3701
|
+
/**
|
|
3702
|
+
* 自适应宽度
|
|
3703
|
+
*/ TextSizeMode[TextSizeMode["autoWidth"] = 0] = "autoWidth";
|
|
3704
|
+
/**
|
|
3705
|
+
* 自适应高度
|
|
3706
|
+
*/ TextSizeMode[TextSizeMode["autoHeight"] = 1] = "autoHeight";
|
|
3707
|
+
/**
|
|
3708
|
+
* 固定宽高
|
|
3709
|
+
*/ TextSizeMode[TextSizeMode["fixed"] = 2] = "fixed";
|
|
3710
|
+
})(TextSizeMode || (TextSizeMode = {}));
|
|
3696
3711
|
var TextBaseline;
|
|
3697
3712
|
(function(TextBaseline) {
|
|
3698
3713
|
/**
|
|
@@ -4034,6 +4049,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
4034
4049
|
get MaterialBlending () { return MaterialBlending; },
|
|
4035
4050
|
get RenderMode3D () { return RenderMode3D; },
|
|
4036
4051
|
get TextOverflow () { return TextOverflow; },
|
|
4052
|
+
get TextSizeMode () { return TextSizeMode; },
|
|
4037
4053
|
get TextBaseline () { return TextBaseline; },
|
|
4038
4054
|
get TextAlignment () { return TextAlignment; },
|
|
4039
4055
|
get TextWeight () { return TextWeight; },
|
|
@@ -4148,10 +4164,16 @@ function getDirectStore(target) {
|
|
|
4148
4164
|
* 反序列化函数
|
|
4149
4165
|
*
|
|
4150
4166
|
* @param data - 对象的序列化的数据
|
|
4151
|
-
*/ _proto.fromData = function fromData(data) {
|
|
4167
|
+
*/ _proto.fromData = function fromData(data) {
|
|
4168
|
+
if (data.id !== undefined) {
|
|
4169
|
+
this.setInstanceId(data.id);
|
|
4170
|
+
}
|
|
4171
|
+
};
|
|
4152
4172
|
/**
|
|
4153
|
-
*
|
|
4154
|
-
*/ _proto.dispose = function dispose() {
|
|
4173
|
+
* 销毁当前对象
|
|
4174
|
+
*/ _proto.dispose = function dispose() {
|
|
4175
|
+
this.engine.removeInstance(this.guid);
|
|
4176
|
+
};
|
|
4155
4177
|
/**
|
|
4156
4178
|
*
|
|
4157
4179
|
* @param obj
|
|
@@ -5245,7 +5267,7 @@ var Pose = /*#__PURE__*/ function() {
|
|
|
5245
5267
|
}
|
|
5246
5268
|
for(var _iterator2 = _create_for_of_iterator_helper_loose(skeleton.defaultColorPropertyValues), _step2; !(_step2 = _iterator2()).done;){
|
|
5247
5269
|
var defaultColor = _step2.value;
|
|
5248
|
-
this.colorPropertyValues.push(defaultColor);
|
|
5270
|
+
this.colorPropertyValues.push(new Color().copyFrom(defaultColor));
|
|
5249
5271
|
}
|
|
5250
5272
|
}
|
|
5251
5273
|
var _proto = Pose.prototype;
|
|
@@ -6720,7 +6742,7 @@ var Skeleton = /*#__PURE__*/ function() {
|
|
|
6720
6742
|
break;
|
|
6721
6743
|
case 1:
|
|
6722
6744
|
this.colorAnimatedObjects.push(animatedObject);
|
|
6723
|
-
this.defaultColorPropertyValues.push(directTarget[lastPropertyName]);
|
|
6745
|
+
this.defaultColorPropertyValues.push(new Color().copyFrom(directTarget[lastPropertyName]));
|
|
6724
6746
|
this.pathToObjectIndex.set(totalPath, this.colorAnimatedObjects.length - 1);
|
|
6725
6747
|
}
|
|
6726
6748
|
};
|
|
@@ -7017,6 +7039,7 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
7017
7039
|
if (this.item) {
|
|
7018
7040
|
removeItem(this.item.components, this);
|
|
7019
7041
|
}
|
|
7042
|
+
EffectsObject.prototype.dispose.call(this);
|
|
7020
7043
|
};
|
|
7021
7044
|
_proto.start = function start() {
|
|
7022
7045
|
if (this.isStartCalled) {
|
|
@@ -12207,9 +12230,8 @@ var seed$8 = 1;
|
|
|
12207
12230
|
this.destroyed = true;
|
|
12208
12231
|
if (this.engine !== undefined) {
|
|
12209
12232
|
this.engine.removeMesh(this);
|
|
12210
|
-
// @ts-expect-error
|
|
12211
|
-
this.engine = undefined;
|
|
12212
12233
|
}
|
|
12234
|
+
RendererComponent.prototype.dispose.call(this);
|
|
12213
12235
|
};
|
|
12214
12236
|
_create_class(Mesh, [
|
|
12215
12237
|
{
|
|
@@ -13365,8 +13387,6 @@ var seed$6 = 1;
|
|
|
13365
13387
|
this.clearAction = clearAction;
|
|
13366
13388
|
this.name = "RenderFrame" + seed$6++;
|
|
13367
13389
|
var firstRP = renderPasses[0];
|
|
13368
|
-
this.emptyTexture = generateWhiteTexture(engine);
|
|
13369
|
-
this.transparentTexture = generateTransparentTexture(engine);
|
|
13370
13390
|
this.camera = camera;
|
|
13371
13391
|
this.keepColorBuffer = keepColorBuffer;
|
|
13372
13392
|
this.renderPassInfoMap.set(firstRP, {
|
|
@@ -13415,8 +13435,6 @@ var seed$6 = 1;
|
|
|
13415
13435
|
}
|
|
13416
13436
|
this.passTextureCache.dispose();
|
|
13417
13437
|
this._renderPasses.length = 0;
|
|
13418
|
-
this.emptyTexture.dispose();
|
|
13419
|
-
this.transparentTexture.dispose();
|
|
13420
13438
|
if (this.resource) {
|
|
13421
13439
|
var _this_resource_depthStencil_texture, _this_resource_depthStencil;
|
|
13422
13440
|
this.resource.color_a.dispose();
|
|
@@ -14076,7 +14094,7 @@ var Renderer = /*#__PURE__*/ function() {
|
|
|
14076
14094
|
_this.renderer = {
|
|
14077
14095
|
renderMode: RenderMode.MESH,
|
|
14078
14096
|
blending: BlendingMode.ALPHA,
|
|
14079
|
-
texture: _this.engine.
|
|
14097
|
+
texture: _this.engine.whiteTexture,
|
|
14080
14098
|
occlusion: false,
|
|
14081
14099
|
transparentOcclusion: false,
|
|
14082
14100
|
side: SideMode.DOUBLE,
|
|
@@ -14284,7 +14302,7 @@ var Renderer = /*#__PURE__*/ function() {
|
|
|
14284
14302
|
this.renderer = {
|
|
14285
14303
|
renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
|
|
14286
14304
|
blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
|
|
14287
|
-
texture: renderer.texture ? this.engine.findObject(renderer.texture) : this.engine.
|
|
14305
|
+
texture: renderer.texture ? this.engine.findObject(renderer.texture) : this.engine.whiteTexture,
|
|
14288
14306
|
occlusion: !!renderer.occlusion,
|
|
14289
14307
|
transparentOcclusion: !!renderer.transparentOcclusion || this.maskManager.maskMode === exports.MaskMode.MASK,
|
|
14290
14308
|
side: (_renderer_side = renderer.side) != null ? _renderer_side : SideMode.DOUBLE,
|
|
@@ -16128,20 +16146,26 @@ function oldBezierKeyFramesToNew(props) {
|
|
|
16128
16146
|
keyDatas.push(keyData);
|
|
16129
16147
|
lastControl = p2;
|
|
16130
16148
|
}
|
|
16131
|
-
var
|
|
16149
|
+
var calculateSlope = function(p0, p1) {
|
|
16132
16150
|
return (p1.y - p0.y) / (p1.x - p0.x + NumberEpsilon);
|
|
16133
16151
|
};
|
|
16134
16152
|
for(var i1 = 0; i1 < keyDatas.length; i1++){
|
|
16135
16153
|
var leftControl = keyDatas[i1].leftControl;
|
|
16136
16154
|
var value = keyDatas[i1].value;
|
|
16137
16155
|
var rightControl = keyDatas[i1].rightControl;
|
|
16138
|
-
var
|
|
16139
|
-
var
|
|
16156
|
+
var inSlope = 0;
|
|
16157
|
+
var outSlope = 0;
|
|
16158
|
+
if (i1 > 0) {
|
|
16159
|
+
inSlope = calculateSlope(leftControl, value);
|
|
16160
|
+
}
|
|
16161
|
+
if (i1 < keyDatas.length - 1) {
|
|
16162
|
+
outSlope = calculateSlope(value, rightControl);
|
|
16163
|
+
}
|
|
16140
16164
|
var keyframe = {
|
|
16141
16165
|
time: value.x,
|
|
16142
16166
|
value: value.y,
|
|
16143
|
-
inSlope:
|
|
16144
|
-
outSlope:
|
|
16167
|
+
inSlope: inSlope,
|
|
16168
|
+
outSlope: outSlope,
|
|
16145
16169
|
inWeight: 0,
|
|
16146
16170
|
outWeight: 0,
|
|
16147
16171
|
tangentMode: keyDatas[i1].tangentMode,
|
|
@@ -16278,8 +16302,6 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16278
16302
|
function ShapeComponent(engine) {
|
|
16279
16303
|
var _this;
|
|
16280
16304
|
_this = RendererComponent.call(this, engine) || this;
|
|
16281
|
-
_this.hasStroke = false;
|
|
16282
|
-
_this.hasFill = false;
|
|
16283
16305
|
_this.shapeDirty = true;
|
|
16284
16306
|
_this.materialDirty = true;
|
|
16285
16307
|
_this.graphicsPath = new GraphicsPath();
|
|
@@ -16298,6 +16320,8 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16298
16320
|
/**
|
|
16299
16321
|
* 用于点击测试的碰撞器
|
|
16300
16322
|
*/ _this.meshCollider = new MeshCollider();
|
|
16323
|
+
_this.fillMaterials = [];
|
|
16324
|
+
_this.strokeMaterials = [];
|
|
16301
16325
|
_this.getHitTestParams = function(force) {
|
|
16302
16326
|
var sizeMatrix = Matrix4.fromScale(_this.transform.size.x, _this.transform.size.y, 1);
|
|
16303
16327
|
var worldMatrix = sizeMatrix.premultiply(_this.transform.getWorldMatrix());
|
|
@@ -16309,15 +16333,15 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16309
16333
|
behavior: 0,
|
|
16310
16334
|
type: area.type,
|
|
16311
16335
|
triangles: area.area,
|
|
16312
|
-
backfaceCulling: _this.
|
|
16336
|
+
backfaceCulling: _this.rendererOptions.side === SideMode.FRONT
|
|
16313
16337
|
};
|
|
16314
16338
|
}
|
|
16315
16339
|
}
|
|
16316
16340
|
};
|
|
16317
|
-
_this.
|
|
16341
|
+
_this.rendererOptions = {
|
|
16318
16342
|
renderMode: RenderMode.MESH,
|
|
16319
16343
|
blending: BlendingMode.ALPHA,
|
|
16320
|
-
texture: _this.engine.
|
|
16344
|
+
texture: _this.engine.whiteTexture,
|
|
16321
16345
|
occlusion: false,
|
|
16322
16346
|
transparentOcclusion: false,
|
|
16323
16347
|
side: SideMode.DOUBLE,
|
|
@@ -16405,25 +16429,6 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16405
16429
|
indexCount: 0,
|
|
16406
16430
|
vertexCount: 0
|
|
16407
16431
|
});
|
|
16408
|
-
// Create Material
|
|
16409
|
-
//-------------------------------------------------------------------------
|
|
16410
|
-
var materialProps = {
|
|
16411
|
-
shader: {
|
|
16412
|
-
vertex: vert,
|
|
16413
|
-
fragment: frag,
|
|
16414
|
-
glslVersion: exports.GLSLVersion.GLSL1
|
|
16415
|
-
}
|
|
16416
|
-
};
|
|
16417
|
-
var fillMaterial = Material.create(engine, materialProps);
|
|
16418
|
-
var strokeMaterial = Material.create(engine, materialProps);
|
|
16419
|
-
fillMaterial.depthMask = false;
|
|
16420
|
-
fillMaterial.depthTest = true;
|
|
16421
|
-
fillMaterial.blending = true;
|
|
16422
|
-
_this.material = fillMaterial;
|
|
16423
|
-
strokeMaterial.depthMask = false;
|
|
16424
|
-
strokeMaterial.depthTest = true;
|
|
16425
|
-
strokeMaterial.blending = true;
|
|
16426
|
-
_this.materials[1] = strokeMaterial;
|
|
16427
16432
|
return _this;
|
|
16428
16433
|
}
|
|
16429
16434
|
var _proto = ShapeComponent.prototype;
|
|
@@ -16451,18 +16456,26 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16451
16456
|
if (!this.isActiveAndEnabled) {
|
|
16452
16457
|
return;
|
|
16453
16458
|
}
|
|
16454
|
-
var
|
|
16455
|
-
var
|
|
16456
|
-
|
|
16457
|
-
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
|
|
16459
|
+
var previousColorMask = false;
|
|
16460
|
+
for(var i = 0; i < this.fillMaterials.length; i++){
|
|
16461
|
+
previousColorMask = this.fillMaterials[i].colorMask;
|
|
16462
|
+
this.fillMaterials[i].colorMask = false;
|
|
16463
|
+
renderer.drawGeometry(this.geometry, this.transform.getWorldMatrix(), this.fillMaterials[i], 0);
|
|
16464
|
+
this.fillMaterials[i].colorMask = previousColorMask;
|
|
16465
|
+
}
|
|
16466
|
+
for(var i1 = 0; i1 < this.strokeMaterials.length; i1++){
|
|
16467
|
+
previousColorMask = this.strokeMaterials[i1].colorMask;
|
|
16468
|
+
this.strokeMaterials[i1].colorMask = false;
|
|
16469
|
+
renderer.drawGeometry(this.geometry, this.transform.getWorldMatrix(), this.strokeMaterials[i1], 1);
|
|
16470
|
+
this.strokeMaterials[i1].colorMask = previousColorMask;
|
|
16471
|
+
}
|
|
16461
16472
|
};
|
|
16462
16473
|
_proto.draw = function draw(renderer) {
|
|
16463
|
-
for(var i = 0; i < this.
|
|
16464
|
-
|
|
16465
|
-
|
|
16474
|
+
for(var i = 0; i < this.fillMaterials.length; i++){
|
|
16475
|
+
renderer.drawGeometry(this.geometry, this.transform.getWorldMatrix(), this.fillMaterials[i], 0);
|
|
16476
|
+
}
|
|
16477
|
+
for(var i1 = 0; i1 < this.strokeMaterials.length; i1++){
|
|
16478
|
+
renderer.drawGeometry(this.geometry, this.transform.getWorldMatrix(), this.strokeMaterials[i1], 1);
|
|
16466
16479
|
}
|
|
16467
16480
|
};
|
|
16468
16481
|
_proto.getBoundingBox = function getBoundingBox() {
|
|
@@ -16476,7 +16489,7 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16476
16489
|
var vertices = [];
|
|
16477
16490
|
var indices = [];
|
|
16478
16491
|
// Triangulate shapePrimitives, build fill and stroke shape geometry
|
|
16479
|
-
if (this.
|
|
16492
|
+
if (this.fills.length > 0) {
|
|
16480
16493
|
for(var _iterator = _create_for_of_iterator_helper_loose(shapePrimitives), _step; !(_step = _iterator()).done;){
|
|
16481
16494
|
var shapePrimitive = _step.value;
|
|
16482
16495
|
var shape = shapePrimitive.shape;
|
|
@@ -16488,7 +16501,7 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16488
16501
|
}
|
|
16489
16502
|
}
|
|
16490
16503
|
var fillIndexCount = indices.length;
|
|
16491
|
-
if (this.
|
|
16504
|
+
if (this.strokes.length > 0) {
|
|
16492
16505
|
for(var _iterator1 = _create_for_of_iterator_helper_loose(shapePrimitives), _step1; !(_step1 = _iterator1()).done;){
|
|
16493
16506
|
var shapePrimitive1 = _step1.value;
|
|
16494
16507
|
var shape1 = shapePrimitive1.shape;
|
|
@@ -16626,40 +16639,12 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16626
16639
|
}
|
|
16627
16640
|
};
|
|
16628
16641
|
_proto.updateMaterials = function updateMaterials() {
|
|
16629
|
-
for(var
|
|
16630
|
-
|
|
16631
|
-
|
|
16632
|
-
|
|
16633
|
-
|
|
16634
|
-
material.blending = true;
|
|
16635
|
-
material.depthTest = true;
|
|
16636
|
-
material.depthMask = occlusion;
|
|
16637
|
-
material.stencilRef = mask !== undefined ? [
|
|
16638
|
-
mask,
|
|
16639
|
-
mask
|
|
16640
|
-
] : undefined;
|
|
16641
|
-
setBlendMode(material, blendMode);
|
|
16642
|
-
// 兼容旧数据中模板需要渲染的情况
|
|
16643
|
-
setMaskMode(material, maskMode);
|
|
16644
|
-
setSideMode(material, side);
|
|
16645
|
-
material.shader.shaderData.properties = '_MainTex("_MainTex",2D) = "white" {}';
|
|
16646
|
-
material.setVector4("_TexOffset", new Vector4(0, 0, 1, 1));
|
|
16647
|
-
material.setTexture("_MainTex", texture);
|
|
16648
|
-
var preMultiAlpha = getPreMultiAlpha(blendMode);
|
|
16649
|
-
var texParams = new Vector4();
|
|
16650
|
-
texParams.x = renderer.occlusion ? +renderer.transparentOcclusion : 1;
|
|
16651
|
-
texParams.y = preMultiAlpha;
|
|
16652
|
-
texParams.z = renderer.renderMode;
|
|
16653
|
-
texParams.w = maskMode;
|
|
16654
|
-
material.setVector4("_TexParams", texParams);
|
|
16655
|
-
if (texParams.x === 0 || this.maskManager.alphaMaskEnabled) {
|
|
16656
|
-
material.enableMacro("ALPHA_CLIP");
|
|
16657
|
-
} else {
|
|
16658
|
-
material.disableMacro("ALPHA_CLIP");
|
|
16659
|
-
}
|
|
16642
|
+
for(var i = 0; i < this.fills.length; i++){
|
|
16643
|
+
this.updatePaintMaterial(this.fillMaterials[i], this.fills[i]);
|
|
16644
|
+
}
|
|
16645
|
+
for(var i1 = 0; i1 < this.strokes.length; i1++){
|
|
16646
|
+
this.updatePaintMaterial(this.strokeMaterials[i1], this.strokes[i1]);
|
|
16660
16647
|
}
|
|
16661
|
-
this.updatePaintMaterial(this.material, this.fills[0]);
|
|
16662
|
-
this.updatePaintMaterial(this.materials[1], this.strokes[0]);
|
|
16663
16648
|
};
|
|
16664
16649
|
_proto.updatePaintMaterial = function updatePaintMaterial(material, paint) {
|
|
16665
16650
|
material.setFloat("_FillType", paint.type);
|
|
@@ -16696,6 +16681,46 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16696
16681
|
material.setVector2("_StartPoint", startPoint);
|
|
16697
16682
|
material.setVector2("_EndPoint", endPoint);
|
|
16698
16683
|
};
|
|
16684
|
+
_proto.createMaterialFromRendererOptions = function createMaterialFromRendererOptions(rendererOptions) {
|
|
16685
|
+
var materialProps = {
|
|
16686
|
+
shader: {
|
|
16687
|
+
vertex: vert,
|
|
16688
|
+
fragment: frag,
|
|
16689
|
+
glslVersion: exports.GLSLVersion.GLSL1
|
|
16690
|
+
}
|
|
16691
|
+
};
|
|
16692
|
+
var material = Material.create(this.engine, materialProps);
|
|
16693
|
+
var renderer = rendererOptions;
|
|
16694
|
+
var side = renderer.side, occlusion = renderer.occlusion, blendMode = renderer.blending, mask = renderer.mask, texture = renderer.texture;
|
|
16695
|
+
var maskMode = this.maskManager.maskMode;
|
|
16696
|
+
material.blending = true;
|
|
16697
|
+
material.depthTest = true;
|
|
16698
|
+
material.depthMask = occlusion;
|
|
16699
|
+
material.stencilRef = mask !== undefined ? [
|
|
16700
|
+
mask,
|
|
16701
|
+
mask
|
|
16702
|
+
] : undefined;
|
|
16703
|
+
setBlendMode(material, blendMode);
|
|
16704
|
+
// 兼容旧数据中模板需要渲染的情况
|
|
16705
|
+
setMaskMode(material, maskMode);
|
|
16706
|
+
setSideMode(material, side);
|
|
16707
|
+
material.shader.shaderData.properties = '_ImageTex("_ImageTex",2D) = "white" {}';
|
|
16708
|
+
material.setVector4("_TexOffset", new Vector4(0, 0, 1, 1));
|
|
16709
|
+
material.setTexture("_ImageTex", texture);
|
|
16710
|
+
var preMultiAlpha = getPreMultiAlpha(blendMode);
|
|
16711
|
+
var texParams = new Vector4();
|
|
16712
|
+
texParams.x = renderer.occlusion ? +renderer.transparentOcclusion : 1;
|
|
16713
|
+
texParams.y = preMultiAlpha;
|
|
16714
|
+
texParams.z = renderer.renderMode;
|
|
16715
|
+
texParams.w = maskMode;
|
|
16716
|
+
material.setVector4("_TexParams", texParams);
|
|
16717
|
+
if (texParams.x === 0 || this.maskManager.alphaMaskEnabled) {
|
|
16718
|
+
material.enableMacro("ALPHA_CLIP");
|
|
16719
|
+
} else {
|
|
16720
|
+
material.disableMacro("ALPHA_CLIP");
|
|
16721
|
+
}
|
|
16722
|
+
return material;
|
|
16723
|
+
};
|
|
16699
16724
|
_proto.fromData = function fromData(data) {
|
|
16700
16725
|
RendererComponent.prototype.fromData.call(this, data);
|
|
16701
16726
|
this.shapeDirty = true;
|
|
@@ -16704,11 +16729,11 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16704
16729
|
}
|
|
16705
16730
|
var _data_renderer;
|
|
16706
16731
|
var renderer = (_data_renderer = data.renderer) != null ? _data_renderer : {};
|
|
16707
|
-
var
|
|
16708
|
-
this.
|
|
16709
|
-
renderMode:
|
|
16732
|
+
var _renderer_blending, _renderer_side;
|
|
16733
|
+
this.rendererOptions = {
|
|
16734
|
+
renderMode: RenderMode.MESH,
|
|
16710
16735
|
blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
|
|
16711
|
-
texture: renderer.texture ? this.engine.findObject(renderer.texture) : this.engine.
|
|
16736
|
+
texture: renderer.texture ? this.engine.findObject(renderer.texture) : this.engine.whiteTexture,
|
|
16712
16737
|
occlusion: !!renderer.occlusion,
|
|
16713
16738
|
transparentOcclusion: !!renderer.transparentOcclusion || this.maskManager.maskMode === exports.MaskMode.MASK,
|
|
16714
16739
|
side: (_renderer_side = renderer.side) != null ? _renderer_side : SideMode.DOUBLE,
|
|
@@ -16720,22 +16745,21 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
16720
16745
|
this.strokeWidth = (_data_strokeWidth = data.strokeWidth) != null ? _data_strokeWidth : 1;
|
|
16721
16746
|
var _data_strokeJoin;
|
|
16722
16747
|
this.strokeJoin = (_data_strokeJoin = data.strokeJoin) != null ? _data_strokeJoin : LineJoin.Miter;
|
|
16723
|
-
|
|
16724
|
-
|
|
16725
|
-
|
|
16726
|
-
|
|
16727
|
-
|
|
16728
|
-
|
|
16729
|
-
|
|
16730
|
-
|
|
16731
|
-
|
|
16732
|
-
|
|
16733
|
-
var
|
|
16734
|
-
|
|
16735
|
-
|
|
16736
|
-
|
|
16737
|
-
|
|
16738
|
-
}
|
|
16748
|
+
this.fills.length = 0;
|
|
16749
|
+
this.fillMaterials.length = 0;
|
|
16750
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(data.fills), _step; !(_step = _iterator()).done;){
|
|
16751
|
+
var fill = _step.value;
|
|
16752
|
+
this.fills.push(this.createPaint(fill));
|
|
16753
|
+
this.fillMaterials.push(this.createMaterialFromRendererOptions(this.rendererOptions));
|
|
16754
|
+
}
|
|
16755
|
+
this.strokes.length = 0;
|
|
16756
|
+
this.strokeMaterials.length = 0;
|
|
16757
|
+
for(var _iterator1 = _create_for_of_iterator_helper_loose(data.strokes), _step1; !(_step1 = _iterator1()).done;){
|
|
16758
|
+
var stroke = _step1.value;
|
|
16759
|
+
this.strokes.push(this.createPaint(stroke));
|
|
16760
|
+
this.strokeMaterials.push(this.createMaterialFromRendererOptions(this.rendererOptions));
|
|
16761
|
+
}
|
|
16762
|
+
this.materials = [].concat(this.fillMaterials, this.strokeMaterials);
|
|
16739
16763
|
switch(data.type){
|
|
16740
16764
|
case ShapePrimitiveType.Custom:
|
|
16741
16765
|
{
|
|
@@ -17253,11 +17277,11 @@ var vertex = "\nprecision highp float;\n\nattribute vec2 aPoint;\nuniform vec4 u
|
|
|
17253
17277
|
var fragment = "\nprecision highp float;\n\n#define fragColor gl_FragColor\n\nvarying vec4 vColor;\nvoid main() {\n gl_FragColor = vColor*vColor.a;\n}\n";
|
|
17254
17278
|
var seed$5 = 1;
|
|
17255
17279
|
var InteractMesh = /*#__PURE__*/ function() {
|
|
17256
|
-
function InteractMesh(props,
|
|
17280
|
+
function InteractMesh(props, transform, engine) {
|
|
17257
17281
|
this.transform = transform;
|
|
17258
17282
|
this.engine = engine;
|
|
17259
17283
|
this.color = props.options.previewColor;
|
|
17260
|
-
var material = this.createMaterial(
|
|
17284
|
+
var material = this.createMaterial();
|
|
17261
17285
|
var geometry = this.createGeometry();
|
|
17262
17286
|
this.mesh = this.createMesh(geometry, material);
|
|
17263
17287
|
this.updateMesh();
|
|
@@ -17280,7 +17304,7 @@ var InteractMesh = /*#__PURE__*/ function() {
|
|
|
17280
17304
|
material.setVector4("uPos", uPos);
|
|
17281
17305
|
material.setQuaternion("uQuat", tempQuat);
|
|
17282
17306
|
};
|
|
17283
|
-
_proto.createMaterial = function createMaterial(
|
|
17307
|
+
_proto.createMaterial = function createMaterial() {
|
|
17284
17308
|
var _this_engine_renderer;
|
|
17285
17309
|
var macros = [
|
|
17286
17310
|
[
|
|
@@ -17294,7 +17318,6 @@ var InteractMesh = /*#__PURE__*/ function() {
|
|
|
17294
17318
|
vertex: vertex,
|
|
17295
17319
|
fragment: fragment,
|
|
17296
17320
|
glslVersion: exports.GLSLVersion.GLSL1,
|
|
17297
|
-
cacheId: "" + rendererOptions.cachePrefix + "_effects_interact",
|
|
17298
17321
|
macros: macros
|
|
17299
17322
|
}
|
|
17300
17323
|
};
|
|
@@ -17416,19 +17439,33 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
17416
17439
|
return _this;
|
|
17417
17440
|
}
|
|
17418
17441
|
var _proto = InteractComponent.prototype;
|
|
17419
|
-
|
|
17442
|
+
/**
|
|
17443
|
+
* 获取拖拽范围 X 轴
|
|
17444
|
+
* @returns 拖拽范围 [min, max]
|
|
17445
|
+
*/ _proto.getDragRangeX = function getDragRangeX() {
|
|
17420
17446
|
return this.dragRange.dxRange;
|
|
17421
17447
|
};
|
|
17422
|
-
|
|
17448
|
+
/**
|
|
17449
|
+
* 设置拖拽范围 X 轴
|
|
17450
|
+
* @param min 最小值
|
|
17451
|
+
* @param max 最大值
|
|
17452
|
+
*/ _proto.setDragRangeX = function setDragRangeX(min, max) {
|
|
17423
17453
|
this.dragRange.dxRange = [
|
|
17424
17454
|
min,
|
|
17425
17455
|
max
|
|
17426
17456
|
];
|
|
17427
17457
|
};
|
|
17428
|
-
|
|
17458
|
+
/**
|
|
17459
|
+
* 获取拖拽范围 Y 轴
|
|
17460
|
+
* @returns 拖拽范围 [min, max]
|
|
17461
|
+
*/ _proto.getDragRangeY = function getDragRangeY() {
|
|
17429
17462
|
return this.dragRange.dyRange;
|
|
17430
17463
|
};
|
|
17431
|
-
|
|
17464
|
+
/**
|
|
17465
|
+
* 设置拖拽范围 Y 轴
|
|
17466
|
+
* @param min 最小值
|
|
17467
|
+
* @param max 最大值
|
|
17468
|
+
*/ _proto.setDragRangeY = function setDragRangeY(min, max) {
|
|
17432
17469
|
this.dragRange.dyRange = [
|
|
17433
17470
|
min,
|
|
17434
17471
|
max
|
|
@@ -17436,15 +17473,11 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
17436
17473
|
};
|
|
17437
17474
|
_proto.onStart = function onStart() {
|
|
17438
17475
|
var env = this.item.engine.renderer.env;
|
|
17439
|
-
var composition = this.item.composition;
|
|
17440
17476
|
var _this_interactData_options = this.interactData.options, type = _this_interactData_options.type, showPreview = _this_interactData_options.showPreview;
|
|
17441
17477
|
if (type === InteractType.CLICK) {
|
|
17442
17478
|
this.clickable = true;
|
|
17443
17479
|
if (showPreview && env === PLAYER_OPTIONS_ENV_EDITOR) {
|
|
17444
|
-
|
|
17445
|
-
if (rendererOptions !== undefined) {
|
|
17446
|
-
this.previewContent = new InteractMesh(this.item.props.content, rendererOptions, this.transform, this.engine);
|
|
17447
|
-
}
|
|
17480
|
+
this.previewContent = new InteractMesh(this.item.props.content, this.transform, this.engine);
|
|
17448
17481
|
}
|
|
17449
17482
|
}
|
|
17450
17483
|
if (this.previewContent) {
|
|
@@ -17653,7 +17686,10 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
17653
17686
|
}
|
|
17654
17687
|
}
|
|
17655
17688
|
};
|
|
17656
|
-
|
|
17689
|
+
/**
|
|
17690
|
+
* 是否可以交互
|
|
17691
|
+
* @returns
|
|
17692
|
+
*/ _proto.canInteract = function canInteract() {
|
|
17657
17693
|
var _this_item_composition;
|
|
17658
17694
|
return Boolean((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.interactive) && this._interactive;
|
|
17659
17695
|
};
|
|
@@ -17688,7 +17724,9 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
|
|
|
17688
17724
|
get: function get() {
|
|
17689
17725
|
return this._interactive;
|
|
17690
17726
|
},
|
|
17691
|
-
set:
|
|
17727
|
+
set: /**
|
|
17728
|
+
* 是否响应点击和拖拽交互事件
|
|
17729
|
+
*/ function set(enable) {
|
|
17692
17730
|
this._interactive = enable;
|
|
17693
17731
|
if (!enable) {
|
|
17694
17732
|
// 立刻停止惯性滑动
|
|
@@ -18445,6 +18483,12 @@ var tmpScale = new Vector3(1, 1, 1);
|
|
|
18445
18483
|
this./**
|
|
18446
18484
|
* @internal
|
|
18447
18485
|
*/ transform = new Transform();
|
|
18486
|
+
this./**
|
|
18487
|
+
* 画布的像素宽度
|
|
18488
|
+
*/ pixelWidth = 0;
|
|
18489
|
+
this./**
|
|
18490
|
+
* 画布的像素高度
|
|
18491
|
+
*/ pixelHeight = 0;
|
|
18448
18492
|
this.viewportMatrix = Matrix4.fromIdentity();
|
|
18449
18493
|
this.viewMatrix = Matrix4.fromIdentity();
|
|
18450
18494
|
this.projectionMatrix = Matrix4.fromIdentity();
|
|
@@ -18459,7 +18503,7 @@ var tmpScale = new Vector3(1, 1, 1);
|
|
|
18459
18503
|
0,
|
|
18460
18504
|
0,
|
|
18461
18505
|
0
|
|
18462
|
-
] : _options_rotation;
|
|
18506
|
+
] : _options_rotation, _options_pixelWidth = options.pixelWidth, pixelWidth = _options_pixelWidth === void 0 ? 0 : _options_pixelWidth, _options_pixelHeight = options.pixelHeight, pixelHeight = _options_pixelHeight === void 0 ? 0 : _options_pixelHeight;
|
|
18463
18507
|
var euler = new Euler(rotation[0], rotation[1], rotation[2]);
|
|
18464
18508
|
var quat = new Quaternion().setFromEuler(euler);
|
|
18465
18509
|
this.options = {
|
|
@@ -18469,6 +18513,8 @@ var tmpScale = new Vector3(1, 1, 1);
|
|
|
18469
18513
|
aspect: aspect,
|
|
18470
18514
|
clipMode: clipMode
|
|
18471
18515
|
};
|
|
18516
|
+
this.pixelWidth = pixelWidth;
|
|
18517
|
+
this.pixelHeight = pixelHeight;
|
|
18472
18518
|
this.transform.setPosition(position[0], position[1], position[2]);
|
|
18473
18519
|
this.transform.setQuaternion(quat.x, quat.y, quat.z, quat.w);
|
|
18474
18520
|
this.dirty = true;
|
|
@@ -18615,6 +18661,48 @@ var tmpScale = new Vector3(1, 1, 1);
|
|
|
18615
18661
|
this.dirty = false;
|
|
18616
18662
|
}
|
|
18617
18663
|
};
|
|
18664
|
+
/**
|
|
18665
|
+
* 将世界坐标转换为屏幕像素坐标
|
|
18666
|
+
* @param position - 世界坐标
|
|
18667
|
+
* @param out - 输出的屏幕坐标,如果不传则创建新的 Vector3
|
|
18668
|
+
* @returns 屏幕坐标 (x, y 为像素坐标,左下角为(0,0),右上角为(width,height),z 为深度比例 [0,1],0=近平面,1=远平面)
|
|
18669
|
+
*/ _proto.worldToScreenPoint = function worldToScreenPoint(position, out) {
|
|
18670
|
+
this.updateMatrix();
|
|
18671
|
+
var result = out != null ? out : new Vector3();
|
|
18672
|
+
var vpMatrix = this.getViewProjectionMatrix();
|
|
18673
|
+
// 应用视图投影矩阵,得到 NDC 坐标 [-1, 1]
|
|
18674
|
+
result.set(position.x, position.y, position.z);
|
|
18675
|
+
vpMatrix.projectPoint(result, result);
|
|
18676
|
+
// 将 NDC 坐标转换为像素坐标
|
|
18677
|
+
// NDC: x,y in [-1, 1], 其中 (-1,-1) 是左下角,(1,1) 是右上角
|
|
18678
|
+
// Screen: x,y in [0, width/height], 其中 (0,0) 是左下角
|
|
18679
|
+
result.x = (result.x + 1) * 0.5 * this.pixelWidth;
|
|
18680
|
+
result.y = (result.y + 1) * 0.5 * this.pixelHeight;
|
|
18681
|
+
// 将 NDC z 值从 [-1, 1] 转换为深度比例 [0, 1]
|
|
18682
|
+
// -1 (近平面) -> 0, 1 (远平面) -> 1
|
|
18683
|
+
result.z = (result.z + 1) * 0.5;
|
|
18684
|
+
return result;
|
|
18685
|
+
};
|
|
18686
|
+
/**
|
|
18687
|
+
* 将屏幕像素坐标转换为世界坐标
|
|
18688
|
+
* @param position - 屏幕坐标 (x, y 为像素坐标,左下角为(0,0),z 为深度比例 [0,1],0=近平面,1=远平面)
|
|
18689
|
+
* @param out - 输出的世界坐标,如果不传则创建新的 Vector3
|
|
18690
|
+
* @returns 世界坐标
|
|
18691
|
+
*/ _proto.screenToWorldPoint = function screenToWorldPoint(position, out) {
|
|
18692
|
+
this.updateMatrix();
|
|
18693
|
+
var result = out != null ? out : new Vector3();
|
|
18694
|
+
var invVPMatrix = this.getInverseViewProjectionMatrix();
|
|
18695
|
+
// 将像素坐标转换为 NDC 坐标 [-1, 1]
|
|
18696
|
+
var ndcX = position.x / this.pixelWidth * 2 - 1;
|
|
18697
|
+
var ndcY = position.y / this.pixelHeight * 2 - 1;
|
|
18698
|
+
// 将深度比例 [0, 1] 转换为 NDC z 值 [-1, 1]
|
|
18699
|
+
// 0 (近平面) -> -1, 1 (远平面) -> 1
|
|
18700
|
+
var ndcZ = position.z * 2 - 1;
|
|
18701
|
+
// 应用逆视图投影矩阵
|
|
18702
|
+
result.set(ndcX, ndcY, ndcZ);
|
|
18703
|
+
invVPMatrix.projectPoint(result, result);
|
|
18704
|
+
return result;
|
|
18705
|
+
};
|
|
18618
18706
|
_create_class(Camera, [
|
|
18619
18707
|
{
|
|
18620
18708
|
key: "near",
|
|
@@ -21476,7 +21564,6 @@ function modifyMaxKeyframeShader(shader, maxVertex, maxFrag) {
|
|
|
21476
21564
|
var _proto = ParticleSystemRenderer.prototype;
|
|
21477
21565
|
_proto.onStart = function onStart() {
|
|
21478
21566
|
this._priority = this.item.renderOrder;
|
|
21479
|
-
this.particleMesh.gravityModifier.scaleXCoord(this.item.duration);
|
|
21480
21567
|
for(var _iterator = _create_for_of_iterator_helper_loose(this.meshes), _step; !(_step = _iterator()).done;){
|
|
21481
21568
|
var mesh = _step.value;
|
|
21482
21569
|
mesh.onStart();
|
|
@@ -22437,7 +22524,6 @@ exports.ParticleSystem = /*#__PURE__*/ function(Component) {
|
|
|
22437
22524
|
};
|
|
22438
22525
|
}
|
|
22439
22526
|
this.item.getHitTestParams = this.getHitTestParams;
|
|
22440
|
-
this.item._content = this;
|
|
22441
22527
|
};
|
|
22442
22528
|
_create_class(ParticleSystem, [
|
|
22443
22529
|
{
|
|
@@ -22962,7 +23048,7 @@ var tempPos = new Vector3();
|
|
|
22962
23048
|
*/ _proto.sampleAnimation = function sampleAnimation() {
|
|
22963
23049
|
var _this = this;
|
|
22964
23050
|
var boundItem = this.boundObject;
|
|
22965
|
-
var duration =
|
|
23051
|
+
var duration = this.getDuration();
|
|
22966
23052
|
var life = this.time / duration;
|
|
22967
23053
|
life = life < 0 ? 0 : life > 1 ? 1 : life;
|
|
22968
23054
|
if (this.sizeXOverLifetime) {
|
|
@@ -23432,41 +23518,45 @@ exports.ObjectBindingTrack = /*#__PURE__*/ function(TrackAsset) {
|
|
|
23432
23518
|
if (!_instanceof1(boundItem, exports.VFXItem)) {
|
|
23433
23519
|
return;
|
|
23434
23520
|
}
|
|
23435
|
-
var hasActiveTrack = false;
|
|
23436
23521
|
for(var _iterator = _create_for_of_iterator_helper_loose(this.getChildTracks()), _step; !(_step = _iterator()).done;){
|
|
23437
23522
|
var childTrack = _step.value;
|
|
23438
23523
|
if (_instanceof1(childTrack, exports.ActivationTrack)) {
|
|
23439
|
-
|
|
23524
|
+
// 添加粒子动画 clip // TODO 待移除
|
|
23525
|
+
if (boundItem.getComponent(exports.ParticleSystem)) {
|
|
23526
|
+
var particleTrack = timelineAsset.createTrack(ParticleTrack, this, "ParticleTrack");
|
|
23527
|
+
for(var _iterator1 = _create_for_of_iterator_helper_loose(childTrack.getClips()), _step1; !(_step1 = _iterator1()).done;){
|
|
23528
|
+
var activationClip = _step1.value;
|
|
23529
|
+
var particleClip = particleTrack.createClip(ParticleBehaviourPlayableAsset);
|
|
23530
|
+
particleClip.start = activationClip.start;
|
|
23531
|
+
particleClip.duration = activationClip.duration;
|
|
23532
|
+
particleClip.endBehavior = activationClip.endBehavior;
|
|
23533
|
+
}
|
|
23534
|
+
}
|
|
23535
|
+
// 添加图层帧动画动画时间 clip // TODO 待移除
|
|
23536
|
+
if (boundItem.getComponent(exports.SpriteComponent)) {
|
|
23537
|
+
var componentTimeTrack = timelineAsset.createTrack(SpriteComponentTimeTrack, this, "SpriteComponentTimeTrack");
|
|
23538
|
+
for(var _iterator2 = _create_for_of_iterator_helper_loose(childTrack.getClips()), _step2; !(_step2 = _iterator2()).done;){
|
|
23539
|
+
var activationClip1 = _step2.value;
|
|
23540
|
+
var clip = componentTimeTrack.createClip(ComponentTimePlayableAsset);
|
|
23541
|
+
clip.start = activationClip1.start;
|
|
23542
|
+
clip.duration = activationClip1.duration;
|
|
23543
|
+
clip.endBehavior = activationClip1.endBehavior;
|
|
23544
|
+
}
|
|
23545
|
+
}
|
|
23546
|
+
// 添加图层帧动画动画时间 clip // TODO 待移除
|
|
23547
|
+
if (boundItem.getComponent(exports.EffectComponent)) {
|
|
23548
|
+
var componentTimeTrack1 = timelineAsset.createTrack(EffectComponentTimeTrack, this, "EffectComponentTimeTrack");
|
|
23549
|
+
for(var _iterator3 = _create_for_of_iterator_helper_loose(childTrack.getClips()), _step3; !(_step3 = _iterator3()).done;){
|
|
23550
|
+
var activationClip2 = _step3.value;
|
|
23551
|
+
var clip1 = componentTimeTrack1.createClip(ComponentTimePlayableAsset);
|
|
23552
|
+
clip1.start = activationClip2.start;
|
|
23553
|
+
clip1.duration = activationClip2.duration;
|
|
23554
|
+
clip1.endBehavior = activationClip2.endBehavior;
|
|
23555
|
+
}
|
|
23556
|
+
}
|
|
23440
23557
|
break;
|
|
23441
23558
|
}
|
|
23442
23559
|
}
|
|
23443
|
-
if (!hasActiveTrack) {
|
|
23444
|
-
return;
|
|
23445
|
-
}
|
|
23446
|
-
// 添加粒子动画 clip // TODO 待移除
|
|
23447
|
-
if (boundItem.getComponent(exports.ParticleSystem)) {
|
|
23448
|
-
var particleTrack = timelineAsset.createTrack(ParticleTrack, this, "ParticleTrack");
|
|
23449
|
-
var particleClip = particleTrack.createClip(ParticleBehaviourPlayableAsset);
|
|
23450
|
-
particleClip.start = boundItem.start;
|
|
23451
|
-
particleClip.duration = boundItem.duration;
|
|
23452
|
-
particleClip.endBehavior = boundItem.endBehavior;
|
|
23453
|
-
}
|
|
23454
|
-
// 添加图层帧动画动画时间 clip // TODO 待移除
|
|
23455
|
-
if (boundItem.getComponent(exports.SpriteComponent)) {
|
|
23456
|
-
var componentTimeTrack = timelineAsset.createTrack(SpriteComponentTimeTrack, this, "SpriteComponentTimeTrack");
|
|
23457
|
-
var clip = componentTimeTrack.createClip(ComponentTimePlayableAsset);
|
|
23458
|
-
clip.start = boundItem.start;
|
|
23459
|
-
clip.duration = boundItem.duration;
|
|
23460
|
-
clip.endBehavior = boundItem.endBehavior;
|
|
23461
|
-
}
|
|
23462
|
-
// 添加图层帧动画动画时间 clip // TODO 待移除
|
|
23463
|
-
if (boundItem.getComponent(exports.EffectComponent)) {
|
|
23464
|
-
var componentTimeTrack1 = timelineAsset.createTrack(EffectComponentTimeTrack, this, "EffectComponentTimeTrack");
|
|
23465
|
-
var clip1 = componentTimeTrack1.createClip(ComponentTimePlayableAsset);
|
|
23466
|
-
clip1.start = boundItem.start;
|
|
23467
|
-
clip1.duration = boundItem.duration;
|
|
23468
|
-
clip1.endBehavior = boundItem.endBehavior;
|
|
23469
|
-
}
|
|
23470
23560
|
};
|
|
23471
23561
|
return ObjectBindingTrack;
|
|
23472
23562
|
}(exports.TrackAsset);
|
|
@@ -24251,13 +24341,14 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24251
24341
|
_this.pluginSystem = scene.pluginSystem;
|
|
24252
24342
|
_this.pluginSystem.initializeComposition(_assert_this_initialized(_this), scene);
|
|
24253
24343
|
_this.camera = new Camera(_this.name, _extends({}, sourceContent == null ? void 0 : sourceContent.camera, {
|
|
24254
|
-
aspect: width / height
|
|
24344
|
+
aspect: width / height,
|
|
24345
|
+
pixelWidth: width,
|
|
24346
|
+
pixelHeight: height
|
|
24255
24347
|
}));
|
|
24256
24348
|
_this.url = scene.url;
|
|
24257
24349
|
_this.interactive = true;
|
|
24258
24350
|
_this.handleItemMessage = handleItemMessage;
|
|
24259
24351
|
_this.createRenderFrame();
|
|
24260
|
-
_this.rendererOptions = null;
|
|
24261
24352
|
Composition.buildItemTree(_this.rootItem);
|
|
24262
24353
|
_this.rootComposition.setChildrenRenderOrder(0);
|
|
24263
24354
|
_this.pluginSystem.resetComposition(_assert_this_initialized(_this), _this.renderFrame);
|
|
@@ -24313,9 +24404,11 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24313
24404
|
this.restart();
|
|
24314
24405
|
}
|
|
24315
24406
|
if (this.rootComposition.isStartCalled) {
|
|
24316
|
-
this.
|
|
24407
|
+
this.setTime(this.time - this.startTime);
|
|
24408
|
+
this.resume();
|
|
24317
24409
|
} else {
|
|
24318
|
-
this.
|
|
24410
|
+
this.setTime(0);
|
|
24411
|
+
this.resume();
|
|
24319
24412
|
}
|
|
24320
24413
|
};
|
|
24321
24414
|
/**
|
|
@@ -24347,6 +24440,9 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24347
24440
|
* @param time - 相对 startTime 的时间
|
|
24348
24441
|
*/ _proto.gotoAndPlay = function gotoAndPlay(time) {
|
|
24349
24442
|
this.setTime(time);
|
|
24443
|
+
this.emit("goto", {
|
|
24444
|
+
time: time
|
|
24445
|
+
});
|
|
24350
24446
|
this.resume();
|
|
24351
24447
|
};
|
|
24352
24448
|
/**
|
|
@@ -24354,6 +24450,9 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24354
24450
|
* @param time - 相对 startTime 的时间
|
|
24355
24451
|
*/ _proto.gotoAndStop = function gotoAndStop(time) {
|
|
24356
24452
|
this.setTime(time);
|
|
24453
|
+
this.emit("goto", {
|
|
24454
|
+
time: time
|
|
24455
|
+
});
|
|
24357
24456
|
this.pause();
|
|
24358
24457
|
};
|
|
24359
24458
|
/**
|
|
@@ -24384,9 +24483,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24384
24483
|
if (pause) {
|
|
24385
24484
|
this.paused = true;
|
|
24386
24485
|
}
|
|
24387
|
-
this.emit("goto", {
|
|
24388
|
-
time: time
|
|
24389
|
-
});
|
|
24390
24486
|
};
|
|
24391
24487
|
_proto.addItem = function addItem(item) {
|
|
24392
24488
|
this.items.push(item);
|
|
@@ -24418,7 +24514,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24418
24514
|
/**
|
|
24419
24515
|
* 重置状态函数
|
|
24420
24516
|
*/ _proto.reset = function reset() {
|
|
24421
|
-
this.rendererOptions = null;
|
|
24422
24517
|
this.isEnded = false;
|
|
24423
24518
|
this.isEndCalled = false;
|
|
24424
24519
|
this.rootComposition.time = 0;
|
|
@@ -24444,9 +24539,9 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24444
24539
|
if (this.getPaused()) {
|
|
24445
24540
|
return;
|
|
24446
24541
|
}
|
|
24447
|
-
//
|
|
24542
|
+
// Scene VFXItem components lifetime function
|
|
24448
24543
|
if (!this.rootItem.isDuringPlay) {
|
|
24449
|
-
this.
|
|
24544
|
+
this.rootItem.awake();
|
|
24450
24545
|
this.rootItem.beginPlay();
|
|
24451
24546
|
}
|
|
24452
24547
|
var previousCompositionTime = this.time;
|
|
@@ -24471,19 +24566,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24471
24566
|
_proto.shouldDispose = function shouldDispose() {
|
|
24472
24567
|
return this.isEnded && this.rootItem.endBehavior === EndBehavior.destroy && !this.reusable;
|
|
24473
24568
|
};
|
|
24474
|
-
_proto.callAwake = function callAwake(item) {
|
|
24475
|
-
for(var _iterator = _create_for_of_iterator_helper_loose(item.components), _step; !(_step = _iterator()).done;){
|
|
24476
|
-
var component = _step.value;
|
|
24477
|
-
if (!component.isAwakeCalled) {
|
|
24478
|
-
component.onAwake();
|
|
24479
|
-
component.isAwakeCalled = true;
|
|
24480
|
-
}
|
|
24481
|
-
}
|
|
24482
|
-
for(var _iterator1 = _create_for_of_iterator_helper_loose(item.children), _step1; !(_step1 = _iterator1()).done;){
|
|
24483
|
-
var child = _step1.value;
|
|
24484
|
-
this.callAwake(child);
|
|
24485
|
-
}
|
|
24486
|
-
};
|
|
24487
24569
|
/**
|
|
24488
24570
|
* 更新相机
|
|
24489
24571
|
* @override
|
|
@@ -24572,7 +24654,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24572
24654
|
return (_this_renderer = this.renderer) == null ? void 0 : _this_renderer.engine;
|
|
24573
24655
|
};
|
|
24574
24656
|
/**
|
|
24575
|
-
* Item 求交测试,返回求交结果列表,x 和 y 是归一化到[-1, 1]
|
|
24657
|
+
* Item 求交测试,返回求交结果列表,x 和 y 是归一化到[-1, 1]区间的值,x 向右,y 向上
|
|
24576
24658
|
* @param x - 鼠标或触点的 x,已经归一化到[-1, 1]
|
|
24577
24659
|
* @param y - 鼠标或触点的 y,已经归一化到[-1, 1]
|
|
24578
24660
|
* @param force - 是否强制求交,没有交互信息的 Item 也要进行求交测试
|
|
@@ -24671,7 +24753,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24671
24753
|
* 合成对象销毁
|
|
24672
24754
|
*/ _proto.dispose = function dispose() {
|
|
24673
24755
|
var _this = this;
|
|
24674
|
-
var
|
|
24756
|
+
var _this_pluginSystem;
|
|
24675
24757
|
if (this.destroyed) {
|
|
24676
24758
|
return;
|
|
24677
24759
|
}
|
|
@@ -24691,7 +24773,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24691
24773
|
this.rootItem.dispose();
|
|
24692
24774
|
// FIXME: 注意这里增加了renderFrame销毁
|
|
24693
24775
|
this.renderFrame.dispose();
|
|
24694
|
-
(_this_rendererOptions = this.rendererOptions) == null ? void 0 : _this_rendererOptions.emptyTexture.dispose();
|
|
24695
24776
|
(_this_pluginSystem = this.pluginSystem) == null ? void 0 : _this_pluginSystem.destroyComposition(this);
|
|
24696
24777
|
this.update = function() {
|
|
24697
24778
|
{
|
|
@@ -24788,15 +24869,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
|
|
|
24788
24869
|
this.textureOffloaded = true;
|
|
24789
24870
|
}
|
|
24790
24871
|
};
|
|
24791
|
-
_proto.getRendererOptions = function getRendererOptions() {
|
|
24792
|
-
if (!this.rendererOptions) {
|
|
24793
|
-
this.rendererOptions = {
|
|
24794
|
-
emptyTexture: this.renderFrame.emptyTexture,
|
|
24795
|
-
cachePrefix: "-"
|
|
24796
|
-
};
|
|
24797
|
-
}
|
|
24798
|
-
return this.rendererOptions;
|
|
24799
|
-
};
|
|
24800
24872
|
/**
|
|
24801
24873
|
* 重新加载纹理
|
|
24802
24874
|
*/ _proto.reloadTexture = function reloadTexture() {
|
|
@@ -24910,7 +24982,9 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
24910
24982
|
function VFXItem(engine, props) {
|
|
24911
24983
|
var _this;
|
|
24912
24984
|
_this = EffectsObject.call(this, engine) || this;
|
|
24913
|
-
|
|
24985
|
+
/**
|
|
24986
|
+
* 元素的子元素列表
|
|
24987
|
+
*/ _this.children = [];
|
|
24914
24988
|
/**
|
|
24915
24989
|
* 元素的变换包含位置、旋转、缩放。
|
|
24916
24990
|
*/ _this.transform = new Transform();
|
|
@@ -24921,9 +24995,6 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
24921
24995
|
* 元素动画的持续时间
|
|
24922
24996
|
*/ _this.duration = 0;
|
|
24923
24997
|
/**
|
|
24924
|
-
* 元素动画的开始时间
|
|
24925
|
-
*/ _this.start = 0;
|
|
24926
|
-
/**
|
|
24927
24998
|
* 元素动画结束时行为(如何处理元素)
|
|
24928
24999
|
*/ _this.endBehavior = EndBehavior.forward;
|
|
24929
25000
|
_this.type = ItemType.base;
|
|
@@ -25043,6 +25114,7 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25043
25114
|
this.composition = vfxItem.composition;
|
|
25044
25115
|
}
|
|
25045
25116
|
if (!this.isDuringPlay && vfxItem.isDuringPlay) {
|
|
25117
|
+
this.awake();
|
|
25046
25118
|
this.beginPlay();
|
|
25047
25119
|
}
|
|
25048
25120
|
};
|
|
@@ -25218,6 +25290,21 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25218
25290
|
};
|
|
25219
25291
|
/**
|
|
25220
25292
|
* @internal
|
|
25293
|
+
*/ _proto.awake = function awake() {
|
|
25294
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(this.components), _step; !(_step = _iterator()).done;){
|
|
25295
|
+
var component = _step.value;
|
|
25296
|
+
if (!component.isAwakeCalled) {
|
|
25297
|
+
component.onAwake();
|
|
25298
|
+
component.isAwakeCalled = true;
|
|
25299
|
+
}
|
|
25300
|
+
}
|
|
25301
|
+
for(var _iterator1 = _create_for_of_iterator_helper_loose(this.children), _step1; !(_step1 = _iterator1()).done;){
|
|
25302
|
+
var child = _step1.value;
|
|
25303
|
+
child.awake();
|
|
25304
|
+
}
|
|
25305
|
+
};
|
|
25306
|
+
/**
|
|
25307
|
+
* @internal
|
|
25221
25308
|
*/ _proto.onActiveChanged = function onActiveChanged() {
|
|
25222
25309
|
if (!this.isEnabled) {
|
|
25223
25310
|
this.onEnable();
|
|
@@ -25256,12 +25343,11 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25256
25343
|
};
|
|
25257
25344
|
_proto.fromData = function fromData(data) {
|
|
25258
25345
|
EffectsObject.prototype.fromData.call(this, data);
|
|
25259
|
-
var id = data.id, name = data.name,
|
|
25346
|
+
var id = data.id, name = data.name, parentId = data.parentId, endBehavior = data.endBehavior, transform = data.transform, _data_duration = data.duration, duration = _data_duration === void 0 ? 0 : _data_duration, _data_visible = data.visible, visible = _data_visible === void 0 ? true : _data_visible;
|
|
25260
25347
|
this.props = data;
|
|
25261
25348
|
this.type = data.type;
|
|
25262
25349
|
this.id = id.toString(); // TODO 老数据 id 是 number,需要转换
|
|
25263
25350
|
this.name = name;
|
|
25264
|
-
this.start = delay ? delay : this.start;
|
|
25265
25351
|
if (transform) {
|
|
25266
25352
|
this.transform.fromData(transform);
|
|
25267
25353
|
}
|
|
@@ -25295,6 +25381,7 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25295
25381
|
if (VFXItem.isComposition(this)) {
|
|
25296
25382
|
this.instantiatePreComposition();
|
|
25297
25383
|
}
|
|
25384
|
+
this.setVisible(visible);
|
|
25298
25385
|
};
|
|
25299
25386
|
_proto.toData = function toData() {
|
|
25300
25387
|
var _this_parent;
|
|
@@ -25338,10 +25425,10 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25338
25425
|
component.dispose();
|
|
25339
25426
|
}
|
|
25340
25427
|
this.components = [];
|
|
25341
|
-
this._content = undefined;
|
|
25342
25428
|
this._composition = null;
|
|
25343
25429
|
this.transform.setValid(false);
|
|
25344
25430
|
}
|
|
25431
|
+
EffectsObject.prototype.dispose.call(this);
|
|
25345
25432
|
};
|
|
25346
25433
|
_proto.resetChildrenParent = function resetChildrenParent() {
|
|
25347
25434
|
// GE 父元素销毁子元素继承逻辑
|
|
@@ -25481,14 +25568,6 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
|
|
|
25481
25568
|
return false;
|
|
25482
25569
|
};
|
|
25483
25570
|
_create_class(VFXItem, [
|
|
25484
|
-
{
|
|
25485
|
-
key: "content",
|
|
25486
|
-
get: /**
|
|
25487
|
-
* 返回元素创建的数据
|
|
25488
|
-
*/ function get() {
|
|
25489
|
-
return this._content;
|
|
25490
|
-
}
|
|
25491
|
-
},
|
|
25492
25571
|
{
|
|
25493
25572
|
key: "composition",
|
|
25494
25573
|
get: /**
|
|
@@ -25622,7 +25701,7 @@ var ColorPlayable = /*#__PURE__*/ function(Playable) {
|
|
|
25622
25701
|
}
|
|
25623
25702
|
var colorInc = vecFill(tempColor, 1);
|
|
25624
25703
|
var colorChanged;
|
|
25625
|
-
var life = this.time /
|
|
25704
|
+
var life = this.time / this.getDuration();
|
|
25626
25705
|
var opacityOverLifetime = this.opacityOverLifetime;
|
|
25627
25706
|
var colorOverLifetime = this.colorOverLifetime;
|
|
25628
25707
|
if (colorOverLifetime) {
|
|
@@ -25906,7 +25985,7 @@ exports.SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
25906
25985
|
_this = MaskableGraphic.call(this, engine) || this;
|
|
25907
25986
|
_this.time = 0;
|
|
25908
25987
|
_this.duration = 0;
|
|
25909
|
-
_this.
|
|
25988
|
+
_this.loop = true;
|
|
25910
25989
|
/**
|
|
25911
25990
|
* @internal
|
|
25912
25991
|
*/ _this.splits = singleSplits;
|
|
@@ -25921,7 +26000,7 @@ exports.SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
25921
26000
|
var _this = this;
|
|
25922
26001
|
var time = this.time;
|
|
25923
26002
|
var duration = this.duration;
|
|
25924
|
-
if (time > duration && this.
|
|
26003
|
+
if (time > duration && this.loop) {
|
|
25925
26004
|
time = time % duration;
|
|
25926
26005
|
}
|
|
25927
26006
|
var life = Math.min(Math.max(time / duration, 0.0), 1.0);
|
|
@@ -26161,6 +26240,8 @@ exports.SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
26161
26240
|
var _data_duration;
|
|
26162
26241
|
//@ts-expect-error
|
|
26163
26242
|
this.duration = (_data_duration = data.duration) != null ? _data_duration : this.item.duration;
|
|
26243
|
+
var _data_loop;
|
|
26244
|
+
this.loop = (_data_loop = data.loop) != null ? _data_loop : true;
|
|
26164
26245
|
};
|
|
26165
26246
|
return SpriteComponent;
|
|
26166
26247
|
}(MaskableGraphic);
|
|
@@ -28913,7 +28994,8 @@ var TextLayout = /*#__PURE__*/ function() {
|
|
|
28913
28994
|
function TextLayout(options) {
|
|
28914
28995
|
this.width = 0;
|
|
28915
28996
|
this.height = 0;
|
|
28916
|
-
var _options_textHeight = options.textHeight, textHeight = _options_textHeight === void 0 ? 100 : _options_textHeight, _options_textWidth = options.textWidth, textWidth = _options_textWidth === void 0 ? 100 : _options_textWidth, _options_textOverflow = options.textOverflow, textOverflow = _options_textOverflow === void 0 ? TextOverflow.clip : _options_textOverflow, _options_textBaseline = options.textBaseline, textBaseline = _options_textBaseline === void 0 ? TextBaseline.top : _options_textBaseline, _options_textAlign = options.textAlign, textAlign = _options_textAlign === void 0 ? TextAlignment.left : _options_textAlign, _options_text = options.text, text = _options_text === void 0 ? " " : _options_text, _options_letterSpace = options.letterSpace, letterSpace = _options_letterSpace === void 0 ? 0 : _options_letterSpace, _options_lineGap = options.lineGap, lineGap = _options_lineGap === void 0 ? 0.571 : _options_lineGap, _options_autoWidth = options.autoWidth, autoWidth = _options_autoWidth === void 0 ? false : _options_autoWidth,
|
|
28997
|
+
var fontSize = options.fontSize, _options_textHeight = options.textHeight, textHeight = _options_textHeight === void 0 ? 100 : _options_textHeight, _options_textWidth = options.textWidth, textWidth = _options_textWidth === void 0 ? 100 : _options_textWidth, _options_textOverflow = options.textOverflow, textOverflow = _options_textOverflow === void 0 ? TextOverflow.clip : _options_textOverflow, _options_textBaseline = options.textBaseline, textBaseline = _options_textBaseline === void 0 ? TextBaseline.top : _options_textBaseline, _options_textAlign = options.textAlign, textAlign = _options_textAlign === void 0 ? TextAlignment.left : _options_textAlign, _options_text = options.text, text = _options_text === void 0 ? " " : _options_text, _options_letterSpace = options.letterSpace, letterSpace = _options_letterSpace === void 0 ? 0 : _options_letterSpace, _options_lineGap = options.lineGap, lineGap = _options_lineGap === void 0 ? 0.571 : _options_lineGap, _options_autoWidth = options.autoWidth, autoWidth = _options_autoWidth === void 0 ? false : _options_autoWidth, _options_lineHeight = options.lineHeight, lineHeight = _options_lineHeight === void 0 ? fontSize : _options_lineHeight, _options_useLegacyRichText = options.// @ts-expect-error
|
|
28998
|
+
useLegacyRichText, useLegacyRichText = _options_useLegacyRichText === void 0 ? false : _options_useLegacyRichText;
|
|
28917
28999
|
var tempWidth = fontSize + letterSpace;
|
|
28918
29000
|
this.autoWidth = autoWidth;
|
|
28919
29001
|
this.maxTextWidth = text.length * tempWidth;
|
|
@@ -28921,6 +29003,7 @@ var TextLayout = /*#__PURE__*/ function() {
|
|
|
28921
29003
|
this.height = textHeight;
|
|
28922
29004
|
this.letterSpace = letterSpace;
|
|
28923
29005
|
this.lineGap = lineGap;
|
|
29006
|
+
this.useLegacyRichText = useLegacyRichText;
|
|
28924
29007
|
this.overflow = textOverflow;
|
|
28925
29008
|
this.textBaseline = textBaseline;
|
|
28926
29009
|
this.textAlign = textAlign;
|
|
@@ -28971,6 +29054,38 @@ var TextLayout = /*#__PURE__*/ function() {
|
|
|
28971
29054
|
return offsetX;
|
|
28972
29055
|
};
|
|
28973
29056
|
/**
|
|
29057
|
+
* 富文本垂直对齐计算
|
|
29058
|
+
* @param style - 字体样式
|
|
29059
|
+
* @param lineHeights - 每行高度数组
|
|
29060
|
+
* @param fontSize - 字体大小
|
|
29061
|
+
* @returns 第一行基线的 Y 坐标
|
|
29062
|
+
*/ _proto.getOffsetYRich = function getOffsetYRich(style, lineHeights, fontSize) {
|
|
29063
|
+
var outlineWidth = style.outlineWidth, fontScale = style.fontScale;
|
|
29064
|
+
var total = lineHeights.reduce(function(a, b) {
|
|
29065
|
+
return a + b;
|
|
29066
|
+
}, 0);
|
|
29067
|
+
// 使用与原始 getOffsetY 相同的经验值计算
|
|
29068
|
+
// /3 计算 Y 轴偏移量,以匹配编辑器行为
|
|
29069
|
+
var offsetY = (lineHeights[0] - fontSize) / 3;
|
|
29070
|
+
// 计算基础偏移量(从画布顶部到第一行基线的距离)
|
|
29071
|
+
var baseOffset = fontSize + outlineWidth * fontScale;
|
|
29072
|
+
// 除第一行外的所有行的总高度
|
|
29073
|
+
var commonCalculation = total - lineHeights[0]; // 使用实际总高度减去第一行高度
|
|
29074
|
+
var offsetResult = 0;
|
|
29075
|
+
switch(this.textBaseline){
|
|
29076
|
+
case TextBaseline.top:
|
|
29077
|
+
offsetResult = baseOffset + offsetY;
|
|
29078
|
+
break;
|
|
29079
|
+
case TextBaseline.middle:
|
|
29080
|
+
offsetResult = (this.height * fontScale - total + this.lineGap * fontScale) / 2 + baseOffset;
|
|
29081
|
+
break;
|
|
29082
|
+
case TextBaseline.bottom:
|
|
29083
|
+
offsetResult = this.height * fontScale - commonCalculation - offsetY;
|
|
29084
|
+
break;
|
|
29085
|
+
}
|
|
29086
|
+
return offsetResult;
|
|
29087
|
+
};
|
|
29088
|
+
/**
|
|
28974
29089
|
* 设置文本框的宽度和高度
|
|
28975
29090
|
* @param width 文本框宽度
|
|
28976
29091
|
* @param height 文本框高度
|
|
@@ -29101,6 +29216,10 @@ exports.TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29101
29216
|
MaskableGraphic.prototype.onUpdate.call(this, dt);
|
|
29102
29217
|
this.updateTexture();
|
|
29103
29218
|
};
|
|
29219
|
+
_proto.onDestroy = function onDestroy() {
|
|
29220
|
+
MaskableGraphic.prototype.onDestroy.call(this);
|
|
29221
|
+
this.disposeTextTexture();
|
|
29222
|
+
};
|
|
29104
29223
|
_proto.fromData = function fromData(data) {
|
|
29105
29224
|
MaskableGraphic.prototype.fromData.call(this, data);
|
|
29106
29225
|
var interaction = data.interaction, options = data.options;
|
|
@@ -29137,19 +29256,20 @@ var TextComponentBase = /*#__PURE__*/ function() {
|
|
|
29137
29256
|
_proto.getLineCount = function getLineCount(text, init) {
|
|
29138
29257
|
var context = this.context;
|
|
29139
29258
|
var _this_textLayout = this.textLayout, letterSpace = _this_textLayout.letterSpace, overflow = _this_textLayout.overflow;
|
|
29140
|
-
|
|
29259
|
+
// const fontScale = init ? this.textStyle.fontSize / 10 : 1 / this.textStyle.fontScale;
|
|
29260
|
+
this.maxLineWidth = 0;
|
|
29141
29261
|
var width = this.textLayout.width + this.textStyle.fontOffset;
|
|
29142
29262
|
var lineCount = 1;
|
|
29143
29263
|
var x = 0;
|
|
29144
|
-
|
|
29145
|
-
|
|
29146
|
-
|
|
29147
|
-
|
|
29264
|
+
// 设置context.font的字号,确保measureText能正确计算字宽
|
|
29265
|
+
if (context) {
|
|
29266
|
+
context.font = this.getFontDesc(this.textStyle.fontSize);
|
|
29267
|
+
}
|
|
29148
29268
|
for(var i = 0; i < text.length; i++){
|
|
29149
29269
|
var _context_measureText;
|
|
29150
29270
|
var str = text[i];
|
|
29151
29271
|
var _context_measureText_width;
|
|
29152
|
-
var textMetrics = (
|
|
29272
|
+
var textMetrics = (_context_measureText_width = context == null ? void 0 : (_context_measureText = context.measureText(str)) == null ? void 0 : _context_measureText.width) != null ? _context_measureText_width : 0;
|
|
29153
29273
|
// 和浏览器行为保持一致
|
|
29154
29274
|
x += letterSpace;
|
|
29155
29275
|
// 处理文本结束行为
|
|
@@ -29474,10 +29594,17 @@ var TextComponentBase = /*#__PURE__*/ function() {
|
|
|
29474
29594
|
wrapS: glContext.CLAMP_TO_EDGE,
|
|
29475
29595
|
wrapT: glContext.CLAMP_TO_EDGE
|
|
29476
29596
|
});
|
|
29597
|
+
this.disposeTextTexture();
|
|
29477
29598
|
this.renderer.texture = texture;
|
|
29478
29599
|
this.material.setTexture("_MainTex", texture);
|
|
29479
29600
|
this.isDirty = false;
|
|
29480
29601
|
};
|
|
29602
|
+
_proto.disposeTextTexture = function disposeTextTexture() {
|
|
29603
|
+
var texture = this.renderer.texture;
|
|
29604
|
+
if (texture && texture !== this.engine.whiteTexture) {
|
|
29605
|
+
texture.dispose();
|
|
29606
|
+
}
|
|
29607
|
+
};
|
|
29481
29608
|
_proto.getFontDesc = function getFontDesc(size) {
|
|
29482
29609
|
var _this_textStyle = this.textStyle, fontSize = _this_textStyle.fontSize, fontScale = _this_textStyle.fontScale, fontFamily = _this_textStyle.fontFamily, textWeight = _this_textStyle.textWeight, fontStyle = _this_textStyle.fontStyle;
|
|
29483
29610
|
var fontDesc = "" + (size || fontSize * fontScale).toString() + "px ";
|
|
@@ -30550,10 +30677,43 @@ function version34Migration(json) {
|
|
|
30550
30677
|
}
|
|
30551
30678
|
}
|
|
30552
30679
|
}
|
|
30680
|
+
// 处理富文本lineGap兼容性
|
|
30681
|
+
processRichTextLineGapCompatibility(json);
|
|
30553
30682
|
//@ts-expect-error
|
|
30554
30683
|
json.version = "3.5";
|
|
30555
30684
|
return json;
|
|
30556
30685
|
}
|
|
30686
|
+
/**
|
|
30687
|
+
* 处理富文本 lineGap 兼容性
|
|
30688
|
+
*/ function processRichTextLineGapCompatibility(json) {
|
|
30689
|
+
if (!json.components) {
|
|
30690
|
+
return;
|
|
30691
|
+
}
|
|
30692
|
+
// 遍历所有组件,处理富文本组件
|
|
30693
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(json.components), _step; !(_step = _iterator()).done;){
|
|
30694
|
+
var component = _step.value;
|
|
30695
|
+
// 识别富文本组件并处理 lineGap 兼容性
|
|
30696
|
+
if (component.dataType === DataType.RichTextComponent && component.options) {
|
|
30697
|
+
ensureRichTextLineGap(component.options);
|
|
30698
|
+
}
|
|
30699
|
+
}
|
|
30700
|
+
}
|
|
30701
|
+
/**
|
|
30702
|
+
* 确保富文本组件有版本标识字段
|
|
30703
|
+
*/ function ensureRichTextLineGap(options) {
|
|
30704
|
+
// 检查是否已经处理过
|
|
30705
|
+
if (!options || options.useLegacyRichText !== undefined) {
|
|
30706
|
+
return;
|
|
30707
|
+
}
|
|
30708
|
+
// 根据是否存在 lineGap 字段来判断版本
|
|
30709
|
+
if (options.lineGap === undefined) {
|
|
30710
|
+
// 旧版本(没有 lineGap 字段)
|
|
30711
|
+
options.useLegacyRichText = true;
|
|
30712
|
+
} else {
|
|
30713
|
+
// 新版本(有 lineGap 字段)
|
|
30714
|
+
options.useLegacyRichText = false;
|
|
30715
|
+
}
|
|
30716
|
+
}
|
|
30557
30717
|
/**
|
|
30558
30718
|
* 根据形状获取形状几何体数据
|
|
30559
30719
|
* @param shape - 形状
|
|
@@ -31476,7 +31636,7 @@ function getStandardSpriteContent(sprite, transform) {
|
|
|
31476
31636
|
return ret;
|
|
31477
31637
|
}
|
|
31478
31638
|
|
|
31479
|
-
var version$2 = "2.7.0
|
|
31639
|
+
var version$2 = "2.7.0";
|
|
31480
31640
|
var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
|
|
31481
31641
|
var standardVersion = /^(\d+)\.(\d+)$/;
|
|
31482
31642
|
var reverseParticle = false;
|
|
@@ -32712,7 +32872,7 @@ function createTextureOptionsBySource(image, sourceFrom, id) {
|
|
|
32712
32872
|
function AssetService(engine) {
|
|
32713
32873
|
this.engine = engine;
|
|
32714
32874
|
this.builtinObjects = [];
|
|
32715
|
-
this.builtinObjects.push(
|
|
32875
|
+
this.builtinObjects.push(engine.whiteTexture);
|
|
32716
32876
|
}
|
|
32717
32877
|
var _proto = AssetService.prototype;
|
|
32718
32878
|
/**
|
|
@@ -34388,7 +34548,7 @@ var FBGeometryDataT = /*#__PURE__*/ function() {
|
|
|
34388
34548
|
this.jsonSceneData = {};
|
|
34389
34549
|
this.objectInstance = {};
|
|
34390
34550
|
this.assetLoader = new AssetLoader(this);
|
|
34391
|
-
this.
|
|
34551
|
+
this.whiteTexture = generateWhiteTexture(this);
|
|
34392
34552
|
this.transparentTexture = generateTransparentTexture(this);
|
|
34393
34553
|
}
|
|
34394
34554
|
var _proto = Engine.prototype;
|
|
@@ -34749,7 +34909,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
|
|
|
34749
34909
|
registerPlugin("particle", ParticleLoader, exports.VFXItem);
|
|
34750
34910
|
registerPlugin("cal", CalculateLoader, exports.VFXItem);
|
|
34751
34911
|
registerPlugin("interact", InteractLoader, exports.VFXItem);
|
|
34752
|
-
var version$1 = "2.7.0
|
|
34912
|
+
var version$1 = "2.7.0";
|
|
34753
34913
|
logger.info("Core version: " + version$1 + ".");
|
|
34754
34914
|
|
|
34755
34915
|
var _obj;
|
|
@@ -35068,12 +35228,13 @@ var _obj3;
|
|
|
35068
35228
|
//FIXME: 暂时不实现
|
|
35069
35229
|
throw new Error("Method not implemented.");
|
|
35070
35230
|
};
|
|
35071
|
-
_proto.dispose = function dispose(
|
|
35072
|
-
if (
|
|
35231
|
+
_proto.dispose = function dispose() {
|
|
35232
|
+
if (this.destroyed) {
|
|
35073
35233
|
return;
|
|
35074
35234
|
}
|
|
35075
35235
|
this.material.dispose();
|
|
35076
35236
|
this.destroyed = true;
|
|
35237
|
+
Material.prototype.dispose.call(this);
|
|
35077
35238
|
};
|
|
35078
35239
|
_create_class(ThreeMaterial, [
|
|
35079
35240
|
{
|
|
@@ -35560,6 +35721,7 @@ var seed = 1;
|
|
|
35560
35721
|
}
|
|
35561
35722
|
this.geometry.dispose();
|
|
35562
35723
|
this.destroyed = true;
|
|
35724
|
+
Geometry.prototype.dispose.call(this);
|
|
35563
35725
|
};
|
|
35564
35726
|
_proto.setAttributeType = function setAttributeType(name, attr, geometry, attributes, maxCount) {
|
|
35565
35727
|
var _attr_stride = attr.stride, stride = _attr_stride === void 0 ? 0 : _attr_stride, size = attr.size, offset = attr.offset, normalize = attr.normalize, _attr_type = attr.type, type = _attr_type === void 0 ? glContext.FLOAT : _attr_type;
|
|
@@ -35701,6 +35863,7 @@ var seed = 1;
|
|
|
35701
35863
|
this.mesh.clear();
|
|
35702
35864
|
this.destroyed = true;
|
|
35703
35865
|
}
|
|
35866
|
+
Mesh.prototype.dispose.call(this);
|
|
35704
35867
|
};
|
|
35705
35868
|
_create_class(ThreeMesh, [
|
|
35706
35869
|
{
|
|
@@ -35788,6 +35951,7 @@ var seed = 1;
|
|
|
35788
35951
|
* 释放纹理占用的内存
|
|
35789
35952
|
*/ _proto.dispose = function dispose() {
|
|
35790
35953
|
this.texture.dispose();
|
|
35954
|
+
Texture.prototype.dispose.call(this);
|
|
35791
35955
|
};
|
|
35792
35956
|
/**
|
|
35793
35957
|
* 通过图层设置创建贴图
|
|
@@ -35927,25 +36091,6 @@ var seed = 1;
|
|
|
35927
36091
|
}
|
|
35928
36092
|
}
|
|
35929
36093
|
};
|
|
35930
|
-
/**
|
|
35931
|
-
* 获取 render 参数
|
|
35932
|
-
*
|
|
35933
|
-
* @returns
|
|
35934
|
-
*/ _proto.getRendererOptions = function getRendererOptions() {
|
|
35935
|
-
var emptyTexture = ThreeTexture.createWithData(this.renderer.engine, {
|
|
35936
|
-
data: new Uint8Array(4).fill(255),
|
|
35937
|
-
width: 1,
|
|
35938
|
-
height: 1
|
|
35939
|
-
});
|
|
35940
|
-
emptyTexture.texture.needsUpdate = true;
|
|
35941
|
-
if (!this.rendererOptions) {
|
|
35942
|
-
this.rendererOptions = {
|
|
35943
|
-
emptyTexture: emptyTexture,
|
|
35944
|
-
cachePrefix: "-"
|
|
35945
|
-
};
|
|
35946
|
-
}
|
|
35947
|
-
return this.rendererOptions;
|
|
35948
|
-
};
|
|
35949
36094
|
return ThreeComposition;
|
|
35950
36095
|
}(Composition);
|
|
35951
36096
|
/**
|
|
@@ -36187,10 +36332,10 @@ exports.ThreeSpriteComponent = /*#__PURE__*/ function(SpriteComponent) {
|
|
|
36187
36332
|
* 销毁方法
|
|
36188
36333
|
*
|
|
36189
36334
|
*/ _proto.dispose = function dispose() {
|
|
36190
|
-
SpriteComponent.prototype.dispose.call(this);
|
|
36191
36335
|
if (!this.isActiveAndEnabled) {
|
|
36192
36336
|
this.threeMesh.clear();
|
|
36193
36337
|
}
|
|
36338
|
+
SpriteComponent.prototype.dispose.call(this);
|
|
36194
36339
|
};
|
|
36195
36340
|
_proto.fromData = function fromData(data) {
|
|
36196
36341
|
SpriteComponent.prototype.fromData.call(this, data);
|
|
@@ -36345,7 +36490,7 @@ setMaxSpriteMeshItemCount(8);
|
|
|
36345
36490
|
*/ Mesh.create = function(engine, props) {
|
|
36346
36491
|
return new ThreeMesh(engine, props);
|
|
36347
36492
|
};
|
|
36348
|
-
var version = "2.7.0
|
|
36493
|
+
var version = "2.7.0";
|
|
36349
36494
|
logger.info("THREEJS plugin version: " + version + ".");
|
|
36350
36495
|
|
|
36351
36496
|
exports.AbstractPlugin = AbstractPlugin;
|