File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed
Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -333,16 +333,19 @@ const ViewUpdateResult& Tileset::updateViewGroupOffline(
333333
334334 // TODO: fix the fading for offline case
335335 // (https://github.com/CesiumGS/cesium-native/issues/549)
336+ this ->_asyncSystem .dispatchMainThreadTasks ();
336337 this ->updateViewGroup (viewGroup, frustums, 0 .0f );
337338 while (viewGroup.getPreviousLoadProgressPercentage () < 100 .0f ) {
338339 this ->_externals .pAssetAccessor ->tick ();
340+ this ->_asyncSystem .dispatchMainThreadTasks ();
339341 this ->loadTiles ();
340342
341343 // If there are no frustums, we'll never make any progress. So break here to
342344 // avoid getting stuck in an endless loop.
343345 if (frustums.empty ())
344346 break ;
345347
348+ this ->_asyncSystem .dispatchMainThreadTasks ();
346349 this ->updateViewGroup (viewGroup, frustums, 0 .0f );
347350 }
348351
@@ -371,9 +374,12 @@ const ViewUpdateResult& Tileset::updateViewGroupOffline(
371374}
372375
373376const ViewUpdateResult&
377+
374378Tileset::updateView (const std::vector<ViewState>& frustums, float deltaTime) {
379+ this ->_asyncSystem .dispatchMainThreadTasks ();
375380 const ViewUpdateResult& result =
376381 this ->updateViewGroup (this ->_defaultViewGroup , frustums, deltaTime);
382+ this ->_asyncSystem .dispatchMainThreadTasks ();
377383 this ->loadTiles ();
378384 return result;
379385}
Original file line number Diff line number Diff line change @@ -567,6 +567,13 @@ TEST_CASE("Test replace refinement for render") {
567567 }
568568 }
569569
570+ SUBCASE (
571+ " updateViewGroupOffline does its own dispatching of main thread tasks "
572+ " so it doesn't get stuck" ) {
573+ ViewState viewState = zoomToTileset (tileset);
574+ tileset.updateViewGroupOffline (tileset.getDefaultViewGroup (), {viewState});
575+ }
576+
570577 SUBCASE (
571578 " updateViewGroupOffline does not get stuck in an endless loop when no "
572579 " frustums are given" ) {
You can’t perform that action at this time.
0 commit comments