@rings-webgpu/core 1.0.39 → 1.0.41

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.
@@ -42285,7 +42285,7 @@ class PostProcessingComponent extends ComponentBase {
42285
42285
  }
42286
42286
  }
42287
42287
 
42288
- const version = "1.0.38";
42288
+ const version = "1.0.41";
42289
42289
 
42290
42290
  class Engine3D {
42291
42291
  /**
@@ -65917,11 +65917,11 @@ function toggleTiles(tile, renderer) {
65917
65917
  const wasVisible = tile.__wasSetVisible;
65918
65918
  const wasActive = tile.__wasSetActive;
65919
65919
  if (wasActive !== setActive) {
65920
- renderer.setTileActive(tile, setActive);
65920
+ renderer.setTileDelayedActive(tile, setActive);
65921
65921
  tile.__wasSetActive = setActive;
65922
65922
  }
65923
65923
  if (wasVisible !== setVisible) {
65924
- renderer.setTileVisible(tile, setVisible);
65924
+ renderer.setTileDelayedVisible(tile, setVisible);
65925
65925
  tile.__wasSetVisible = setVisible;
65926
65926
  }
65927
65927
  }
@@ -66294,6 +66294,8 @@ class TilesRenderer {
66294
66294
  _activeTiles = /* @__PURE__ */ new Set();
66295
66295
  // Tiles that should be hidden but are delayed due to children loading
66296
66296
  _delayedHideTiles = /* @__PURE__ */ new Set();
66297
+ _delayedVisibleTiles = /* @__PURE__ */ new Set();
66298
+ _delayedActiveTiles = /* @__PURE__ */ new Set();
66297
66299
  // Rings-specific: Scene group
66298
66300
  group;
66299
66301
  // Rings-specific: Camera management
@@ -66412,6 +66414,8 @@ class TilesRenderer {
66412
66414
  _usedSet.clear();
66413
66415
  this.updateCameraInfo();
66414
66416
  this._checkDelayedHideTiles();
66417
+ this._checkDelayedActiveTiles();
66418
+ this._checkDelayedVisibleTiles();
66415
66419
  markUsedTiles(root, this);
66416
66420
  markUsedSetLeaves(root, this);
66417
66421
  markVisibleTiles(root, this);
@@ -66845,7 +66849,6 @@ class TilesRenderer {
66845
66849
  }
66846
66850
  if (scene) {
66847
66851
  tile.cached.scene = scene;
66848
- tile.loadingState = LOADED;
66849
66852
  const bytesUsed = this._estimateBytesUsed(scene);
66850
66853
  this._bytesUsed.set(scene, bytesUsed);
66851
66854
  this.lruCache.setMemoryUsage(tile, bytesUsed);
@@ -66863,10 +66866,21 @@ class TilesRenderer {
66863
66866
  });
66864
66867
  }
66865
66868
  {
66866
- this.setTileActive(tile, true);
66869
+ this.setTileImmediateActive(tile);
66867
66870
  tile.active = true;
66871
+ tile.__wasSetActive = true;
66868
66872
  this.stats.active++;
66869
66873
  }
66874
+ {
66875
+ this.setTileImmediateVisible(tile);
66876
+ tile.visible = true;
66877
+ tile.__wasSetVisible = true;
66878
+ this.stats.visible++;
66879
+ }
66880
+ tile.loadingState = LOADED;
66881
+ tile.usedLastFrame = true;
66882
+ markVisibleTiles(tile, this);
66883
+ toggleTiles(tile, this);
66870
66884
  } else {
66871
66885
  tile.loadingState = FAILED;
66872
66886
  this.stats.failed++;
@@ -66882,33 +66896,46 @@ class TilesRenderer {
66882
66896
  /**
66883
66897
  * Set tile active state
66884
66898
  */
66885
- setTileActive(tile, active) {
66899
+ setTileDelayedActive(tile, active) {
66886
66900
  if (active) {
66887
66901
  this._activeTiles.add(tile);
66888
66902
  if (this._delayedHideTiles.has(tile)) {
66889
66903
  this._delayedHideTiles.delete(tile);
66890
66904
  }
66905
+ if (!this._delayedActiveTiles.has(tile)) {
66906
+ this._delayedActiveTiles.add(tile);
66907
+ }
66891
66908
  } else {
66892
66909
  this._activeTiles.delete(tile);
66910
+ if (!this._delayedHideTiles.has(tile)) {
66911
+ this._delayedHideTiles.add(tile);
66912
+ }
66913
+ if (this._delayedActiveTiles.has(tile)) {
66914
+ this._delayedActiveTiles.delete(tile);
66915
+ }
66893
66916
  }
66894
- const scene = tile.cached.scene;
66895
- if (!scene) {
66896
- return;
66897
- }
66898
- if (active) {
66899
- if (!this.group.entityChildren.includes(scene)) {
66900
- if (scene.parent) {
66901
- scene.parent.object3D.removeChild(scene);
66917
+ }
66918
+ setTileImmediateActive(tile) {
66919
+ if (tile.hasRenderableContent) {
66920
+ const scene = tile.cached.scene;
66921
+ if (scene) {
66922
+ if (!this.group.entityChildren.includes(scene)) {
66923
+ if (scene.parent) {
66924
+ scene.parent.object3D.removeChild(scene);
66925
+ }
66926
+ this.group.addChild(scene);
66927
+ }
66928
+ if (tile.cached.worldTransform) {
66929
+ this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
66902
66930
  }
66903
- this.group.addChild(scene);
66904
- }
66905
- if (tile.cached.worldTransform) {
66906
- this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
66907
66931
  }
66908
- scene.transform.enable = true;
66909
- } else {
66910
- if (!this._delayedHideTiles.has(tile)) {
66911
- this._delayedHideTiles.add(tile);
66932
+ }
66933
+ }
66934
+ setTileImmediateVisible(tile) {
66935
+ if (tile.hasRenderableContent) {
66936
+ const scene = tile.cached.scene;
66937
+ if (scene) {
66938
+ scene.transform.enable = true;
66912
66939
  }
66913
66940
  }
66914
66941
  }
@@ -66920,35 +66947,67 @@ class TilesRenderer {
66920
66947
  return;
66921
66948
  }
66922
66949
  for (const tile of this._delayedHideTiles) {
66923
- this._delayedHideTiles.delete(tile);
66924
66950
  const scene = tile.cached.scene;
66925
66951
  if (scene) {
66926
66952
  scene.transform.enable = false;
66953
+ this._delayedHideTiles.delete(tile);
66954
+ }
66955
+ }
66956
+ }
66957
+ _checkDelayedActiveTiles() {
66958
+ for (const tile of this._delayedActiveTiles) {
66959
+ if (tile.hasRenderableContent) {
66960
+ const scene = tile.cached.scene;
66961
+ if (scene) {
66962
+ if (!this.group.entityChildren.includes(scene)) {
66963
+ if (scene.parent) {
66964
+ scene.parent.object3D.removeChild(scene);
66965
+ }
66966
+ this.group.addChild(scene);
66967
+ }
66968
+ if (tile.cached.worldTransform) {
66969
+ this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
66970
+ }
66971
+ this._delayedActiveTiles.delete(tile);
66972
+ }
66973
+ } else {
66974
+ this._delayedActiveTiles.delete(tile);
66975
+ }
66976
+ }
66977
+ }
66978
+ _checkDelayedVisibleTiles() {
66979
+ for (const tile of this._delayedVisibleTiles) {
66980
+ if (tile.hasRenderableContent) {
66981
+ const scene = tile.cached.scene;
66982
+ if (scene) {
66983
+ scene.transform.enable = true;
66984
+ this._delayedVisibleTiles.delete(tile);
66985
+ }
66986
+ } else {
66987
+ this._delayedVisibleTiles.delete(tile);
66927
66988
  }
66928
66989
  }
66929
66990
  }
66930
66991
  /**
66931
66992
  * Set tile visibility
66932
66993
  */
66933
- setTileVisible(tile, visible) {
66994
+ setTileDelayedVisible(tile, visible) {
66934
66995
  if (visible) {
66935
66996
  this._visibleTiles.add(tile);
66936
66997
  if (this._delayedHideTiles.has(tile)) {
66937
66998
  this._delayedHideTiles.delete(tile);
66938
66999
  }
67000
+ if (!this._delayedVisibleTiles.has(tile)) {
67001
+ this._delayedVisibleTiles.add(tile);
67002
+ }
66939
67003
  } else {
66940
67004
  this._visibleTiles.delete(tile);
66941
- }
66942
- const scene = tile.cached.scene;
66943
- if (!scene) {
66944
- return;
66945
- }
66946
- if (visible) {
66947
- scene.transform.enable = true;
66948
- } else {
66949
67005
  if (!this._delayedHideTiles.has(tile)) {
66950
67006
  this._delayedHideTiles.add(tile);
66951
67007
  }
67008
+ if (this._delayedVisibleTiles.has(tile)) {
67009
+ this._delayedVisibleTiles.delete(tile);
67010
+ }
66952
67011
  }
66953
67012
  }
66954
67013
  /**