@galacean/engine-core 1.3.23 → 1.3.25

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/module.js CHANGED
@@ -157,6 +157,34 @@ function __decorate(decorators, target, key, desc) {
157
157
  return c > 3 && r && Object.defineProperty(target, key, r), r;
158
158
  }
159
159
 
160
+ function __generator(thisArg, body) {
161
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
162
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
163
+ function verb(n) { return function (v) { return step([n, v]); }; }
164
+ function step(op) {
165
+ if (f) throw new TypeError("Generator is already executing.");
166
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
167
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
168
+ if (y = 0, t) op = [op[0] & 2, t.value];
169
+ switch (op[0]) {
170
+ case 0: case 1: t = op; break;
171
+ case 4: _.label++; return { value: op[1], done: false };
172
+ case 5: _.label++; y = op[1]; op = [0]; continue;
173
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
174
+ default:
175
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
176
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
177
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
178
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
179
+ if (t[2]) _.ops.pop();
180
+ _.trys.pop(); continue;
181
+ }
182
+ op = body.call(thisArg, _);
183
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
184
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
185
+ }
186
+ }
187
+
160
188
  typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
161
189
  var e = new Error(message);
162
190
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
@@ -3851,11 +3879,13 @@ __decorate([
3851
3879
  /**
3852
3880
  * @internal
3853
3881
  * @todo Should merge when we can delete material render state
3854
- */ _proto._applyRenderQueueByShaderData = function _applyRenderQueueByShaderData(renderStateDataMap, shaderData) {
3882
+ */ _proto._getRenderQueueByShaderData = function _getRenderQueueByShaderData(renderStateDataMap, shaderData) {
3855
3883
  var renderQueueType = renderStateDataMap[RenderStateElementKey.RenderQueueType];
3856
- if (renderQueueType !== undefined) {
3884
+ if (renderQueueType === undefined) {
3885
+ return this.renderQueueType;
3886
+ } else {
3857
3887
  var _shaderData_getFloat;
3858
- this.renderQueueType = (_shaderData_getFloat = shaderData.getFloat(renderQueueType)) != null ? _shaderData_getFloat : RenderQueueType.Opaque;
3888
+ return (_shaderData_getFloat = shaderData.getFloat(renderQueueType)) != null ? _shaderData_getFloat : RenderQueueType.Opaque;
3859
3889
  }
3860
3890
  };
3861
3891
  _proto._applyStatesByShaderData = function _applyStatesByShaderData(renderStateDataMap, shaderData) {
@@ -5070,9 +5100,11 @@ var DependentMode;
5070
5100
  _this._rotation = new Vector3();
5071
5101
  _this._rotationQuaternion = new Quaternion();
5072
5102
  _this._scale = new Vector3(1, 1, 1);
5103
+ _this._localUniformScaling = true;
5073
5104
  _this._worldPosition = new Vector3();
5074
5105
  _this._worldRotation = new Vector3();
5075
5106
  _this._worldRotationQuaternion = new Quaternion();
5107
+ _this._worldUniformScaling = true;
5076
5108
  _this._lossyWorldScale = new Vector3(1, 1, 1);
5077
5109
  _this._localMatrix = new Matrix();
5078
5110
  _this._worldMatrix = new Matrix();
@@ -5239,7 +5271,7 @@ var DependentMode;
5239
5271
  * @internal
5240
5272
  */ _proto._parentChange = function _parentChange() {
5241
5273
  this._isParentDirty = true;
5242
- this._updateAllWorldFlag();
5274
+ this._updateAllWorldFlag(0x1bc);
5243
5275
  };
5244
5276
  /**
5245
5277
  * @internal
@@ -5274,10 +5306,10 @@ var DependentMode;
5274
5306
  */ _proto._updateWorldPositionFlag = function _updateWorldPositionFlag() {
5275
5307
  if (!this._isContainDirtyFlags(0x84)) {
5276
5308
  this._worldAssociatedChange(0x84);
5277
- var nodeChildren = this._entity._children;
5278
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5279
- var _nodeChildren_i_transform;
5280
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateWorldPositionFlag();
5309
+ var children = this._entity._children;
5310
+ for(var i = 0, n = children.length; i < n; i++){
5311
+ var _children_i_transform;
5312
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateWorldPositionFlag();
5281
5313
  }
5282
5314
  }
5283
5315
  };
@@ -5286,14 +5318,19 @@ var DependentMode;
5286
5318
  * Get worldPosition: Will trigger the worldMatrix, local position update of itself and the worldMatrix update of all parent entities.
5287
5319
  * Get worldRotationQuaternion: Will trigger the world rotation (in quaternion) update of itself and all parent entities.
5288
5320
  * Get worldRotation: Will trigger the world rotation(in euler and quaternion) update of itself and world rotation(in quaternion) update of all parent entities.
5321
+ * Get worldScale: Will trigger the scaling update of itself and all parent entities.
5289
5322
  * In summary, any update of related variables will cause the dirty mark of one of the full process (worldMatrix or worldRotationQuaternion) to be false.
5290
5323
  */ _proto._updateWorldRotationFlag = function _updateWorldRotationFlag() {
5291
- if (!this._isContainDirtyFlags(0x98)) {
5292
- this._worldAssociatedChange(0x98);
5293
- var nodeChildren = this._entity._children;
5294
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5295
- var _nodeChildren_i_transform;
5296
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateWorldPositionAndRotationFlag(); // Rotation update of parent entity will trigger world position and rotation update of all child entity.
5324
+ var parent = this._getParentTransform();
5325
+ var parentWorldUniformScaling = parent ? parent._getWorldUniformScaling() : true;
5326
+ var flags = parentWorldUniformScaling ? 0x98 : 0xb8;
5327
+ if (!this._isContainDirtyFlags(flags)) {
5328
+ this._worldAssociatedChange(flags);
5329
+ flags = this._getWorldUniformScaling() ? 0x9c : 0xbc;
5330
+ var children = this._entity._children;
5331
+ for(var i = 0, n = children.length; i < n; i++){
5332
+ var _children_i_transform;
5333
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateWorldPositionAndRotationFlag(flags); // Rotation update of parent entity will trigger world position, rotation and scale update of all child entity.
5297
5334
  }
5298
5335
  }
5299
5336
  };
@@ -5302,14 +5339,17 @@ var DependentMode;
5302
5339
  * Get worldPosition: Will trigger the worldMatrix, local position update of itself and the worldMatrix update of all parent entities.
5303
5340
  * Get worldRotationQuaternion: Will trigger the world rotation (in quaternion) update of itself and all parent entities.
5304
5341
  * Get worldRotation: Will trigger the world rotation(in euler and quaternion) update of itself and world rotation(in quaternion) update of all parent entities.
5342
+ * Get worldScale: Will trigger the scaling update of itself and all parent entities.
5305
5343
  * In summary, any update of related variables will cause the dirty mark of one of the full process (worldMatrix or worldRotationQuaternion) to be false.
5306
- */ _proto._updateWorldPositionAndRotationFlag = function _updateWorldPositionAndRotationFlag() {
5307
- if (!this._isContainDirtyFlags(0x9c)) {
5308
- this._worldAssociatedChange(0x9c);
5309
- var nodeChildren = this._entity._children;
5310
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5311
- var _nodeChildren_i_transform;
5312
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateWorldPositionAndRotationFlag();
5344
+ * @param flags - Dirty flag
5345
+ */ _proto._updateWorldPositionAndRotationFlag = function _updateWorldPositionAndRotationFlag(flags) {
5346
+ if (!this._isContainDirtyFlags(flags)) {
5347
+ this._worldAssociatedChange(flags);
5348
+ flags = this._getWorldUniformScaling() ? 0x9c : 0xbc;
5349
+ var children = this._entity._children;
5350
+ for(var i = 0, n = children.length; i < n; i++){
5351
+ var _children_i_transform;
5352
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateWorldPositionAndRotationFlag(flags);
5313
5353
  }
5314
5354
  }
5315
5355
  };
@@ -5318,13 +5358,15 @@ var DependentMode;
5318
5358
  * Get worldPosition: Will trigger the worldMatrix, local position update of itself and the worldMatrix update of all parent entities.
5319
5359
  * Get worldScale: Will trigger the scaling update of itself and all parent entities.
5320
5360
  * In summary, any update of related variables will cause the dirty mark of one of the full process (worldMatrix) to be false.
5321
- */ _proto._updateWorldScaleFlag = function _updateWorldScaleFlag() {
5322
- if (!this._isContainDirtyFlags(0xa0)) {
5323
- this._worldAssociatedChange(0xa0);
5324
- var nodeChildren = this._entity._children;
5325
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5326
- var _nodeChildren_i_transform;
5327
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateWorldPositionAndScaleFlag();
5361
+ * @param flags - Dirty flag
5362
+ */ _proto._updateWorldScaleFlag = function _updateWorldScaleFlag(flags) {
5363
+ if (!this._isContainDirtyFlags(flags)) {
5364
+ this._worldAssociatedChange(flags);
5365
+ flags |= 0x4;
5366
+ var children = this._entity._children;
5367
+ for(var i = 0, n = children.length; i < n; i++){
5368
+ var _children_i_transform;
5369
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateWorldPositionAndScaleFlag(flags);
5328
5370
  }
5329
5371
  }
5330
5372
  };
@@ -5333,25 +5375,27 @@ var DependentMode;
5333
5375
  * Get worldPosition: Will trigger the worldMatrix, local position update of itself and the worldMatrix update of all parent entities.
5334
5376
  * Get worldScale: Will trigger the scaling update of itself and all parent entities.
5335
5377
  * In summary, any update of related variables will cause the dirty mark of one of the full process (worldMatrix) to be false.
5336
- */ _proto._updateWorldPositionAndScaleFlag = function _updateWorldPositionAndScaleFlag() {
5337
- if (!this._isContainDirtyFlags(0xa4)) {
5338
- this._worldAssociatedChange(0xa4);
5339
- var nodeChildren = this._entity._children;
5340
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5341
- var _nodeChildren_i_transform;
5342
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateWorldPositionAndScaleFlag();
5378
+ * @param flags - Dirty flag
5379
+ */ _proto._updateWorldPositionAndScaleFlag = function _updateWorldPositionAndScaleFlag(flags) {
5380
+ if (!this._isContainDirtyFlags(flags)) {
5381
+ this._worldAssociatedChange(flags);
5382
+ var children = this._entity._children;
5383
+ for(var i = 0, n = children.length; i < n; i++){
5384
+ var _children_i_transform;
5385
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateWorldPositionAndScaleFlag(flags);
5343
5386
  }
5344
5387
  }
5345
5388
  };
5346
5389
  /**
5347
5390
  * Update all world transform property dirty flag, the principle is the same as above.
5348
- */ _proto._updateAllWorldFlag = function _updateAllWorldFlag() {
5349
- if (!this._isContainDirtyFlags(0xbc)) {
5350
- this._worldAssociatedChange(0xbc);
5351
- var nodeChildren = this._entity._children;
5352
- for(var i = 0, n = nodeChildren.length; i < n; i++){
5353
- var _nodeChildren_i_transform;
5354
- (_nodeChildren_i_transform = nodeChildren[i].transform) == null ? void 0 : _nodeChildren_i_transform._updateAllWorldFlag();
5391
+ * @param flags - Dirty flag
5392
+ */ _proto._updateAllWorldFlag = function _updateAllWorldFlag(flags) {
5393
+ if (!this._isContainDirtyFlags(flags)) {
5394
+ this._worldAssociatedChange(flags);
5395
+ var children = this._entity._children;
5396
+ for(var i = 0, n = children.length; i < n; i++){
5397
+ var _children_i_transform;
5398
+ (_children_i_transform = children[i].transform) == null ? void 0 : _children_i_transform._updateAllWorldFlag(flags);
5355
5399
  }
5356
5400
  }
5357
5401
  };
@@ -5399,7 +5443,7 @@ var DependentMode;
5399
5443
  };
5400
5444
  _proto._worldAssociatedChange = function _worldAssociatedChange(type) {
5401
5445
  this._dirtyFlag |= type;
5402
- this._updateFlagManager.dispatch(0x80);
5446
+ this._updateFlagManager.dispatch(type);
5403
5447
  };
5404
5448
  _proto._rotateByQuat = function _rotateByQuat(rotateQuat, relativeToLocal) {
5405
5449
  if (relativeToLocal) {
@@ -5468,8 +5512,28 @@ var DependentMode;
5468
5512
  this._setDirtyFlagFalse(0x10);
5469
5513
  };
5470
5514
  _proto._onScaleChanged = function _onScaleChanged() {
5515
+ var _this__scale = this._scale, x = _this__scale.x, y = _this__scale.y, z = _this__scale.z;
5471
5516
  this._setDirtyFlagTrue(0x40);
5472
- this._updateWorldScaleFlag();
5517
+ var localUniformScaling = x == y && y == z;
5518
+ if (this._localUniformScaling !== localUniformScaling) {
5519
+ this._localUniformScaling = localUniformScaling;
5520
+ this._updateWorldScaleFlag(0x1a0);
5521
+ } else {
5522
+ this._updateWorldScaleFlag(0xa0);
5523
+ }
5524
+ };
5525
+ _proto._getWorldUniformScaling = function _getWorldUniformScaling() {
5526
+ if (this._isContainDirtyFlag(0x100)) {
5527
+ var localUniformScaling = this._localUniformScaling;
5528
+ if (localUniformScaling) {
5529
+ var parent = this._getParentTransform();
5530
+ this._worldUniformScaling = localUniformScaling && (parent ? parent._getWorldUniformScaling() : true);
5531
+ } else {
5532
+ this._worldUniformScaling = false;
5533
+ }
5534
+ this._setDirtyFlagFalse(0x100);
5535
+ }
5536
+ return this._worldUniformScaling;
5473
5537
  };
5474
5538
  _create_class(Transform, [
5475
5539
  {
@@ -5636,11 +5700,12 @@ var DependentMode;
5636
5700
  key: "lossyWorldScale",
5637
5701
  get: /**
5638
5702
  * Local lossy scaling.
5639
- * @remarks The value obtained may not be correct under certain conditions(for example, the parent node has scaling,
5640
- * and the child node has a rotation), the scaling will be tilted. Vector3 cannot be used to correctly represent the scaling. Must use Matrix3x3.
5703
+ * @remarks The value obtained may not be correct under certain conditions(for example, the parent node has non-uniform world scaling,
5704
+ * and the child node has a rotation), the scaling will be tilted.
5641
5705
  */ function get() {
5642
5706
  if (this._isContainDirtyFlag(0x20)) {
5643
5707
  if (this._getParentTransform()) {
5708
+ // Vector3 cannot be used to correctly represent the scaling. Must use Matrix3x3
5644
5709
  var scaleMat = this._getScaleMatrix();
5645
5710
  var e = scaleMat.elements;
5646
5711
  this._lossyWorldScale.set(e[0], e[4], e[8]);
@@ -5668,18 +5733,25 @@ var DependentMode;
5668
5733
  if (this._localMatrix !== value) {
5669
5734
  this._localMatrix.copyFrom(value);
5670
5735
  }
5736
+ var _this = this, position = _this._position, rotationQuaternion = _this._rotationQuaternion, scale = _this._scale;
5671
5737
  // @ts-ignore
5672
- this._position._onValueChanged = this._rotationQuaternion._onValueChanged = this._scale._onValueChanged = null;
5673
- this._localMatrix.decompose(this._position, this._rotationQuaternion, this._scale);
5738
+ position._onValueChanged = rotationQuaternion._onValueChanged = scale._onValueChanged = null;
5739
+ this._localMatrix.decompose(position, rotationQuaternion, scale);
5674
5740
  // @ts-ignore
5675
- this._position._onValueChanged = this._onPositionChanged;
5741
+ position._onValueChanged = this._onPositionChanged;
5676
5742
  // @ts-ignore
5677
- this._rotationQuaternion._onValueChanged = this._onRotationQuaternionChanged;
5743
+ rotationQuaternion._onValueChanged = this._onRotationQuaternionChanged;
5678
5744
  // @ts-ignore
5679
- this._scale._onValueChanged = this._onScaleChanged;
5745
+ scale._onValueChanged = this._onScaleChanged;
5680
5746
  this._setDirtyFlagTrue(0x1);
5681
5747
  this._setDirtyFlagFalse(0x40 | 0x2);
5682
- this._updateAllWorldFlag();
5748
+ var localUniformScaling = scale.x === scale.y && scale.y === scale.z;
5749
+ if (this._localUniformScaling !== localUniformScaling) {
5750
+ this._localUniformScaling = localUniformScaling;
5751
+ this._updateAllWorldFlag(0x1bc);
5752
+ } else {
5753
+ this._updateAllWorldFlag(0xbc);
5754
+ }
5683
5755
  }
5684
5756
  },
5685
5757
  {
@@ -5789,6 +5861,9 @@ __decorate([
5789
5861
  __decorate([
5790
5862
  deepClone
5791
5863
  ], Transform.prototype, "_scale", void 0);
5864
+ __decorate([
5865
+ assignmentClone
5866
+ ], Transform.prototype, "_localUniformScaling", void 0);
5792
5867
  __decorate([
5793
5868
  deepClone
5794
5869
  ], Transform.prototype, "_worldPosition", void 0);
@@ -5798,6 +5873,9 @@ __decorate([
5798
5873
  __decorate([
5799
5874
  deepClone
5800
5875
  ], Transform.prototype, "_worldRotationQuaternion", void 0);
5876
+ __decorate([
5877
+ assignmentClone
5878
+ ], Transform.prototype, "_worldUniformScaling", void 0);
5801
5879
  __decorate([
5802
5880
  deepClone
5803
5881
  ], Transform.prototype, "_lossyWorldScale", void 0);
@@ -5856,12 +5934,18 @@ var TransformModifyFlags;
5856
5934
  TransformModifyFlags[TransformModifyFlags["WorldScale"] = 0x20] = "WorldScale";
5857
5935
  TransformModifyFlags[TransformModifyFlags["LocalMatrix"] = 0x40] = "LocalMatrix";
5858
5936
  TransformModifyFlags[TransformModifyFlags["WorldMatrix"] = 0x80] = "WorldMatrix";
5937
+ TransformModifyFlags[TransformModifyFlags[/** This is an internal flag used to assist in determining the dispatch
5938
+ * of world scaling dirty flags in the case of non-uniform scaling.
5939
+ */ "IsWorldUniformScaling"] = 0x100] = "IsWorldUniformScaling";
5859
5940
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldPosition */ "WmWp"] = 0x84] = "WmWp";
5860
5941
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldEuler | WorldQuat */ "WmWeWq"] = 0x98] = "WmWeWq";
5942
+ TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldEuler | WorldQuat | WorldScale*/ "WmWeWqWs"] = 0xb8] = "WmWeWqWs";
5861
5943
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldPosition | WorldEuler | WorldQuat */ "WmWpWeWq"] = 0x9c] = "WmWpWeWq";
5862
5944
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldScale */ "WmWs"] = 0xa0] = "WmWs";
5945
+ TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldScale | WorldUniformScaling */ "WmWsWus"] = 0x1a0] = "WmWsWus";
5863
5946
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldPosition | WorldScale */ "WmWpWs"] = 0xa4] = "WmWpWs";
5864
5947
  TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale */ "WmWpWeWqWs"] = 0xbc] = "WmWpWeWqWs";
5948
+ TransformModifyFlags[TransformModifyFlags[/** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldUniformScaling */ "WmWpWeWqWsWus"] = 0x1bc] = "WmWpWeWqWsWus";
5865
5949
  })(TransformModifyFlags || (TransformModifyFlags = {}));
5866
5950
 
5867
5951
  // @ts-ignore
@@ -8191,11 +8275,13 @@ var /**
8191
8275
  * @param viewport - Viewport
8192
8276
  * @param material - The material to use when blitting
8193
8277
  * @param passIndex - Pass index to use of the provided material
8194
- */ PipelineUtils.blitTexture = function blitTexture(engine, source, destination, mipLevel, viewport, material, passIndex) {
8278
+ * @param flipYOfSource - Whether flip Y axis of source texture
8279
+ */ PipelineUtils.blitTexture = function blitTexture(engine, source, destination, mipLevel, viewport, material, passIndex, flipYOfSource) {
8195
8280
  if (mipLevel === void 0) mipLevel = 0;
8196
8281
  if (viewport === void 0) viewport = PipelineUtils.defaultViewport;
8197
8282
  if (material === void 0) material = null;
8198
8283
  if (passIndex === void 0) passIndex = 0;
8284
+ if (flipYOfSource === void 0) flipYOfSource = false;
8199
8285
  var basicResources = engine._basicResources;
8200
8286
  var blitMesh = destination ? basicResources.flipYBlitMesh : basicResources.blitMesh;
8201
8287
  var blitMaterial = material || basicResources.blitMaterial;
@@ -8209,9 +8295,15 @@ var /**
8209
8295
  rendererShaderData.setFloat(PipelineUtils._blitMipLevelProperty, mipLevel);
8210
8296
  PipelineUtils._texelSize.set(1 / source.width, 1 / source.height, source.width, source.height);
8211
8297
  rendererShaderData.setVector4(PipelineUtils._blitTexelSizeProperty, PipelineUtils._texelSize);
8298
+ if (flipYOfSource) {
8299
+ rendererShaderData.enableMacro(PipelineUtils._flipYTextureMacro);
8300
+ } else {
8301
+ rendererShaderData.disableMacro(PipelineUtils._flipYTextureMacro);
8302
+ }
8212
8303
  var pass = blitMaterial.shader.subShaders[0].passes[passIndex];
8213
8304
  var compileMacros = Shader._compileMacros;
8214
- ShaderMacroCollection.unionCollection(context.camera._globalShaderMacro, blitMaterial.shaderData._macroCollection, compileMacros);
8305
+ ShaderMacroCollection.unionCollection(context.camera._globalShaderMacro, rendererShaderData._macroCollection, compileMacros);
8306
+ ShaderMacroCollection.unionCollection(compileMacros, blitMaterial.shaderData._macroCollection, compileMacros);
8215
8307
  var program = pass._getShaderProgram(engine, compileMacros);
8216
8308
  program.bind();
8217
8309
  program.groupingOtherUniformBlock();
@@ -8233,6 +8325,9 @@ var /**
8233
8325
  PipelineUtils._blitTexelSizeProperty = ShaderProperty.getByName("renderer_texelSize") // x: 1/width, y: 1/height, z: width, w: height
8234
8326
  ;
8235
8327
  })();
8328
+ (function() {
8329
+ PipelineUtils._flipYTextureMacro = ShaderMacro.getByName("renderer_FlipYBlitTexture");
8330
+ })();
8236
8331
  (function() {
8237
8332
  PipelineUtils._rendererShaderData = new ShaderData(ShaderDataGroup.Renderer);
8238
8333
  })();
@@ -8356,7 +8451,7 @@ var Camera = (_Camera = /*#__PURE__*/ function(Component1) {
8356
8451
  /**
8357
8452
  * Multi-sample anti-aliasing samples when use independent canvas mode.
8358
8453
  *
8359
- * @remarks The `independentCanvasEnabled` property should be `true` to take effect, otherwise it will be invalid.
8454
+ * @remarks It will take effect when `independentCanvasEnabled` property is `true`, otherwise it will be invalid.
8360
8455
  */ _this.msaaSamples = MSAASamples.None;
8361
8456
  /** @internal */ _this._cameraType = CameraType.Normal;
8362
8457
  /** @internal */ _this._globalShaderMacro = new ShaderMacroCollection();
@@ -8717,13 +8812,17 @@ var Camera = (_Camera = /*#__PURE__*/ function(Component1) {
8717
8812
  key: "independentCanvasEnabled",
8718
8813
  get: /**
8719
8814
  * Whether independent canvas is enabled.
8720
- *
8721
8815
  * @remarks If true, the msaa in viewport can turn or off independently by `msaaSamples` property.
8722
8816
  */ function get() {
8723
- if (this.enableHDR || this.enablePostProcess && this.scene._postProcessManager.hasActiveEffect) {
8817
+ // Uber pass need internal RT
8818
+ if (this.enablePostProcess && this.scene._postProcessManager.hasActiveEffect) {
8724
8819
  return true;
8725
8820
  }
8726
- return this.opaqueTextureEnabled && !this._renderTarget;
8821
+ if (this.enableHDR || this.opaqueTextureEnabled) {
8822
+ var _this_renderTarget;
8823
+ return this._getInternalColorTextureFormat() !== ((_this_renderTarget = this.renderTarget) == null ? void 0 : _this_renderTarget.getColorTexture(0).format);
8824
+ }
8825
+ return false;
8727
8826
  }
8728
8827
  },
8729
8828
  {
@@ -9228,8 +9327,15 @@ var ContextRendererUpdateFlag;
9228
9327
  if (shaderPass.getTagValue(pipelineStageKey) !== pipelineStageTagValue) {
9229
9328
  continue;
9230
9329
  }
9231
- var _shaderPass__renderState;
9232
- if (((_shaderPass__renderState = shaderPass._renderState) != null ? _shaderPass__renderState : renderStates[j]).renderQueueType !== renderQueueType) {
9330
+ var renderState = shaderPass._renderState;
9331
+ var passQueueType = void 0;
9332
+ if (renderState) {
9333
+ passQueueType = renderState._getRenderQueueByShaderData(shaderPass._renderStateDataMap, materialData);
9334
+ } else {
9335
+ renderState = renderStates[j];
9336
+ passQueueType = renderState.renderQueueType;
9337
+ }
9338
+ if (passQueueType !== renderQueueType) {
9233
9339
  continue;
9234
9340
  }
9235
9341
  var program = shaderPass._getShaderProgram(engine, compileMacros);
@@ -9283,8 +9389,6 @@ var ContextRendererUpdateFlag;
9283
9389
  program.uploadUnGroupTextures();
9284
9390
  }
9285
9391
  }
9286
- var _shaderPass__renderState1;
9287
- var renderState = (_shaderPass__renderState1 = shaderPass._renderState) != null ? _shaderPass__renderState1 : renderStates[j];
9288
9392
  renderState._applyStates(engine, renderer.entity.transform._isFrontFaceInvert(), shaderPass._renderStateDataMap, material.shaderData);
9289
9393
  rhi.drawPrimitive(primitive, subElement.subPrimitive, program);
9290
9394
  }
@@ -10241,6 +10345,8 @@ var /**
10241
10345
  function BasicRenderPipeline(camera) {
10242
10346
  this._lastCanvasSize = new Vector2();
10243
10347
  this._internalColorTarget = null;
10348
+ this._canUseBlitFrameBuffer = false;
10349
+ this._shouldGrabColor = false;
10244
10350
  this._camera = camera;
10245
10351
  var engine = camera.engine;
10246
10352
  this._cullingResults = new CullingResults();
@@ -10265,10 +10371,19 @@ var /**
10265
10371
  context.rendererUpdateFlag = ContextRendererUpdateFlag.All;
10266
10372
  var camera = this._camera;
10267
10373
  var scene = camera.scene, engine = camera.engine;
10374
+ var rhi = engine._hardwareRenderer;
10268
10375
  var cullingResults = this._cullingResults;
10269
10376
  var sunlight = scene._lightManager._sunlight;
10270
10377
  var depthOnlyPass = this._depthOnlyPass;
10271
10378
  var depthPassEnabled = camera.depthTextureMode === DepthTextureMode.PrePass && depthOnlyPass._supportDepthTexture;
10379
+ var finalClearFlags = camera.clearFlags & ~(ignoreClear != null ? ignoreClear : CameraClearFlags.None);
10380
+ var independentCanvasEnabled = camera.independentCanvasEnabled;
10381
+ var msaaSamples = camera.renderTarget ? camera.renderTarget.antiAliasing : camera.msaaSamples;
10382
+ this._shouldGrabColor = independentCanvasEnabled && !(finalClearFlags & CameraClearFlags.Color);
10383
+ // 1. Only support blitFramebuffer in webgl2 context
10384
+ // 2. Can't blit normal FBO to MSAA FBO
10385
+ // 3. Can't blit screen MSAA FBO to normal FBO in mac safari platform and mobile, but mac chrome and firfox is OK
10386
+ this._canUseBlitFrameBuffer = rhi.isWebGL2 && msaaSamples === 1 && (!!camera.renderTarget || !rhi.context.antialias);
10272
10387
  if (scene.castShadows && sunlight && sunlight.shadowType !== ShadowType.None) {
10273
10388
  this._cascadedShadowCasterPass.onRender(context);
10274
10389
  context.rendererUpdateFlag = ContextRendererUpdateFlag.None;
@@ -10288,24 +10403,46 @@ var /**
10288
10403
  } else {
10289
10404
  camera.shaderData.setTexture(Camera._cameraDepthTextureProperty, engine._basicResources.whiteTexture2D);
10290
10405
  }
10291
- // Check if need to create internal color texture
10292
- var independentCanvasEnabled = camera.independentCanvasEnabled;
10406
+ // Check if need to create internal color texture or grab texture
10293
10407
  if (independentCanvasEnabled) {
10408
+ var depthFormat;
10409
+ if (camera.renderTarget) {
10410
+ depthFormat = camera.renderTarget._depthFormat;
10411
+ } else if (rhi.context.depth && rhi.context.stencil) {
10412
+ depthFormat = TextureFormat.Depth24Stencil8;
10413
+ } else if (rhi.context.depth) {
10414
+ depthFormat = TextureFormat.Depth24;
10415
+ } else if (rhi.context.stencil) {
10416
+ depthFormat = TextureFormat.Stencil;
10417
+ } else {
10418
+ depthFormat = null;
10419
+ }
10294
10420
  var viewport = camera.pixelViewport;
10295
- var internalColorTarget = PipelineUtils.recreateRenderTargetIfNeeded(engine, this._internalColorTarget, viewport.width, viewport.height, camera._getInternalColorTextureFormat(), TextureFormat.Depth24Stencil8, false, false, camera.msaaSamples, TextureWrapMode.Clamp, TextureFilterMode.Bilinear);
10421
+ var internalColorTarget = PipelineUtils.recreateRenderTargetIfNeeded(engine, this._internalColorTarget, viewport.width, viewport.height, camera._getInternalColorTextureFormat(), depthFormat, false, false, msaaSamples, TextureWrapMode.Clamp, TextureFilterMode.Bilinear);
10422
+ if (!this._canUseBlitFrameBuffer && this._shouldGrabColor) {
10423
+ var _camera_renderTarget;
10424
+ var _camera_renderTarget_getColorTexture_format;
10425
+ var grabTexture = PipelineUtils.recreateTextureIfNeeded(engine, this._grabTexture, viewport.width, viewport.height, (_camera_renderTarget_getColorTexture_format = (_camera_renderTarget = camera.renderTarget) == null ? void 0 : _camera_renderTarget.getColorTexture(0).format) != null ? _camera_renderTarget_getColorTexture_format : TextureFormat.R8G8B8A8, false, TextureWrapMode.Clamp, TextureFilterMode.Bilinear);
10426
+ this._grabTexture = grabTexture;
10427
+ }
10296
10428
  this._internalColorTarget = internalColorTarget;
10297
10429
  } else {
10298
10430
  var internalColorTarget1 = this._internalColorTarget;
10431
+ var grabTexture1 = this._grabTexture;
10299
10432
  if (internalColorTarget1) {
10300
10433
  var _internalColorTarget_getColorTexture;
10301
10434
  (_internalColorTarget_getColorTexture = internalColorTarget1.getColorTexture(0)) == null ? void 0 : _internalColorTarget_getColorTexture.destroy(true);
10302
10435
  internalColorTarget1.destroy(true);
10303
10436
  this._internalColorTarget = null;
10304
10437
  }
10438
+ if (grabTexture1) {
10439
+ grabTexture1.destroy(true);
10440
+ this._grabTexture = null;
10441
+ }
10305
10442
  }
10306
- this._drawRenderPass(context, camera, cubeFace, mipLevel, ignoreClear);
10443
+ this._drawRenderPass(context, camera, finalClearFlags, cubeFace, mipLevel);
10307
10444
  };
10308
- _proto._drawRenderPass = function _drawRenderPass(context, camera, cubeFace, mipLevel, ignoreClear) {
10445
+ _proto._drawRenderPass = function _drawRenderPass(context, camera, finalClearFlags, cubeFace, mipLevel) {
10309
10446
  var _cameraRenderTarget, _cameraRenderTarget1;
10310
10447
  var cullingResults = this._cullingResults;
10311
10448
  var opaqueQueue = cullingResults.opaqueQueue, alphaTestQueue = cullingResults.alphaTestQueue, transparentQueue = cullingResults.transparentQueue;
@@ -10322,14 +10459,34 @@ var /**
10322
10459
  context.applyVirtualCamera(camera._virtualCamera, needFlipProjection);
10323
10460
  }
10324
10461
  rhi.activeRenderTarget(colorTarget, colorViewport, context.flipProjection, mipLevel, cubeFace);
10325
- var clearFlags = camera.clearFlags & ~(ignoreClear != null ? ignoreClear : CameraClearFlags.None);
10326
10462
  var color = background.solidColor;
10327
- if (clearFlags !== CameraClearFlags.None) {
10328
- rhi.clearRenderTarget(camera.engine, clearFlags, color);
10463
+ if (internalColorTarget && finalClearFlags !== CameraClearFlags.All) {
10464
+ // Can use `blitFramebuffer` API to copy color/depth/stencil buffer from back buffer to internal RT
10465
+ if (this._canUseBlitFrameBuffer) {
10466
+ finalClearFlags !== CameraClearFlags.None && rhi.clearRenderTarget(engine, finalClearFlags, color);
10467
+ rhi.blitInternalRTByBlitFrameBuffer(camera.renderTarget, internalColorTarget, finalClearFlags, camera.viewport);
10468
+ } else {
10469
+ if (!(finalClearFlags & CameraClearFlags.Depth) || !(finalClearFlags & CameraClearFlags.Stencil)) {
10470
+ Logger.warn("We clear all depth/stencil state cause of the internalRT can't copy depth/stencil buffer from back buffer when use copy plan");
10471
+ }
10472
+ if (this._shouldGrabColor) {
10473
+ rhi.clearRenderTarget(engine, CameraClearFlags.DepthStencil);
10474
+ // Copy RT's color buffer to grab texture
10475
+ rhi.copyRenderTargetToSubTexture(camera.renderTarget, this._grabTexture, camera.viewport);
10476
+ // Then blit grab texture to internal RT's color buffer
10477
+ PipelineUtils.blitTexture(engine, this._grabTexture, internalColorTarget, 0, undefined, undefined, undefined, // Only flip Y axis in webgl context
10478
+ !camera.renderTarget);
10479
+ } else {
10480
+ rhi.clearRenderTarget(engine, CameraClearFlags.All, color);
10481
+ }
10482
+ }
10483
+ rhi.activeRenderTarget(colorTarget, colorViewport, context.flipProjection, mipLevel, cubeFace);
10484
+ } else if (finalClearFlags !== CameraClearFlags.None) {
10485
+ rhi.clearRenderTarget(engine, finalClearFlags, color);
10329
10486
  }
10330
10487
  opaqueQueue.render(context, PipelineStage.Forward);
10331
10488
  alphaTestQueue.render(context, PipelineStage.Forward);
10332
- if (clearFlags & CameraClearFlags.Color) {
10489
+ if (finalClearFlags & CameraClearFlags.Color) {
10333
10490
  if (background.mode === BackgroundMode.Sky) {
10334
10491
  background.sky._render(context);
10335
10492
  } else if (background.mode === BackgroundMode.Texture && background.texture) {
@@ -10404,8 +10561,7 @@ var /**
10404
10561
  var shaderPass = shaderPasses[i];
10405
10562
  var renderState = shaderPass._renderState;
10406
10563
  if (renderState) {
10407
- renderState._applyRenderQueueByShaderData(shaderPass._renderStateDataMap, subRenderElement.material.shaderData);
10408
- renderQueueType = renderState.renderQueueType;
10564
+ renderQueueType = renderState._getRenderQueueByShaderData(shaderPass._renderStateDataMap, subRenderElement.material.shaderData);
10409
10565
  } else {
10410
10566
  renderQueueType = renderStates[i].renderQueueType;
10411
10567
  }
@@ -19990,7 +20146,7 @@ var MultiExecutor = /*#__PURE__*/ function() {
19990
20146
  var assetBaseURL = baseUrl;
19991
20147
  if (searchStr) {
19992
20148
  var params = searchStr.split("&");
19993
- for(var i = 0; i < params.length; i++){
20149
+ for(var i = params.length - 1; i >= 0; i--){
19994
20150
  var param = params[i];
19995
20151
  if (param.startsWith("q=")) {
19996
20152
  queryPath = decodeURIComponent(param.split("=")[1]);
@@ -20039,11 +20195,9 @@ var MultiExecutor = /*#__PURE__*/ function() {
20039
20195
  Logger.warn("refId:" + refId + " is not find in this._editorResourceConfig.");
20040
20196
  return Promise.resolve(null);
20041
20197
  }
20042
- var remoteUrl = resourceConfig.path;
20043
- var queryPath = new URL(remoteUrl).search;
20044
- var url = resourceConfig.virtualPath + queryPath;
20198
+ var url = resourceConfig.virtualPath;
20045
20199
  if (key) {
20046
- url += (url.indexOf("?") > -1 ? "&" : "?") + "q=" + key;
20200
+ url += "?q=" + key;
20047
20201
  }
20048
20202
  promise = this.load({
20049
20203
  url: url,
@@ -23253,7 +23407,7 @@ __decorate([
23253
23407
  ParticleBufferUtils.boundsMaxLifetimeOffset = 7;
23254
23408
  })();
23255
23409
 
23256
- var blitFs = "#define GLSLIFY 1\nuniform mediump sampler2D renderer_BlitTexture;\n#ifdef HAS_TEX_LOD\nuniform float renderer_BlitMipLevel;\n#endif\nvarying vec2 v_uv;void main(){\n#ifdef HAS_TEX_LOD\ngl_FragColor=texture2DLodEXT(renderer_BlitTexture,v_uv,renderer_BlitMipLevel);\n#else\ngl_FragColor=texture2D(renderer_BlitTexture,v_uv);\n#endif\n}"; // eslint-disable-line
23410
+ var blitFs = "#define GLSLIFY 1\nuniform mediump sampler2D renderer_BlitTexture;\n#ifdef HAS_TEX_LOD\nuniform float renderer_BlitMipLevel;\n#endif\nvarying vec2 v_uv;void main(){vec2 uv=v_uv;\n#ifdef renderer_FlipYBlitTexture\nuv.y=1.0-uv.y;\n#endif\n#ifdef HAS_TEX_LOD\ngl_FragColor=texture2DLodEXT(renderer_BlitTexture,uv,renderer_BlitMipLevel);\n#else\ngl_FragColor=texture2D(renderer_BlitTexture,uv);\n#endif\n}"; // eslint-disable-line
23257
23411
 
23258
23412
  var blitVs = "#define GLSLIFY 1\nattribute vec4 POSITION_UV;varying vec2 v_uv;void main(){gl_Position=vec4(POSITION_UV.xy,0.0,1.0);v_uv=POSITION_UV.zw;}"; // eslint-disable-line
23259
23413
 
@@ -29153,13 +29307,11 @@ var AnimatorLayerBlendingMode;
29153
29307
  return true;
29154
29308
  };
29155
29309
  _proto._applyTransition = function _applyTransition(layerIndex, layerData, layer, transition, aniUpdate) {
29156
- // Need prepare first, it should crossFade when to exit
29157
- var success = this._prepareCrossFadeByTransition(transition, layerIndex);
29158
29310
  if (transition.isExit) {
29159
29311
  this._checkAnyAndEntryState(layerIndex, layerData, layer, 0, aniUpdate);
29160
- return true;
29312
+ return false;
29161
29313
  }
29162
- return success;
29314
+ return this._prepareCrossFadeByTransition(transition, layerIndex);
29163
29315
  };
29164
29316
  _proto._checkConditions = function _checkConditions(state, transition) {
29165
29317
  var _state;
@@ -34556,5 +34708,73 @@ var cacheDir = new Vector3();
34556
34708
  return CubeProbe;
34557
34709
  }(Probe);
34558
34710
 
34711
+ /**
34712
+ * @internal
34713
+ */ var Polyfill = /*#__PURE__*/ function() {
34714
+ function Polyfill() {}
34715
+ Polyfill.registerPolyfill = function registerPolyfill() {
34716
+ Polyfill._registerMatchAll();
34717
+ };
34718
+ Polyfill._registerMatchAll = function _registerMatchAll() {
34719
+ if (!String.prototype.matchAll) {
34720
+ Logger.info("polyfill String.prototype.matchAll");
34721
+ String.prototype.matchAll = function(pattern) {
34722
+ var flags = pattern.flags;
34723
+ var globalFlagIdx = flags.indexOf("g");
34724
+ if (globalFlagIdx === -1) {
34725
+ throw TypeError("String.prototype.matchAll called with a non-global RegExp argument");
34726
+ }
34727
+ var bindThis = this;
34728
+ return function() {
34729
+ var matchResult, matchFlag, matchPattern, _tmp, _tmp1, _i, index, item;
34730
+ return __generator(this, function(_state) {
34731
+ switch(_state.label){
34732
+ case 0:
34733
+ matchResult = bindThis.match(pattern);
34734
+ if (matchResult == null) return [
34735
+ 2,
34736
+ null
34737
+ ];
34738
+ matchFlag = flags.split("g").join("");
34739
+ matchPattern = new RegExp(pattern.source, matchFlag);
34740
+ _tmp = [];
34741
+ for(_tmp1 in matchResult)_tmp.push(_tmp1);
34742
+ _i = 0;
34743
+ _state.label = 1;
34744
+ case 1:
34745
+ if (!(_i < _tmp.length)) return [
34746
+ 3,
34747
+ 4
34748
+ ];
34749
+ index = _tmp[_i];
34750
+ item = matchResult[index];
34751
+ return [
34752
+ 4,
34753
+ item.match(matchPattern)
34754
+ ];
34755
+ case 2:
34756
+ _state.sent();
34757
+ _state.label = 3;
34758
+ case 3:
34759
+ _i++;
34760
+ return [
34761
+ 3,
34762
+ 1
34763
+ ];
34764
+ case 4:
34765
+ return [
34766
+ 2
34767
+ ];
34768
+ }
34769
+ });
34770
+ }();
34771
+ };
34772
+ }
34773
+ };
34774
+ return Polyfill;
34775
+ }();
34776
+
34777
+ Polyfill.registerPolyfill();
34778
+
34559
34779
  export { AmbientLight, AnimationArrayCurve, AnimationBoolCurve, AnimationClip, AnimationClipCurveBinding, AnimationColorCurve, AnimationCurve, AnimationEvent, AnimationFloatArrayCurve, AnimationFloatCurve, AnimationQuaternionCurve, AnimationRectCurve, AnimationRefCurve, AnimationStringCurve, AnimationVector2Curve, AnimationVector3Curve, AnimationVector4Curve, Animator, AnimatorCondition, AnimatorConditionMode, AnimatorController, AnimatorControllerLayer, AnimatorControllerParameter, AnimatorCullingMode, AnimatorLayerBlendingMode, AnimatorLayerMask, AnimatorState, AnimatorStateMachine, AnimatorStateTransition, AssetPromise, AssetType, Background, BackgroundMode, BackgroundTextureFillMode, BaseMaterial, BasicRenderPipeline, BlendFactor, BlendMode, BlendOperation, BlendShape, BlendShapeFrame, BlendState, BlinnPhongMaterial, BloomDownScaleMode, BloomEffect, BoolUpdateFlag, BoxColliderShape, BoxShape, Buffer, BufferBindFlag, BufferMesh, BufferUsage, BufferUtil, Burst, Camera, CameraClearFlags, CameraType, Canvas, CapsuleColliderShape, CharacterController, CircleShape, ClearableObjectPool, CloneManager, Collider, ColliderShape, ColliderShapeUpAxis, CollisionDetectionMode, ColorOverLifetimeModule, ColorSpace, ColorWriteMask, CompareFunction, Component, ConeEmitType, ConeShape, ContentRestorer, ControllerCollisionFlag, ControllerNonWalkableMode, CubeProbe, CullMode, CurveKey, DataType, DependentMode, DepthState, DepthTextureMode, DiffuseMode, DirectLight, DisorderedArray, Downsampling, DynamicCollider, DynamicColliderConstraints, EmissionModule, Engine, EngineObject, Entity, EventDispatcher, FixedJoint, FogMode, Font, FontStyle, GLCapabilityType, GradientAlphaKey, GradientColorKey, HemisphereShape, HingeJoint, HitResult, IndexBufferBinding, IndexFormat, InputManager, InterpolationType, Joint, JointLimits, JointMotor, Keyframe, Keys, Layer, LayerPathMask, Light, Loader, Logger, MSAASamples, MainModule, Material, Mesh, MeshRenderer, MeshTopology, ModelMesh, OverflowMode, PBRBaseMaterial, PBRMaterial, PBRSpecularMaterial, ParticleCompositeCurve, ParticleCompositeGradient, ParticleCurve, ParticleCurveMode, ParticleGenerator, ParticleGradient, ParticleGradientMode, ParticleMaterial, ParticleRenderMode, ParticleRenderer, ParticleScaleMode, ParticleShapeArcMode, ParticleShapeType, ParticleSimulationSpace, ParticleStopMode, PhysicsMaterial, PhysicsMaterialCombineMode, PhysicsScene, PipelineStage, PlaneColliderShape, Platform, PointLight, Pointer, PointerButton, PointerPhase, Primitive, PrimitiveMesh, Probe, RasterState, ReferResource, RenderBufferDepthFormat, RenderFace, RenderQueue, RenderQueueType, RenderState, RenderStateElementKey as RenderStateDataKey, RenderTarget, RenderTargetBlendState, Renderer, ReplacementFailureStrategy, ResourceManager, ReturnableObjectPool, RotationOverLifetimeModule, SafeLoopArray, Scene, SceneManager, Script, SetDataOptions, Shader, ShaderData, ShaderFactory, ShaderLib, ShaderMacro, ShaderMacroCollection, ShaderPass, ShaderPlatformTarget, ShaderProperty, ShaderPropertyType, ShaderTagKey, ShadowCascadesMode, ShadowResolution, ShadowType, SizeOverLifetimeModule, Skin, SkinnedMeshRenderer, Sky, SkyBoxMaterial, SkyProceduralMaterial, SphereColliderShape, SphereShape, SpotLight, SpringJoint, Sprite, SpriteAtlas, SpriteDrawMode, SpriteMask, SpriteMaskInteraction, SpriteMaskLayer, SpriteRenderer, SpriteTileMode, StateMachineScript, StaticCollider, StencilOperation, StencilState, SubMesh, SubPrimitive, SubShader, SunMode, SystemInfo, TextHorizontalAlignment, TextRenderer, TextUtils, TextVerticalAlignment, Texture, Texture2D, Texture2DArray, TextureCoordinate, TextureCube, TextureCubeFace, TextureDepthCompareFunction, TextureFilterMode, TextureFormat, TextureSheetAnimationModule, TextureUsage, TextureWrapMode, Time, TonemappingEffect, TonemappingMode, TrailMaterial, TrailRenderer, Transform, UnlitMaterial, Utils, VelocityOverLifetimeModule, VertexAttribute, VertexBufferBinding, VertexElement, VertexElementFormat, WrapMode, XRManager, _PostProcessManager, assignmentClone, deepClone, dependentComponents, ignoreClone, request, resourceLoader, shallowClone };
34560
34780
  //# sourceMappingURL=module.js.map