@galacean/effects 1.2.3 → 1.3.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.
package/dist/weapp.js CHANGED
@@ -680,7 +680,7 @@ function asserts(condition, msg) {
680
680
  * Name: @galacean/effects-specification
681
681
  * Description: Galacean Effects JSON Specification
682
682
  * Author: Ant Group CO., Ltd.
683
- * Version: v1.0.1
683
+ * Version: v1.1.0-alpha.0
684
684
  */
685
685
 
686
686
  /*********************************************/
@@ -1061,6 +1061,16 @@ var CompositionEndBehavior$1;
1061
1061
  CompositionEndBehavior[CompositionEndBehavior["pause_destroy"] = END_BEHAVIOR_PAUSE_AND_DESTROY$1] = "pause_destroy";
1062
1062
  })(CompositionEndBehavior$1 || (CompositionEndBehavior$1 = {}));
1063
1063
 
1064
+ /**
1065
+ * 动态换图类型
1066
+ * @since 1.3.0
1067
+ */
1068
+ var BackgroundType$1;
1069
+ (function (BackgroundType) {
1070
+ BackgroundType["video"] = "video";
1071
+ BackgroundType["image"] = "image";
1072
+ })(BackgroundType$1 || (BackgroundType$1 = {}));
1073
+
1064
1074
  /*********************************************/
1065
1075
  /* 基本数值属性参数 */
1066
1076
  /*********************************************/
@@ -1350,6 +1360,7 @@ var FontStyle$1;
1350
1360
 
