viewer-private#398 Fix constant asset rerequests
parent
941c002877
commit
b2e3159ce7
|
|
@ -356,8 +356,9 @@ void GLTFSceneManager::addGLTFObject(LLViewerObject* obj, LLUUID gltf_id)
|
|||
llassert(obj->getVolume()->getParams().getSculptID() == gltf_id);
|
||||
llassert(obj->getVolume()->getParams().getSculptType() == LL_SCULPT_TYPE_GLTF);
|
||||
|
||||
if (obj->mGLTFAsset)
|
||||
{ // object already has a GLTF asset, don't reload it
|
||||
if (obj->mGLTFAsset || obj->mIsGLTFAssetMissing )
|
||||
{
|
||||
// object already has a GLTF asset or load failed, don't reload it
|
||||
|
||||
// TODO: below assertion fails on dupliate requests for assets -- possibly need to touch up asset loading state machine
|
||||
// llassert(std::find(mObjects.begin(), mObjects.end(), obj) != mObjects.end());
|
||||
|
|
@ -398,16 +399,19 @@ void GLTFSceneManager::onGLTFBinLoadComplete(const LLUUID& id, LLAssetType::ETyp
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("GLTF") << "Failed to prepare GLTF asset: " << id << LL_ENDL;
|
||||
LL_WARNS("GLTF") << "Failed to prepare GLTF asset: " << id << ". Marking as missing." << LL_ENDL;
|
||||
obj->mIsGLTFAssetMissing = true;
|
||||
obj->mGLTFAsset = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
obj->unref(); // todo: use LLPointer
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("GLTF") << "Failed to load GLTF asset: " << id << LL_ENDL;
|
||||
LL_WARNS("GLTF") << "Failed to load GLTF asset: " << id << ". Marking as missing." << LL_ENDL;
|
||||
obj->mIsGLTFAssetMissing = true;
|
||||
obj->unref();
|
||||
}
|
||||
});
|
||||
|
|
@ -446,7 +450,8 @@ void GLTFSceneManager::onGLTFLoadComplete(const LLUUID& id, LLAssetType::EType a
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("GLTF") << "Buffer URI is not a valid UUID: " << buffer.mUri << LL_ENDL;
|
||||
LL_WARNS("GLTF") << "Buffer URI is not a valid UUID: " << buffer.mUri << " for asset id: " << id << ". Marking as missing." << LL_ENDL;
|
||||
obj->mIsGLTFAssetMissing = true;
|
||||
obj->unref();
|
||||
return;
|
||||
}
|
||||
|
|
@ -455,7 +460,8 @@ void GLTFSceneManager::onGLTFLoadComplete(const LLUUID& id, LLAssetType::EType a
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("GLTF") << "Failed to load GLTF asset: " << id << LL_ENDL;
|
||||
LL_WARNS("GLTF") << "Failed to load GLTF asset: " << id << ". Marking as missing." << LL_ENDL;
|
||||
obj->mIsGLTFAssetMissing = true;
|
||||
obj->unref();
|
||||
}
|
||||
}
|
||||
|
|
@ -517,6 +523,7 @@ void GLTFSceneManager::update()
|
|||
if (mUploadingObject)
|
||||
{
|
||||
mUploadingObject->mGLTFAsset = nullptr;
|
||||
mUploadingObject->mIsGLTFAssetMissing = false;
|
||||
mUploadingObject->setGLTFAsset(assetId);
|
||||
mUploadingObject->markForUpdate();
|
||||
mUploadingObject = nullptr;
|
||||
|
|
|
|||
|
|
@ -758,6 +758,7 @@ public:
|
|||
|
||||
// Associated GLTF Asset
|
||||
std::shared_ptr<LL::GLTF::Asset> mGLTFAsset;
|
||||
bool mIsGLTFAssetMissing = false;
|
||||
|
||||
// Pipeline classes
|
||||
LLPointer<LLDrawable> mDrawable;
|
||||
|
|
|
|||
Loading…
Reference in New Issue