Skip to content

Commit d0d43f8

Browse files
author
hpinkos
committed
Fix #6858
1 parent 8ff642f commit d0d43f8

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

Source/Scene/QuadtreePrimitive.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -770,8 +770,11 @@ define([
770770
var scratchRay = new Ray();
771771
var scratchCartographic = new Cartographic();
772772
var scratchPosition = new Cartesian3();
773+
var scratchArray = [];
773774

774775
function updateHeights(primitive, frameState) {
776+
var tryNextFrame = scratchArray;
777+
tryNextFrame.length = 0;
775778
var tilesToUpdateHeights = primitive._tileToUpdateHeights;
776779
var terrainProvider = primitive._tileProvider.terrainProvider;
777780

@@ -782,14 +785,20 @@ define([
782785
var mode = frameState.mode;
783786
var projection = frameState.mapProjection;
784787
var ellipsoid = projection.ellipsoid;
788+
var i;
785789

786790
while (tilesToUpdateHeights.length > 0) {
787791
var tile = tilesToUpdateHeights[0];
792+
if (tile.state !== QuadtreeTileLoadState.DONE) {
793+
tryNextFrame.push(tile);
794+
tilesToUpdateHeights.shift();
795+
primitive._lastTileIndex = 0;
796+
continue;
797+
}
788798
var customData = tile.customData;
789799
var customDataLength = customData.length;
790800

791801
var timeSliceMax = false;
792-
var i;
793802
for (i = primitive._lastTileIndex; i < customDataLength; ++i) {
794803
var data = customData[i];
795804

@@ -869,6 +878,9 @@ define([
869878
tilesToUpdateHeights.shift();
870879
}
871880
}
881+
for (i = 0; i < tryNextFrame.length; i++) {
882+
tilesToUpdateHeights.push(tryNextFrame[i]);
883+
}
872884
}
873885

874886
function createRenderCommandsForSelectedTiles(primitive, frameState) {

0 commit comments

Comments
 (0)