1351
1361
  var index$1 = /*#__PURE__*/Object.freeze({
1352
1362
  __proto__: null,
1363
+ get BackgroundType () { return BackgroundType$1; },
1353
1364
  get BezierKeyframeType () { return BezierKeyframeType$1; },
1354
1365
  get BlendingMode () { return BlendingMode$1; },
1355
1366
  BloomFilterThresholdAvgColor: BloomFilterThresholdAvgColor,
@@ -10147,10 +10158,8 @@ function loadBlob(url) {
10147
10158
  /**
10148
10159
  * 异步加载一个视频文件
10149
10160
  * @param url - 视频文件的 URL 或 MediaProvider 对象
10150
- * @param options - 加载参数
10151
10161
  */
10152
- function loadVideo(url, options) {
10153
- if (options === void 0) { options = {}; }
10162
+ function loadVideo(url) {
10154
10163
  return __awaiter(this, void 0, void 0, function () {
10155
10164
  var video;
10156
10165
  return __generator(this, function (_a) {
@@ -10163,9 +10172,6 @@ function loadVideo(url, options) {
10163
10172
  }
10164
10173
  video.crossOrigin = 'anonymous';
10165
10174
  video.muted = true;
10166
- if (options.loop) {
10167
- video.addEventListener('ended', function () { return video.play(); });
10168
- }
10169
10175
  if (isAndroid()) {
10170
10176
  video.setAttribute('renderer', 'standard');
10171
10177
  }
@@ -19649,6 +19655,26 @@ function getBackgroundImage(template, variables) {
19649
19655
  }
19650
19656
  return templateBackground;
19651
19657
  }
19658
+ function loadMedia(url, loadFn) {
19659
+ return __awaiter(this, void 0, void 0, function () {
19660
+ return __generator(this, function (_a) {
19661
+ switch (_a.label) {
19662
+ case 0:
19663
+ if (!Array.isArray(url)) return [3 /*break*/, 5];
19664
+ _a.label = 1;
19665
+ case 1:
19666
+ _a.trys.push([1, 3, , 5]);
19667
+ return [4 /*yield*/, loadFn(url[0])];
19668
+ case 2: return [2 /*return*/, _a.sent()];
19669
+ case 3:
19670
+ _a.sent();
19671
+ return [4 /*yield*/, loadFn(url[1])];
19672
+ case 4: return [2 /*return*/, _a.sent()];
19673
+ case 5: return [2 /*return*/, loadFn(url)];
19674
+ }
19675
+ });
19676
+ });
19677
+ }
19652
19678
  function drawImageAndTemplate(viewer, image, template, variables, opt) {
19653
19679
  var _a;
19654
19680
  return __awaiter(this, void 0, void 0, function () {
@@ -21540,7 +21566,7 @@ var filters = {
21540
21566
  * Name: @galacean/effects-specification
21541
21567
  * Description: Galacean Effects JSON Specification
21542
21568
  * Author: Ant Group CO., Ltd.
21543
- * Version: v1.0.1
21569
+ * Version: v1.1.0-alpha.0
21544
21570
  */
21545
21571
 
21546
21572
  /*********************************************/
@@ -21919,6 +21945,16 @@ var CompositionEndBehavior;
21919
21945
  CompositionEndBehavior[CompositionEndBehavior["pause_destroy"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = "pause_destroy";
21920
21946
  })(CompositionEndBehavior || (CompositionEndBehavior = {}));
21921
21947
 
21948
+ /**
21949
+ * 动态换图类型
21950
+ * @since 1.3.0
21951
+ */
21952
+ var BackgroundType;
21953
+ (function (BackgroundType) {
21954
+ BackgroundType["video"] = "video";
21955
+ BackgroundType["image"] = "image";
21956
+ })(BackgroundType || (BackgroundType = {}));
21957
+
21922
21958
  /*********************************************/
21923
21959
  /* 基本数值属性参数 */
21924
21960
  /*********************************************/
@@ -23003,11 +23039,9 @@ function getStandardImage(image, index, imageTags) {
23003
23039
  else if (image.url) {
23004
23040
  return {
23005
23041
  url: image.url,
23006
- type: image.type,
23007
23042
  webp: image.webp,
23008
23043
  renderLevel: renderLevel,
23009
23044
  oriY: oriY,
23010
- loop: image.loop,
23011
23045
  };
23012
23046
  }
23013
23047
  else if (image && image.sourceType) {
@@ -23759,79 +23793,61 @@ var AssetManager = /** @class */ (function () {
23759
23793
  _a = this.options, useCompressedTexture = _a.useCompressedTexture, variables = _a.variables;
23760
23794
  baseUrl = this.baseUrl;
23761
23795
  jobs = images.map(function (img, idx) { return __awaiter(_this, void 0, void 0, function () {
23762
- var png, webp, imageURL, webpURL, template, result, url_1, name_1, templateImage, loop, compressed, src, bufferURL, _a, url, image;
23763
- var _b, _c, _d;
23764
- return __generator(this, function (_e) {
23765
- switch (_e.label) {
23796
+ var png, webp, imageURL, webpURL, template, isTemplateV2, background, url_1, isVideo, loadFn, resultImage, resultImage, compressed, src, bufferURL, _a, url, image;
23797
+ return __generator(this, function (_b) {
23798
+ switch (_b.label) {
23766
23799
  case 0:
23767
- if (!usage[idx]) return [3 /*break*/, 19];
23800
+ if (!usage[idx]) {
23801
+ return [2 /*return*/, undefined];
23802
+ }
23768
23803
  png = img.url, webp = img.webp;
23769
23804
  imageURL = new weapp.URL(png, baseUrl).href;
23770
23805
  webpURL = webp && new weapp.URL(webp, baseUrl).href;
23771
- if (!('template' in img)) return [3 /*break*/, 16];
23806
+ if (!('template' in img)) return [3 /*break*/, 13];
23772
23807
  template = img.template;
23773
- result = void 0;
23774
- if (!('v' in template && template.v === 2 && template.background)) return [3 /*break*/, 9];
23808
+ isTemplateV2 = 'v' in template && template.v === 2 && template.background;
23809
+ background = isTemplateV2 ? template.background : undefined;
23810
+ if (!(isTemplateV2 && background)) return [3 /*break*/, 8];
23775
23811
  url_1 = getBackgroundImage(template, variables);
23776
- if (!(url_1 instanceof Array)) return [3 /*break*/, 6];
23777
- name_1 = template.background.name;
23778
- _e.label = 1;
23812
+ isVideo = background.type === BackgroundType$1.video;
23813
+ loadFn = background && isVideo ? loadVideo : loadImage;
23814
+ _b.label = 1;
23779
23815
  case 1:
23780
- _e.trys.push([1, 3, , 5]);
23781
- _b = {};
23782
- return [4 /*yield*/, loadImage(url_1[0])];
23816
+ _b.trys.push([1, 6, , 7]);
23817
+ return [4 /*yield*/, loadMedia(url_1, loadFn)];
23783
23818
  case 2:
23784
- result = (_b.image = _e.sent(),
23785
- _b.url = url_1[0],
23786
- _b);
23787
- return [3 /*break*/, 5];
23819
+ resultImage = _b.sent();
23820
+ if (!(resultImage instanceof weapp.HTMLVideoElement)) return [3 /*break*/, 3];
23821
+ return [2 /*return*/, resultImage];
23788
23822
  case 3:
23789
- _e.sent();
23790
- _c = {};
23791
- return [4 /*yield*/, loadImage(url_1[1])];
23792
- case 4:
23793
- result = (_c.image = _e.sent(),
23794
- _c.url = url_1[1],
23795
- _c);
23796
- return [3 /*break*/, 5];
23797
- case 5:
23798
- if (variables) {
23799
- variables[name_1] = result.url;
23823
+ // 如果是加载图片且是数组,设置变量,视频情况下不需要
23824
+ if (background && !Array.isArray(url_1) && variables) {
23825
+ variables[background.name] = url_1;
23800
23826
  }
23801
- return [3 /*break*/, 8];
23827
+ return [4 /*yield*/, combineImageTemplate(resultImage, template, variables, this.options, img.oriY === -1)];
23828
+ case 4: return [2 /*return*/, _b.sent()];
23829
+ case 5: return [3 /*break*/, 7];
23802
23830
  case 6:
23803
- if (!(typeof url_1 === 'string')) return [3 /*break*/, 8];
23804
- _d = {};
23805
- return [4 /*yield*/, loadImage(url_1)];
23806
- case 7:
23807
- result = (_d.image = _e.sent(),
23808
- _d.url = url_1,
23809
- _d);
23810
- _e.label = 8;
23811
- case 8: return [3 /*break*/, 11];
23812
- case 9: return [4 /*yield*/, loadWebPOptional(imageURL, webpURL)];
23813
- case 10:
23814
- // 测试场景:'年兽大爆炸——8个彩蛋t1'
23815
- result = _e.sent();
23816
- _e.label = 11;
23831
+ _b.sent();
23832
+ throw new Error("Failed to load. Check the template or if the URL is ".concat(isVideo ? 'video' : 'image', " type, URL: ").concat(url_1, "."));
23833
+ case 7: return [3 /*break*/, 12];
23834
+ case 8:
23835
+ _b.trys.push([8, 11, , 12]);
23836
+ return [4 /*yield*/, loadWebPOptional(imageURL, webpURL)];
23837
+ case 9:
23838
+ resultImage = _b.sent();
23839
+ return [4 /*yield*/, combineImageTemplate(resultImage.image, template, variables, this.options, img.oriY === -1)];
23840
+ case 10: return [2 /*return*/, _b.sent()];
23817
23841
  case 11:
23818
- templateImage = void 0;
23819
- _e.label = 12;
23820
- case 12:
23821
- _e.trys.push([12, 14, , 15]);
23822
- return [4 /*yield*/, combineImageTemplate(result.image, template, variables, this.options, img.oriY === -1)];
23842
+ _b.sent();
23843
+ throw new Error("Failed to load. Check the template, URL: ".concat(imageURL, "."));
23844
+ case 12: return [3 /*break*/, 14];
23823
23845
  case 13:
23824
- templateImage = _e.sent();
23825
- return [3 /*break*/, 15];
23826
- case 14:
23827
- _e.sent();
23828
- throw new Error("image template fail: ".concat(imageURL));
23829
- case 15: return [2 /*return*/, templateImage];
23830
- case 16:
23831
23846
  if ('type' in img && img.type === 'video') {
23832
- loop = img.loop;
23833
23847
  // 视频
23834
- return [2 /*return*/, loadVideo(img.url, { loop: loop })];
23848
+ // TODO: 2024.03.28 后面考虑下掉非推荐的视频元素使用方式
23849
+ console.warn('The video element is deprecated. Use template BackgroundType.video instead.');
23850
+ return [2 /*return*/, loadVideo(img.url)];
23835
23851
  }
23836
23852
  else if ('compressed' in img && useCompressedTexture && compressedTexture) {
23837
23853
  compressed = img.compressed;
@@ -23857,13 +23873,12 @@ var AssetManager = /** @class */ (function () {
23857
23873
  img instanceof Texture) {
23858
23874
  return [2 /*return*/, img];
23859
23875
  }
23860
- _e.label = 17;
23861
- case 17: return [4 /*yield*/, loadWebPOptional(imageURL, webpURL)];
23862
- case 18:
23863
- _a = _e.sent(), url = _a.url, image = _a.image;
23876
+ _b.label = 14;
23877
+ case 14: return [4 /*yield*/, loadWebPOptional(imageURL, webpURL)];
23878
+ case 15:
23879
+ _a = _b.sent(), url = _a.url, image = _a.image;
23864
23880
  this.assets[idx] = { url: url, type: exports.TextureSourceType.image };
23865
23881
  return [2 /*return*/, image];
23866
- case 19: return [2 /*return*/, undefined];
23867
23882
  }
23868
23883
  });
23869
23884
  }); });
@@ -30440,7 +30455,7 @@ Renderer.create = function (canvas, framework, renderOptions) {
30440
30455
  Engine.create = function (gl) {
30441
30456
  return new GLEngine(gl);
30442
30457
  };
30443
- var version = "1.2.3";
30458
+ var version = "1.3.0-alpha.0";
30444
30459
  logger.info('player version: ' + version);
30445
30460
 
30446
30461
  exports.AbstractPlugin = AbstractPlugin;
@@ -30646,6 +30661,7 @@ exports.itemVert = itemVert;
30646
30661
  exports.loadBinary = loadBinary;
30647
30662
  exports.loadBlob = loadBlob;
30648
30663
  exports.loadImage = loadImage;
30664
+ exports.loadMedia = loadMedia;
30649
30665
  exports.loadVideo = loadVideo;
30650
30666
  exports.loadWebPOptional = loadWebPOptional;
30651
30667
  exports.logger = logger;