File tree Expand file tree Collapse file tree 3 files changed +17
-0
lines changed Expand file tree Collapse file tree 3 files changed +17
-0
lines changed Original file line number Diff line number Diff line change 14
14
- Added ` element_type ` to ` IntrusivePointer ` , allowing it to be used with ` std::pointer_types ` .
15
15
- Added implicit conversion of ` IntrusivePointer<T> ` to ` T* ` .
16
16
17
+ ##### Fixes :wrench :
18
+
19
+ - Fixed a bug in ` Tileset::updateViewGroupOffline ` that would cause it to get stuck in an endless loop when invoked with no frustums.
20
+
17
21
### v0.50.0 - 2025-08-01
18
22
19
23
##### Breaking Changes :mega :
Original file line number Diff line number Diff line change @@ -330,6 +330,12 @@ const ViewUpdateResult& Tileset::updateViewGroupOffline(
330
330
while (viewGroup.getPreviousLoadProgressPercentage () < 100 .0f ) {
331
331
this ->_externals .pAssetAccessor ->tick ();
332
332
this ->loadTiles ();
333
+
334
+ // If there are no frustums, we'll never make any progress. So break here to
335
+ // avoid getting stuck in an endless loop.
336
+ if (frustums.empty ())
337
+ break ;
338
+
333
339
this ->updateViewGroup (viewGroup, frustums, 0 .0f );
334
340
}
335
341
Original file line number Diff line number Diff line change @@ -550,6 +550,13 @@ TEST_CASE("Test replace refinement for render") {
550
550
REQUIRE (result.culledTilesVisited == 0 );
551
551
}
552
552
}
553
+
554
+ SUBCASE (
555
+ " updateViewGroupOffline does not get stuck in an endless loop when no "
556
+ " frustums are given" ) {
557
+ std::vector<ViewState> empty;
558
+ tileset.updateViewGroupOffline (tileset.getDefaultViewGroup (), empty);
559
+ }
553
560
}
554
561
555
562
TEST_CASE (" Test additive refinement" ) {
You can’t perform that action at this time.
0 commit comments