@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.js CHANGED
@@ -174,17 +174,6 @@ typeof SuppressedError === "function" ? SuppressedError : function _SuppressedEr
174
174
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
175
175
  };
176
176
 
177
- function _extends() {
178
- _extends = Object.assign || function assign(target) {
179
- for(var i = 1; i < arguments.length; i++){
180
- var source = arguments[i];
181
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
182
- }
183
- return target;
184
- };
185
- return _extends.apply(this, arguments);
186
- }
187
-
188
177
  function _array_like_to_array(arr, len) {
189
178
  if (len == null || len > arr.length) len = arr.length;
190
179
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -220,7 +209,9 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
220
209
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
221
210
  }
222
211
 
223
- var infoList = {
212
+ /**
213
+ * 部分手机厂商和 iPhone 机型列表
214
+ */ var infoList = {
224
215
  vender: [
225
216
  "SAMSUNG"
226
217
  ],
@@ -479,7 +470,9 @@ var infoList = {
479
470
  }
480
471
  ]
481
472
  };
482
- var downgradeModels = {
473
+ /**
474
+ * 被降级的硬件机型列表
475
+ */ var downgradeModels = {
483
476
  android: [
484
477
  "OPPO R9s Plus",
485
478
  "GM1910",
@@ -527,7 +520,9 @@ var downgradeModels = {
527
520
  "iPhone1,1"
528
521
  ]
529
522
  };
530
- var downgradeVersions = {
523
+ /**
524
+ * 被降级的系统版本列表
525
+ */ var downgradeVersions = {
531
526
  android: [],
532
527
  iOS: [
533
528
  "16.7",
@@ -539,7 +534,9 @@ var downgradeVersions = {
539
534
  "16.7.6"
540
535
  ]
541
536
  };
542
- var devtoolNameMap = {
537
+ /**
538
+ * 微信开发环境机型名称替换表
539
+ */ var devtoolNameMap = {
543
540
  wechat: {
544
541
  "iPhone 6/7/8": "iPhone 8",
545
542
  "iPhone 6/7/8 Plus": "iPhone 8 Plus",
@@ -557,7 +554,11 @@ exports.DeviceLevel = void 0;
557
554
  DeviceLevel["Unknown"] = "unknown";
558
555
  })(exports.DeviceLevel || (exports.DeviceLevel = {}));
559
556
 
560
- var UADecoder = /*#__PURE__*/ function() {
557
+ /**
558
+ * UserAgent 解析类
559
+ *
560
+ * 从 UserAgent 中解析出设备相关的信息,但是能获取的信息有限。
561
+ */ var UADecoder = /*#__PURE__*/ function() {
561
562
  function UADecoder(userAgent) {
562
563
  this.device = {};
563
564
  this.parse(userAgent != null ? userAgent : navigator.userAgent);
@@ -770,7 +771,11 @@ var UADecoder = /*#__PURE__*/ function() {
770
771
  return UADecoder;
771
772
  }();
772
773
 
773
- var AlipayMiniprogramParser = /*#__PURE__*/ function() {
774
+ /**
775
+ * 支付宝小程序系统信息解析类
776
+ *
777
+ * 负责解析支付宝小程序 JSAPI 返回的系统信息
778
+ */ var AlipayMiniprogramParser = /*#__PURE__*/ function() {
774
779
  function AlipayMiniprogramParser(info) {
775
780
  this.device = {};
776
781
  this.parse(info);
@@ -818,7 +823,11 @@ var AlipayMiniprogramParser = /*#__PURE__*/ function() {
818
823
  return AlipayMiniprogramParser;
819
824
  }();
820
825
 
821
- var WechatMiniprogramParser = /*#__PURE__*/ function() {
826
+ /**
827
+ * 微信小程序设备信息解析类
828
+ *
829
+ * 负责解析微信小程序 JSAPI 返回的设备信息
830
+ */ var WechatMiniprogramParser = /*#__PURE__*/ function() {
822
831
  function WechatMiniprogramParser(info) {
823
832
  this.device = {};
824
833
  this.parse(info);
@@ -873,14 +882,23 @@ var WechatMiniprogramParser = /*#__PURE__*/ function() {
873
882
  return WechatMiniprogramParser;
874
883
  }();
875
884
 
876
- var DowngradeJudge = /*#__PURE__*/ function() {
885
+ /**
886
+ * 降级判断类
887
+ *
888
+ * 通过设备信息和降级选项判断设备是否需要降级
889
+ */ var DowngradeJudge = /*#__PURE__*/ function() {
877
890
  function DowngradeJudge(options, device) {
878
891
  this.options = options;
879
892
  this.device = device;
880
893
  this.isIOS = false;
881
894
  }
882
895
  var _proto = DowngradeJudge.prototype;
883
- _proto.getDowngradeResult = function getDowngradeResult() {
896
+ /**
897
+ * 根据输入的设备信息和降级选项,以及内置的硬件机型和系统版本降级列表
898
+ * 返回当前设备降级相关的结果
899
+ *
900
+ * @returns 降级结果
901
+ */ _proto.getDowngradeResult = function getDowngradeResult() {
884
902
  var _this = this;
885
903
  var downgradeCallback = this.options.downgradeCallback;
886
904
  if (downgradeCallback) {
@@ -934,6 +952,9 @@ var DowngradeJudge = /*#__PURE__*/ function() {
934
952
  };
935
953
  };
936
954
  _proto.getRenderLevel = function getRenderLevel() {
955
+ if (this.options.level) {
956
+ return this.options.level;
957
+ }
937
958
  if (this.device.level) {
938
959
  if (this.device.level === exports.DeviceLevel.High) {
939
960
  return EFFECTS.spec.RenderLevel.S;
@@ -943,15 +964,6 @@ var DowngradeJudge = /*#__PURE__*/ function() {
943
964
  return EFFECTS.spec.RenderLevel.B;
944
965
  }
945
966
  }
946
- if (this.device.memoryMB) {
947
- if (this.device.memoryMB < 4000) {
948
- return EFFECTS.spec.RenderLevel.B;
949
- } else if (this.device.memoryMB < 6000) {
950
- return EFFECTS.spec.RenderLevel.A;
951
- } else {
952
- return EFFECTS.spec.RenderLevel.S;
953
- }
954
- }
955
967
  if (this.isIOS && this.device.model) {
956
968
  if (/iPhone(\d+),/.test(this.device.model)) {
957
969
  var gen = +RegExp.$1;
@@ -964,6 +976,15 @@ var DowngradeJudge = /*#__PURE__*/ function() {
964
976
  }
965
977
  }
966
978
  }
979
+ if (this.device.memoryMB) {
980
+ if (this.device.memoryMB < 4000) {
981
+ return EFFECTS.spec.RenderLevel.B;
982
+ } else if (this.device.memoryMB < 6000) {
983
+ return EFFECTS.spec.RenderLevel.A;
984
+ } else {
985
+ return EFFECTS.spec.RenderLevel.S;
986
+ }
987
+ }
967
988
  return this.isIOS ? EFFECTS.spec.RenderLevel.S : EFFECTS.spec.RenderLevel.B;
968
989
  };
969
990
  return DowngradeJudge;
@@ -971,17 +992,26 @@ var DowngradeJudge = /*#__PURE__*/ function() {
971
992
 
972
993
  var internalPaused = Symbol("@@_inter_pause");
973
994
  var hasRegisterEvent = false;
974
- function getDowngradeResult(options) {
995
+ /**
996
+ * 获取 GE 降级结果,不需要创建 Canvas 和 WebGL 环境。
997
+ * 如果是小程序环境下,要确保 JSAPI 可调用
998
+ *
999
+ * @param options - 降级选项
1000
+ * @returns 降级结果
1001
+ */ function getDowngradeResult(options) {
975
1002
  if (options === void 0) options = {};
976
1003
  if (!hasRegisterEvent) {
977
1004
  registerEvent(options);
978
1005
  hasRegisterEvent = true;
979
1006
  }
980
- var mock = options.mock;
981
- if (mock) {
982
- return _extends({}, mock, {
1007
+ var mockDowngrade = options.mockDowngrade;
1008
+ if (mockDowngrade !== undefined) {
1009
+ var _options_level;
1010
+ return {
1011
+ downgrade: mockDowngrade,
1012
+ level: (_options_level = options.level) != null ? _options_level : EFFECTS.spec.RenderLevel.S,
983
1013
  reason: "mock"
984
- });
1014
+ };
985
1015
  }
986
1016
  var device = getDeviceInfo(options);
987
1017
  var judge = new DowngradeJudge(options, device);
@@ -1034,7 +1064,11 @@ function getDeviceInfo(options) {
1034
1064
  }
1035
1065
  return new UADecoder().getDeviceInfo();
1036
1066
  }
1037
- function getDefaultRenderLevel() {
1067
+ /**
1068
+ * 获取默认渲染等级
1069
+ *
1070
+ * @returns 渲染等级
1071
+ */ function getDefaultRenderLevel() {
1038
1072
  return EFFECTS.isIOS() ? EFFECTS.spec.RenderLevel.S : EFFECTS.spec.RenderLevel.B;
1039
1073
  }
1040
1074
  function pauseAllActivePlayers(e) {
@@ -1067,7 +1101,15 @@ function resumePausedPlayers(e) {
1067
1101
  }
1068
1102
  }
1069
1103
 
1070
- var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1104
+ /**
1105
+ * 降级插件类
1106
+ *
1107
+ * 根据 SceneLoadOptions 中传入的 downgrade 数据,判断是否降级。
1108
+ * 如果设备被降级,会在 processRawJSON 时抛出降级相关的异常和原因。
1109
+ *
1110
+ * 如果 SceneLoadOptions 中 renderLevel 没有设置,那么会根据 downgrade 数据
1111
+ * 和默认的渲染等级规则设置其中的 renderLevel 。
1112
+ */ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1071
1113
  _inherits(DowngradePlugin, AbstractPlugin);
1072
1114
  function DowngradePlugin() {
1073
1115
  return AbstractPlugin.apply(this, arguments);
@@ -1075,18 +1117,18 @@ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1075
1117
  DowngradePlugin.processRawJSON = function processRawJSON(json, options) {
1076
1118
  if (options === void 0) options = {};
1077
1119
  return _async_to_generator(function() {
1078
- var _options_pluginData, downgradeResult, _downgradeResult_renderLevel;
1120
+ var _options_pluginData, downgradeResult, _downgradeResult_level;
1079
1121
  return __generator(this, function(_state) {
1080
1122
  downgradeResult = (_options_pluginData = options.pluginData) == null ? void 0 : _options_pluginData["downgrade"];
1081
1123
  if (downgradeResult) {
1082
1124
  if (downgradeResult.downgrade) {
1083
- throw new Error("Downgraded, reason: " + downgradeResult.reason + ".");
1125
+ throw new Error("Downgraded, reason: " + downgradeResult.reason);
1084
1126
  }
1085
1127
  } else {
1086
1128
  EFFECTS.logger.warn("No downgrade result in pluginData of SceneLoadOptions.");
1087
1129
  }
1088
1130
  if (!options.renderLevel) {
1089
- options.renderLevel = (_downgradeResult_renderLevel = downgradeResult == null ? void 0 : downgradeResult.renderLevel) != null ? _downgradeResult_renderLevel : getDefaultRenderLevel();
1131
+ options.renderLevel = (_downgradeResult_level = downgradeResult == null ? void 0 : downgradeResult.level) != null ? _downgradeResult_level : getDefaultRenderLevel();
1090
1132
  }
1091
1133
  return [
1092
1134
  2
@@ -1097,7 +1139,7 @@ var DowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
1097
1139
  return DowngradePlugin;
1098
1140
  }(EFFECTS.AbstractPlugin);
1099
1141
 
1100
- var version = "2.0.0-alpha.28";
1142
+ var version = "2.0.0-alpha.29";
1101
1143
  EFFECTS.registerPlugin("downgrade", DowngradePlugin, EFFECTS.VFXItem, true);
1102
1144
  EFFECTS.logger.info("Plugin downgrade version: " + version + ".");
1103
1145
  if (version !== EFFECTS__namespace.version) {