@galacean/effects-core 2.8.10 → 2.8.12

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 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.8.10
6
+ * Version: v2.8.12
7
7
  */
8
8
 
9
9
  'use strict';
@@ -2354,8 +2354,21 @@ function colorToArr$1(hex, normalized) {
2354
2354
  return ret;
2355
2355
  }
2356
2356
  function getColorFromGradientStops(stops, key, normalize) {
2357
- if (stops.length) {
2358
- var color;
2357
+ if (stops.length === 0) {
2358
+ return [
2359
+ 0,
2360
+ 0,
2361
+ 0,
2362
+ 0
2363
+ ];
2364
+ }
2365
+ var color;
2366
+ if (key <= stops[0].time) {
2367
+ color = stops[0].color.toArray();
2368
+ } else if (key >= stops[stops.length - 1].time) {
2369
+ color = stops[stops.length - 1].color.toArray();
2370
+ } else {
2371
+ color = stops[stops.length - 1].color.toArray();
2359
2372
  for(var j = 1; j <= stops.length - 1; j++){
2360
2373
  var s0 = stops[j - 1];
2361
2374
  var s1 = stops[j];
@@ -2364,19 +2377,10 @@ function getColorFromGradientStops(stops, key, normalize) {
2364
2377
  break;
2365
2378
  }
2366
2379
  }
2367
- if (!color) {
2368
- color = stops[stops.length - 1].color.toArray();
2369
- }
2370
- return normalize ? color.map(function(n) {
2371
- return n / 255;
2372
- }) : color;
2373
2380
  }
2374
- return [
2375
- 0,
2376
- 0,
2377
- 0,
2378
- 0
2379
- ];
2381
+ return normalize ? color.map(function(n) {
2382
+ return n / 255;
2383
+ }) : color;
2380
2384
  }
2381
2385
  function colorStopsFromGradient(gradient) {
2382
2386
  var stops = [];
@@ -2403,21 +2407,6 @@ function colorStopsFromGradient(gradient) {
2403
2407
  stops = stops.sort(function(a, b) {
2404
2408
  return a.time - b.time;
2405
2409
  });
2406
- if (stops.length) {
2407
- if (stops[0].time !== 0) {
2408
- stops.unshift({
2409
- time: 0,
2410
- color: stops[0].color.clone()
2411
- });
2412
- }
2413
- var lastStop = stops[stops.length - 1];
2414
- if (lastStop.time !== 1) {
2415
- stops.push({
2416
- time: 1,
2417
- color: lastStop.color.clone()
2418
- });
2419
- }
2420
- }
2421
2410
  return stops;
2422
2411
  }
2423
2412
  function interpolateColor(a, b, s, origin) {
@@ -2506,22 +2495,24 @@ function imageDataFromGradient(gradient) {
2506
2495
  var data = image.data;
2507
2496
  var stops = colorStopsFromGradient(gradient);
2508
2497
  if (stops.length) {
2509
- data.set(stops[0].color.toArray(), 0);
2510
- for(var i = 1, cursor = 0; i < width - 1; i++){
2511
- var index = i / width;
2512
- var s0 = void 0;
2513
- var s1 = void 0;
2514
- for(var j = cursor; j < stops.length; j++){
2515
- s0 = stops[j];
2516
- s1 = stops[j + 1];
2517
- if (s0.time <= index && s1.time > index) {
2518
- break;
2498
+ for(var i = 0; i < width; i++){
2499
+ var index = i / (width - 1);
2500
+ if (index <= stops[0].time) {
2501
+ data.set(stops[0].color.toArray(), i * 4);
2502
+ } else if (index >= stops[stops.length - 1].time) {
2503
+ data.set(stops[stops.length - 1].color.toArray(), i * 4);
2504
+ } else {
2505
+ for(var j = 0; j < stops.length - 1; j++){
2506
+ var s0 = stops[j];
2507
+ var s1 = stops[j + 1];
2508
+ if (s0.time <= index && s1.time > index) {
2509
+ var color = interpolateColor(s0.color.toArray(), s1.color.toArray(), (index - s0.time) / (s1.time - s0.time));
2510
+ data.set(color, i * 4);
2511
+ break;
2512
+ }
2519
2513
  }
2520
2514
  }
2521
- var color = interpolateColor(s0.color.toArray(), s1.color.toArray(), (index - s0.time) / (s1.time - s0.time));
2522
- data.set(color, i * 4);
2523
2515
  }
2524
- data.set(stops[stops.length - 1].color.toArray(), (width - 1) * 4);
2525
2516
  }
2526
2517
  return image;
2527
2518
  }
@@ -11845,7 +11836,21 @@ var GradientValue = /*#__PURE__*/ function(ValueGetter) {
11845
11836
  };
11846
11837
  _proto.getValue = function getValue(time) {
11847
11838
  var stops = this.stops;
11839
+ if (stops.length === 0) {
11840
+ return [
11841
+ 0,
11842
+ 0,
11843
+ 0,
11844
+ 0
11845
+ ];
11846
+ }
11847
+ if (time <= stops[0].time) {
11848
+ return stops[0].color.toArray();
11849
+ }
11848
11850
  var last = stops.length - 1;
11851
+ if (time >= stops[last].time) {
11852
+ return stops[last].color.toArray();
11853
+ }
11849
11854
  for(var i = 0; i < last; i++){
11850
11855
  var a = stops[i];
11851
11856
  var b = stops[i + 1];
@@ -18487,7 +18492,7 @@ exports.PostProcessVolume = __decorate([
18487
18492
 
18488
18493
  var vert = "precision highp float;attribute vec3 aPos;attribute vec2 aUV;varying vec2 uv0;uniform mat4 effects_MatrixVP;uniform mat4 effects_MatrixInvV;uniform mat4 effects_ObjectToWorld;void main(){vec4 pos=vec4(aPos.xyz,1.0);uv0=aUV;gl_Position=effects_MatrixVP*effects_ObjectToWorld*pos;}";
18489
18494
 
18490
- var frag = "precision highp float;\n#define _MAX_STOPS 8\n#define PI 3.14159265359\nuniform vec4 _Color;uniform vec4 _Colors[_MAX_STOPS];uniform float _Stops[_MAX_STOPS];uniform int _StopsCount;uniform float _FillType;uniform vec2 _StartPoint;uniform vec2 _EndPoint;uniform sampler2D _ImageTex;uniform vec2 _ImageSize;uniform vec2 _DestSize;uniform int _ImageScaleMode;uniform mat3 _TextureTransform;uniform float _ImageScalingFactor;uniform float _ImageOpacity;varying vec2 uv0;vec4 smoothMix(vec4 a,vec4 b,float t){return mix(a,b,smoothstep(0.0,1.0,t));}float calculateAngleRatio(vec2 v1,vec2 v2){float angle=atan(v2.y,v2.x)-atan(v1.y,v1.x);if(angle<0.0)angle+=2.0*PI;return angle/(2.0*PI);}vec2 applyTransform(mat3 m,vec2 uv){uv=uv-vec2(0.5,0.5);vec3 p=m*vec3(uv,1.0);p.xy=p.xy+vec2(0.5,0.5);return p.xy;}void main(){vec4 finalColor=vec4(1.0);if(_FillType==0.0){finalColor=_Color;}else if(_FillType==1.0||_FillType==2.0||_FillType==3.0){float t=0.0;if(_FillType==1.0){vec2 gradientVector=_EndPoint-_StartPoint;vec2 pixelVector=uv0-_StartPoint;float denom=max(dot(gradientVector,gradientVector),1e-6);t=clamp(dot(pixelVector,gradientVector)/denom,0.0,1.0);}else if(_FillType==2.0){float maxRadius=max(distance(_EndPoint,_StartPoint),0.001);t=clamp(distance(uv0,_StartPoint)/maxRadius,0.0,1.0);}else{vec2 center=_StartPoint;vec2 referenceVector=_EndPoint-center;vec2 targetVector=uv0-center;if(length(targetVector)>0.001){t=calculateAngleRatio(referenceVector,targetVector);}}finalColor=_Colors[0];for(int i=1;i<_MAX_STOPS;i++){if(i>=_StopsCount)break;float prevStop=_Stops[i-1];float currStop=_Stops[i];if(t>=prevStop&&t<=currStop){float localT=(t-prevStop)/max(currStop-prevStop,1e-6);finalColor=smoothMix(_Colors[i-1],_Colors[i],localT);break;}}}else if(_FillType==4.0){vec2 uv=uv0;float rSrc=_ImageSize.x/max(_ImageSize.y,1.0);float rDst=_DestSize.x/max(_DestSize.y,1.0);bool maskOutside=false;if(_ImageScaleMode==0){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(1.0,rSrc/rDst);}else{scale=vec2(rDst/rSrc,1.0);}uv=(uv-0.5)*scale+0.5;uv=clamp(uv,0.0,1.0);}else if(_ImageScaleMode==1){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(rSrc/rDst,1.0);}else{scale=vec2(1.0,rSrc/rDst);}uv=(uv-0.5)*scale+0.5;maskOutside=true;}else if(_ImageScaleMode==2){uv=applyTransform(_TextureTransform,uv0);maskOutside=true;}else if(_ImageScaleMode==3){float aspectFix=rDst/max(rSrc,1e-6);vec2 uvTile=(uv0-0.5)*vec2(aspectFix,1.0)+0.5;float s=max(abs(_ImageScalingFactor),1e-6);uv=fract(uvTile*s);}vec4 img=texture2D(_ImageTex,uv);if(maskOutside){if(uv.x<0.0||uv.x>1.0||uv.y<0.0||uv.y>1.0){img.a=0.0;}}img.a*=_ImageOpacity;finalColor=img;}finalColor.rgb*=finalColor.a;gl_FragColor=finalColor;}";
18495
+ var frag = "precision highp float;\n#define _MAX_STOPS 8\n#define PI 3.14159265359\nuniform vec4 _Color;uniform vec4 _Colors[_MAX_STOPS];uniform float _Stops[_MAX_STOPS];uniform int _StopsCount;uniform float _FillType;uniform vec2 _StartPoint;uniform vec2 _EndPoint;uniform sampler2D _ImageTex;uniform vec2 _ImageSize;uniform vec2 _DestSize;uniform int _ImageScaleMode;uniform mat3 _TextureTransform;uniform float _ImageScalingFactor;uniform float _ImageOpacity;varying vec2 uv0;float calculateAngleRatio(vec2 v1,vec2 v2){float angle=atan(v2.y,v2.x)-atan(v1.y,v1.x);if(angle<0.0)angle+=2.0*PI;return angle/(2.0*PI);}vec2 applyTransform(mat3 m,vec2 uv){uv=uv-vec2(0.5,0.5);vec3 p=m*vec3(uv,1.0);p.xy=p.xy+vec2(0.5,0.5);return p.xy;}void main(){vec4 finalColor=vec4(1.0);if(_FillType==0.0){finalColor=_Color;}else if(_FillType==1.0||_FillType==2.0||_FillType==3.0){float t=0.0;if(_FillType==1.0){vec2 gradientVector=_EndPoint-_StartPoint;vec2 pixelVector=uv0-_StartPoint;float denom=max(dot(gradientVector,gradientVector),1e-6);t=clamp(dot(pixelVector,gradientVector)/denom,0.0,1.0);}else if(_FillType==2.0){float maxRadius=max(distance(_EndPoint,_StartPoint),0.001);t=clamp(distance(uv0,_StartPoint)/maxRadius,0.0,1.0);}else{vec2 center=_StartPoint;vec2 referenceVector=_EndPoint-center;vec2 targetVector=uv0-center;if(length(targetVector)>0.001){t=calculateAngleRatio(referenceVector,targetVector);}}if(_StopsCount>0){finalColor=_Colors[0];for(int i=1;i<_MAX_STOPS;i++){if(i>=_StopsCount)break;float localT=smoothstep(_Stops[i-1],_Stops[i],t);finalColor=mix(finalColor,_Colors[i],localT);}}}else if(_FillType==4.0){vec2 uv=uv0;float rSrc=_ImageSize.x/max(_ImageSize.y,1.0);float rDst=_DestSize.x/max(_DestSize.y,1.0);bool maskOutside=false;if(_ImageScaleMode==0){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(1.0,rSrc/rDst);}else{scale=vec2(rDst/rSrc,1.0);}uv=(uv-0.5)*scale+0.5;uv=clamp(uv,0.0,1.0);}else if(_ImageScaleMode==1){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(rSrc/rDst,1.0);}else{scale=vec2(1.0,rSrc/rDst);}uv=(uv-0.5)*scale+0.5;maskOutside=true;}else if(_ImageScaleMode==2){uv=applyTransform(_TextureTransform,uv0);maskOutside=true;}else if(_ImageScaleMode==3){float aspectFix=rDst/max(rSrc,1e-6);vec2 uvTile=(uv0-0.5)*vec2(aspectFix,1.0)+0.5;float s=max(abs(_ImageScalingFactor),1e-6);uv=fract(uvTile*s);}vec4 img=texture2D(_ImageTex,uv);if(maskOutside){if(uv.x<0.0||uv.x>1.0||uv.y<0.0||uv.y>1.0){img.a=0.0;}}img.a*=_ImageOpacity;finalColor=img;}finalColor.rgb*=finalColor.a;gl_FragColor=finalColor;}";
18491
18496
 
18492
18497
  exports.TexturePaintScaleMode = void 0;
18493
18498
  (function(TexturePaintScaleMode) {
@@ -31637,7 +31642,7 @@ function getStandardSpriteContent(sprite, transform) {
31637
31642
  return ret;
31638
31643
  }
31639
31644
 
31640
- var version$1 = "2.8.10";
31645
+ var version$1 = "2.8.12";
31641
31646
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31642
31647
  var standardVersion = /^(\d+)\.(\d+)$/;
31643
31648
  var reverseParticle = false;
@@ -35337,7 +35342,7 @@ registerPlugin("text", TextLoader);
35337
35342
  registerPlugin("sprite", SpriteLoader);
35338
35343
  registerPlugin("particle", ParticleLoader);
35339
35344
  registerPlugin("interact", InteractLoader);
35340
- var version = "2.8.10";
35345
+ var version = "2.8.12";
35341
35346
  logger.info("Core version: " + version + ".");
35342
35347
 
35343
35348
  exports.ActivationMixerPlayable = ActivationMixerPlayable;