@galacean/effects-plugin-downgrade 2.0.0-alpha.28 → 2.0.0-alpha.29

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/alipay.mjs CHANGED
@@ -151,17 +151,6 @@ typeof SuppressedError === "function" ? SuppressedError : function _SuppressedEr
151
151
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
152
152
  };
153
153
 
154
- function _extends() {
155
- _extends = Object.assign || function assign(target) {
156
- for(var i = 1; i < arguments.length; i++){
157
- var source = arguments[i];
158
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
159
- }
160
- return target;
161
- };
162
- return _extends.apply(this, arguments);
163
- }
164
-
165
154
  function _array_like_to_array(arr, len) {
166
155
  if (len == null || len > arr.length) len = arr.length;
167
156
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -197,7 +186,9 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
197
186
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
198
187
  }
199
188
 
200
- var infoList = {
189
+ /**
190
+ * 部分手机厂商和 iPhone 机型列表
191
+ */ var infoList = {
201
192
  vender: [
202
193
  "SAMSUNG"
203
194
  ],
@@ -456,7 +447,9 @@ var infoList = {
456
447
  }
457
448
  ]
458
449
  };
459
- var downgradeModels = {
450
+ /**
451
+ * 被降级的硬件机型列表
452
+ */ var downgradeModels = {
460
453
  android: [
461
454
  "OPPO R9s Plus",
462
455
  "GM1910",
@@ -504,7 +497,9 @@ var downgradeModels = {
504
497
  "iPhone1,1"
505
498
  ]
506
499
  };
507
- var downgradeVersions = {
500
+ /**
501
+ * 被降级的系统版本列表
502
+ */ var downgradeVersions = {
508
503
  android: [],
509
504
  iOS: [
510
505
  "16.7",
@@ -516,7 +511,9 @@ var downgradeVersions = {
516
511
  "16.7.6"
517
512
  ]
518
513
  };
519
- var devtoolNameMap = {
514
+ /**
515
+ * 微信开发环境机型名称替换表
516
+ */ var devtoolNameMap = {
520
517
  wechat: {
521
518
  "iPhone 6/7/8": "iPhone 8",
522
519
  "iPhone 6/7/8 Plus": "iPhone 8 Plus",
@@ -534,7 +531,11 @@ var DeviceLevel;
534
531
  DeviceLevel["Unknown"] = "unknown";
535
532
  })(DeviceLevel || (DeviceLevel = {}));
536
533
 
537
- var UADecoder = /*#__PURE__*/ function() {
534
+ /**
535
+ * UserAgent 解析类
536
+ *
537
+ * 从 UserAgent 中解析出设备相关的信息,但是能获取的信息有限。
538
+ */ var UADecoder = /*#__PURE__*/ function() {
538
539
  function UADecoder(userAgent) {
539
540
  this.device = {};
540
541
  this.parse(userAgent != null ? userAgent : navigator.userAgent);
@@ -747,7 +748,11 @@ var UADecoder = /*#__PURE__*/ function() {
747
748
  return UADecoder;
748
749
  }();
749
750
 
750
- var AlipayMiniprogramParser = /*#__PURE__*/ function() {
751
+ /**
752
+ * 支付宝小程序系统信息解析类
753
+ *
754
+ * 负责解析支付宝小程序 JSAPI 返回的系统信息
755
+ */ var AlipayMiniprogramParser = /*#__PURE__*/ function() {
751
756
  function AlipayMiniprogramParser(info) {
752
757
  this.device = {};
753
758
  this.parse(info);
@@ -795,7 +800,11 @@ var AlipayMiniprogramParser = /*#__PURE__*/ function() {
795
800
  return AlipayMiniprogramParser;
796
801
  }();
797
802
 
798
- var WechatMiniprogramParser = /*#__PURE__*/ function() {
803
+ /**
804
+ * 微信小程序设备信息解析类
805
+ *
806
+ * 负责解析微信小程序 JSAPI 返回的设备信息
807
+ */ var WechatMiniprogramParser = /*#__PURE__*/ function() {
799
808
  function WechatMiniprogramParser(info) {
800
809
  this.device = {};
801
810
  this.parse(info);
@@ -850,14 +859,23 @@ var WechatMiniprogramParser = /*#__PURE__*/ function() {
850
859
  return WechatMiniprogramParser;
851
860
  }();
852
861
 
853
- var DowngradeJudge = /*#__PURE__*/ function() {
862
+ /**
863
+ * 降级判断类
864
+ *
865
+ * 通过设备信息和降级选项判断设备是否需要降级
866
+ */ var DowngradeJudge = /*#__PURE__*/ function() {
854
867
  function DowngradeJudge(options, device) {
855
868
  this.options = options;
856
869
  this.device = device;
857
870
  this.isIOS = false;
858
871
  }
859
872
  var _proto = DowngradeJudge.prototype;
860
- _proto.getDowngradeResult = function getDowngradeResult() {
873
+ /**
874
+ * 根据输入的设备信息和降级选项,以及内置的硬件机型和系统版本降级列表
875
+ * 返回当前设备降级相关的结果
876
+ *
877
+ * @returns 降级结果
878
+ */ _proto.getDowngradeResult = function getDowngradeResult() {
861
879
  var _this = this;
862
880
  var downgradeCallback = this.options.downgradeCallback;
863
881
  if (downgradeCallback) {
@@ -911,6 +929,9 @@ var DowngradeJudge = /*#__PURE__*/ function() {
911
929
  };
912
930
  };
913
931
  _proto.getRenderLevel = function getRenderLevel() {
932
+ if (this.options.level) {
933
+ return this.options.level;
934
+ }
914
935
  if (this.device.level) {
915
936
  if (this.device.level === DeviceLevel.High) {
916
937
  return spec.RenderLevel.S;
@@ -920,15 +941,6 @@ var DowngradeJudge = /*#__PURE__*/ function() {
920
941
  return spec.RenderLevel.B;
921
942
  }
922
943
  }
923
- if (this.device.memoryMB) {
924
- if (this.device.memoryMB < 4000) {
925
- return spec.RenderLevel.B;
926
- } else if (this.device.memoryMB < 6000) {
927
- return spec.RenderLevel.A;
928
- } else {
929
- return spec.RenderLevel.S;
930
- }
931
- }
932
944
  if (this.isIOS && this.device.model) {
933
945
  if (/iPhone(\d+),/.test(this.device.model)) {
934
946
  var gen = +RegExp.$1;
@@ -941,6 +953,15 @@ var DowngradeJudge = /*#__PURE__*/ function() {
941
953
  }
942
954
  }
943
955
  }
956
+ if (this.device.memoryMB) {
957
+ if (this.device.memoryMB < 4000) {
958
+ return spec.RenderLevel.B;
959
+ } else if (this.device.memoryMB < 6000) {
960
+ return spec.RenderLevel.A;
961
+ } else {
962
+ return spec.RenderLevel.S;
963
+ }
964
+ }
944
965
  return this.isIOS ? spec.RenderLevel.S : spec.RenderLevel.B;
945
966
  };
946
967
  return DowngradeJudge;
@@ -948,17 +969,26 @@ var DowngradeJudge = /*#__PURE__*/ function() {
948
969
 
949
970
  var internalPaused = Symbol("@@_inter_pause");
950
971
  var hasRegisterEvent = false;
951
- function getDowngradeResult(options) {
972
+ /**
973
+ * 获取 GE 降级结果,不需要创建 Canvas 和 WebGL 环境。
974
+ * 如果是小程序环境下,要确保 JSAPI 可调用
975
+ *
976
+ * @param options - 降级选项
977
+ * @returns 降级结果
978
+ */ function getDowngradeResult(options) {
952
979
  if (options === void 0) options = {};
953
980
  if (!hasRegisterEvent) {
954
981
  registerEvent(options);
955
982
  hasRegisterEvent = true;
956
983
  }
957
- var mock = options.mock;
958
- if (mock) {
959
- return _extends({}, mock, {
984
+ var mockDowngrade = options.mockDowngrade;
985
+ if (mockDowngrade !== undefined) {
986
+ var _options_level;
987
+ return {
988
+ downgrade: mockDowngrade,
989
+ level: (_options_level = options.level) != null ? _options_level : spec.RenderLevel.S,
960
990
  reason: "mock"
961
- });
991
+ };
962
992
  }
963
993
  var device = getDeviceInfo(options);
964
994
  var judge = new DowngradeJudge(options, device);
@@ -1011,7 +1041,11 @@ function getDeviceInfo(options) {
1011
1041
  }
1012
1042
  return new UADecoder().getDeviceInfo();
1013
1043
  }
1014
- function getDefaultRenderLevel() {
1044
+ /**
1045
+ * 获取默认渲染等级
1046
+ *
1047
+ * @returns 渲染等级
1048
+ */ function getDefaultRenderLevel() {
1015
1049
  return isIOS() ? spec.RenderLevel.S : spec.RenderLevel.B;
1016
1050
  }
1017
1051
  function pauseAllActivePlayers(e) {
@@ -1044,7 +1078,15 @@ function resumePausedPlayers(e) {
1044
1078
  }
1045
1079
  }
1046
1080
 
1047
- var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1081
+ /**
1082
+ * 降级插件类
1083
+ *
1084
+ * 根据 SceneLoadOptions 中传入的 downgrade 数据,判断是否降级。
1085
+ * 如果设备被降级,会在 processRawJSON 时抛出降级相关的异常和原因。
1086
+ *
1087
+ * 如果 SceneLoadOptions 中 renderLevel 没有设置,那么会根据 downgrade 数据
1088
+ * 和默认的渲染等级规则设置其中的 renderLevel 。
1089
+ */ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1048
1090
  _inherits(DowngradePlugin, AbstractPlugin);
1049
1091
  function DowngradePlugin() {
1050
1092
  return AbstractPlugin.apply(this, arguments);
@@ -1052,18 +1094,18 @@ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1052
1094
  DowngradePlugin.processRawJSON = function processRawJSON(json, options) {
1053
1095
  if (options === void 0) options = {};
1054
1096
  return _async_to_generator(function() {
1055
- var _options_pluginData, downgradeResult, _downgradeResult_renderLevel;
1097
+ var _options_pluginData, downgradeResult, _downgradeResult_level;
1056
1098
  return __generator(this, function(_state) {
1057
1099
  downgradeResult = (_options_pluginData = options.pluginData) == null ? void 0 : _options_pluginData["downgrade"];
1058
1100
  if (downgradeResult) {
1059
1101
  if (downgradeResult.downgrade) {
1060
- throw new Error("Downgraded, reason: " + downgradeResult.reason + ".");
1102
+ throw new Error("Downgraded, reason: " + downgradeResult.reason);
1061
1103
  }
1062
1104
  } else {
1063
1105
  logger.warn("No downgrade result in pluginData of SceneLoadOptions.");
1064
1106
  }
1065
1107
  if (!options.renderLevel) {
1066
- options.renderLevel = (_downgradeResult_renderLevel = downgradeResult == null ? void 0 : downgradeResult.renderLevel) != null ? _downgradeResult_renderLevel : getDefaultRenderLevel();
1108
+ options.renderLevel = (_downgradeResult_level = downgradeResult == null ? void 0 : downgradeResult.level) != null ? _downgradeResult_level : getDefaultRenderLevel();
1067
1109
  }
1068
1110
  return [
1069
1111
  2
@@ -1074,7 +1116,7 @@ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1074
1116
  return DowngradePlugin;
1075
1117
  }(AbstractPlugin);
1076
1118
 
1077
- var version = "2.0.0-alpha.28";
1119
+ var version = "2.0.0-alpha.29";
1078
1120
  registerPlugin("downgrade", DowngradePlugin, VFXItem, true);
1079
1121
  logger.info("Plugin downgrade version: " + version + ".");
1080
1122
  if (version !== EFFECTS.version) {