@galacean/engine-core 1.2.0-beta.5 → 1.2.0-beta.6

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/main.js CHANGED
@@ -3984,6 +3984,7 @@ var ShaderFactory = /*#__PURE__*/ function() {
3984
3984
  var program = this._glProgram;
3985
3985
  var uniformInfos = this._getUniformInfos();
3986
3986
  var attributeInfos = this._getAttributeInfos();
3987
+ var basicResources = this._engine._basicResources;
3987
3988
  uniformInfos.forEach(function(param) {
3988
3989
  var name = param.name, size = param.size, type = param.type;
3989
3990
  var shaderUniform = new ShaderUniform(_this._engine);
@@ -4077,16 +4078,16 @@ var ShaderFactory = /*#__PURE__*/ function() {
4077
4078
  var defaultTexture;
4078
4079
  switch(type){
4079
4080
  case gl.SAMPLER_2D:
4080
- defaultTexture = _this._engine._magentaTexture2D;
4081
+ defaultTexture = basicResources.whiteTexture2D;
4081
4082
  break;
4082
4083
  case gl.SAMPLER_CUBE:
4083
- defaultTexture = _this._engine._magentaTextureCube;
4084
+ defaultTexture = basicResources.whiteTextureCube;
4084
4085
  break;
4085
4086
  case gl.UNSIGNED_INT_SAMPLER_2D:
4086
- defaultTexture = _this._engine._uintMagentaTexture2D;
4087
+ defaultTexture = basicResources.uintWhiteTexture2D;
4087
4088
  break;
4088
4089
  case gl.SAMPLER_2D_ARRAY:
4089
- defaultTexture = _this._engine._magentaTexture2DArray;
4090
+ defaultTexture = basicResources.whiteTexture2DArray;
4090
4091
  break;
4091
4092
  case gl.SAMPLER_2D_SHADOW:
4092
4093
  defaultTexture = _this._engine._depthTexture2D;
@@ -6416,14 +6417,15 @@ SlicedSpriteAssembler = __decorate([
6416
6417
  }
6417
6418
  this._endLoop(swapFn);
6418
6419
  };
6419
- _proto.forEachAndClean = function forEachAndClean(callbackFn) {
6420
+ _proto.forEachAndClean = function forEachAndClean(callbackFn, swapFn) {
6420
6421
  this._startLoop();
6422
+ var preEnd = this.length;
6421
6423
  var elements = this._elements;
6422
- for(var i = 0, n = this.length; i < n; i++){
6424
+ for(var i = 0, n = preEnd; i < n; i++){
6423
6425
  var element = elements[i];
6424
6426
  element && callbackFn(element);
6425
6427
  }
6426
- this._endLoopAndClear();
6428
+ this._endLoopAndClean(preEnd, elements, swapFn);
6427
6429
  };
6428
6430
  _proto.sort = function sort(compareFn) {
6429
6431
  Utils._quickSort(this._elements, 0, this.length, compareFn);
@@ -6456,9 +6458,17 @@ SlicedSpriteAssembler = __decorate([
6456
6458
  this._blankCount = 0;
6457
6459
  }
6458
6460
  };
6459
- _proto._endLoopAndClear = function _endLoopAndClear() {
6461
+ _proto._endLoopAndClean = function _endLoopAndClean(preEnd, elements, swapFn) {
6462
+ var index = 0;
6463
+ for(var i = preEnd, n = this.length; i < n; i++){
6464
+ var element = elements[i];
6465
+ if (!element) continue;
6466
+ elements[index] = element;
6467
+ swapFn(element, index);
6468
+ index++;
6469
+ }
6460
6470
  this._isLooping = false;
6461
- this.length = 0;
6471
+ this.length = index;
6462
6472
  this._blankCount = 0;
6463
6473
  };
6464
6474
  return DisorderedArray;
@@ -15860,6 +15870,26 @@ var BaseMaterial = /*#__PURE__*/ function(Material1) {
15860
15870
  this.blitMesh = this._createBlitMesh(engine, vertices);
15861
15871
  this.flipYBlitMesh = this._createBlitMesh(engine, flipYVertices);
15862
15872
  this.blitMaterial = blitMaterial;
15873
+ // Create white and magenta textures
15874
+ var whitePixel = new Uint8Array([
15875
+ 255,
15876
+ 255,
15877
+ 255,
15878
+ 255
15879
+ ]);
15880
+ this.whiteTexture2D = this._create1x1Texture(engine, 0, exports.TextureFormat.R8G8B8A8, whitePixel);
15881
+ this.whiteTextureCube = this._create1x1Texture(engine, 1, exports.TextureFormat.R8G8B8A8, whitePixel);
15882
+ var isWebGL2 = engine._hardwareRenderer.isWebGL2;
15883
+ if (isWebGL2) {
15884
+ this.whiteTexture2DArray = this._create1x1Texture(engine, 2, exports.TextureFormat.R8G8B8A8, whitePixel);
15885
+ var whitePixel32 = new Uint32Array([
15886
+ 255,
15887
+ 255,
15888
+ 255,
15889
+ 255
15890
+ ]);
15891
+ this.uintWhiteTexture2D = this._create1x1Texture(engine, 0, exports.TextureFormat.R32G32B32A32_UInt, whitePixel32);
15892
+ }
15863
15893
  }
15864
15894
  var _proto = BasicResources.prototype;
15865
15895
  _proto._createBlitMesh = function _createBlitMesh(engine, vertices) {
@@ -15872,8 +15902,63 @@ var BaseMaterial = /*#__PURE__*/ function(Material1) {
15872
15902
  mesh.addSubMesh(0, 4, exports.MeshTopology.TriangleStrip);
15873
15903
  return mesh;
15874
15904
  };
15905
+ _proto._create1x1Texture = function _create1x1Texture(engine, type, format, pixel) {
15906
+ var texture;
15907
+ switch(type){
15908
+ case 0:
15909
+ var texture2D = new Texture2D(engine, 1, 1, format, false);
15910
+ texture2D.setPixelBuffer(pixel);
15911
+ texture = texture2D;
15912
+ break;
15913
+ case 2:
15914
+ var texture2DArray = new Texture2DArray(engine, 1, 1, 1, format, false);
15915
+ texture2DArray.setPixelBuffer(0, pixel);
15916
+ texture = texture2DArray;
15917
+ break;
15918
+ case 1:
15919
+ var textureCube = new TextureCube(engine, 1, format, false);
15920
+ for(var i = 0; i < 6; i++){
15921
+ textureCube.setPixelBuffer(exports.TextureCubeFace.PositiveX + i, pixel);
15922
+ }
15923
+ texture = textureCube;
15924
+ break;
15925
+ default:
15926
+ throw "Invalid texture type";
15927
+ }
15928
+ texture.isGCIgnored = true;
15929
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
15930
+ _inherits(_class, ContentRestorer);
15931
+ function _class() {
15932
+ return ContentRestorer.call(this, texture);
15933
+ }
15934
+ var _proto = _class.prototype;
15935
+ _proto.restoreContent = function restoreContent() {
15936
+ switch(type){
15937
+ case 0:
15938
+ this.resource.setPixelBuffer(pixel);
15939
+ break;
15940
+ case 2:
15941
+ this.resource.setPixelBuffer(0, pixel);
15942
+ break;
15943
+ case 1:
15944
+ for(var i = 0; i < 6; i++){
15945
+ this.resource.setPixelBuffer(exports.TextureCubeFace.PositiveX + i, pixel);
15946
+ }
15947
+ break;
15948
+ }
15949
+ };
15950
+ return _class;
15951
+ }(ContentRestorer))());
15952
+ return texture;
15953
+ };
15875
15954
  return BasicResources;
15876
15955
  }();
15956
+ var TextureType;
15957
+ (function(TextureType) {
15958
+ TextureType[TextureType["Texture2D"] = 0] = "Texture2D";
15959
+ TextureType[TextureType["TextureCube"] = 1] = "TextureCube";
15960
+ TextureType[TextureType["Texture2DArray"] = 2] = "Texture2DArray";
15961
+ })(TextureType || (TextureType = {}));
15877
15962
 
15878
15963
  /**
15879
15964
  * @internal
@@ -20406,7 +20491,6 @@ ShaderPool.init();
20406
20491
  _this.xrManager = new XRManager();
20407
20492
  _this.xrManager._initialize(_assert_this_initialized(_this), xrDevice);
20408
20493
  }
20409
- _this._initMagentaTextures(hardwareRenderer);
20410
20494
  if (!hardwareRenderer.canIUse(exports.GLCapabilityType.depthTexture)) {
20411
20495
  _this._macroCollection.enable(Engine._noDepthTextureMacro);
20412
20496
  } else {
@@ -20642,99 +20726,6 @@ ShaderPool.init();
20642
20726
  };
20643
20727
  /**
20644
20728
  * @internal
20645
- * Standalone for CanvasRenderer plugin.
20646
- */ _proto._initMagentaTextures = function _initMagentaTextures(hardwareRenderer) {
20647
- var whitePixel = new Uint8Array([
20648
- 255,
20649
- 255,
20650
- 255,
20651
- 255
20652
- ]);
20653
- var whiteTexture2D = new Texture2D(this, 1, 1, exports.TextureFormat.R8G8B8A8, false);
20654
- whiteTexture2D.setPixelBuffer(whitePixel);
20655
- whiteTexture2D.isGCIgnored = true;
20656
- var magentaPixel = new Uint8Array([
20657
- 255,
20658
- 0,
20659
- 255,
20660
- 255
20661
- ]);
20662
- var magentaTexture2D = new Texture2D(this, 1, 1, exports.TextureFormat.R8G8B8A8, false);
20663
- magentaTexture2D.setPixelBuffer(magentaPixel);
20664
- magentaTexture2D.isGCIgnored = true;
20665
- this.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
20666
- _inherits(_class, ContentRestorer);
20667
- function _class() {
20668
- return ContentRestorer.call(this, magentaTexture2D);
20669
- }
20670
- var _proto = _class.prototype;
20671
- _proto.restoreContent = function restoreContent() {
20672
- this.resource.setPixelBuffer(magentaPixel);
20673
- };
20674
- return _class;
20675
- }(ContentRestorer))());
20676
- var magentaTextureCube = new TextureCube(this, 1, exports.TextureFormat.R8G8B8A8, false);
20677
- for(var i = 0; i < 6; i++){
20678
- magentaTextureCube.setPixelBuffer(exports.TextureCubeFace.PositiveX + i, magentaPixel);
20679
- }
20680
- magentaTextureCube.isGCIgnored = true;
20681
- this.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
20682
- _inherits(_class, ContentRestorer);
20683
- function _class() {
20684
- return ContentRestorer.call(this, magentaTextureCube);
20685
- }
20686
- var _proto = _class.prototype;
20687
- _proto.restoreContent = function restoreContent() {
20688
- for(var i = 0; i < 6; i++){
20689
- this.resource.setPixelBuffer(exports.TextureCubeFace.PositiveX + i, magentaPixel);
20690
- }
20691
- };
20692
- return _class;
20693
- }(ContentRestorer))());
20694
- this._whiteTexture2D = whiteTexture2D;
20695
- this._magentaTexture2D = magentaTexture2D;
20696
- this._magentaTextureCube = magentaTextureCube;
20697
- if (hardwareRenderer.isWebGL2) {
20698
- var magentaPixel32 = new Uint32Array([
20699
- 255,
20700
- 0,
20701
- 255,
20702
- 255
20703
- ]);
20704
- var uintMagentaTexture2D = new Texture2D(this, 1, 1, exports.TextureFormat.R32G32B32A32_UInt, false);
20705
- uintMagentaTexture2D.setPixelBuffer(magentaPixel32);
20706
- uintMagentaTexture2D.isGCIgnored = true;
20707
- this.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
20708
- _inherits(_class, ContentRestorer);
20709
- function _class() {
20710
- return ContentRestorer.call(this, uintMagentaTexture2D);
20711
- }
20712
- var _proto = _class.prototype;
20713
- _proto.restoreContent = function restoreContent() {
20714
- this.resource.setPixelBuffer(magentaPixel32);
20715
- };
20716
- return _class;
20717
- }(ContentRestorer))());
20718
- var magentaTexture2DArray = new Texture2DArray(this, 1, 1, 1, exports.TextureFormat.R8G8B8A8, false);
20719
- magentaTexture2DArray.setPixelBuffer(0, magentaPixel);
20720
- magentaTexture2DArray.isGCIgnored = true;
20721
- this.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
20722
- _inherits(_class, ContentRestorer);
20723
- function _class() {
20724
- return ContentRestorer.call(this, magentaTexture2DArray);
20725
- }
20726
- var _proto = _class.prototype;
20727
- _proto.restoreContent = function restoreContent() {
20728
- this.resource.setPixelBuffer(0, magentaPixel);
20729
- };
20730
- return _class;
20731
- }(ContentRestorer))());
20732
- this._uintMagentaTexture2D = uintMagentaTexture2D;
20733
- this._magentaTexture2DArray = magentaTexture2DArray;
20734
- }
20735
- };
20736
- /**
20737
- * @internal
20738
20729
  */ _proto._pendingGC = function _pendingGC() {
20739
20730
  if (this._frameInProcess) {
20740
20731
  this._waitingGC = true;
@@ -21374,6 +21365,8 @@ ShaderPool.init();
21374
21365
  script._started = true;
21375
21366
  _this.removeOnStartScript(script);
21376
21367
  script.onStart();
21368
+ }, function(element, index) {
21369
+ element._onStartIndex = index;
21377
21370
  });
21378
21371
  }
21379
21372
  };
@@ -24314,7 +24307,7 @@ var /**
24314
24307
  depthOnlyPass.onConfig(camera);
24315
24308
  depthOnlyPass.onRender(context, cullingResults);
24316
24309
  } else {
24317
- camera.shaderData.setTexture(exports.Camera._cameraDepthTextureProperty, engine._whiteTexture2D);
24310
+ camera.shaderData.setTexture(exports.Camera._cameraDepthTextureProperty, engine._basicResources.whiteTexture2D);
24318
24311
  }
24319
24312
  // Check if need to create internal color texture
24320
24313
  var independentCanvasEnabled = camera.independentCanvasEnabled;