Skip to content

Commit 9296317

Browse files
committed
Handle URLs too
1 parent 732ff41 commit 9296317

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

Cesium3DTilesSelection/src/TilesetContentManager.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,8 @@ TilesetContentManager::createFromUrl(
859859
pManager->_rootTileAvailablePromise.reject(
860860
std::runtime_error("Root tile failed to load."));
861861
});
862+
} else {
863+
pManager->_rootTileAvailablePromise.resolve();
862864
}
863865

864866
return pManager;

Cesium3DTilesSelection/test/TestTilesetContentManager.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,25 @@ TEST_CASE("Test tile state machine") {
878878
CHECK(!upsampledTile.getContent().getRenderContent());
879879
}
880880

881+
SUBCASE("Resolves root tile promise for invalid URL") {
882+
// create manager
883+
TilesetOptions options{};
884+
options.contentOptions.generateMissingNormalsSmooth = true;
885+
886+
// Create an invalid Cesium ion loader that will never attempt to make a
887+
// request.
888+
IntrusivePointer<TilesetContentManager> pManager =
889+
TilesetContentManager::createFromUrl(externals, options, std::string());
890+
891+
bool eventResolved = false;
892+
pManager->getRootTileAvailableEvent().thenInMainThread(
893+
[&eventResolved]() { eventResolved = true; });
894+
895+
pManager->waitUntilIdle(5000.0);
896+
CHECK(eventResolved);
897+
CHECK(!pManager->getRootTile());
898+
}
899+
881900
SUBCASE("Resolves root tile promise for invalid loader") {
882901
// create manager
883902
TilesetOptions options{};

0 commit comments

Comments
 (0)