summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2009-11-25 11:35:41 -0600
committerDave Parks <davep@lindenlab.com>2009-11-25 11:35:41 -0600
commit6d66910c6e2fbb25bf8b5c7b90e795f350342104 (patch)
tree39f6858dc265ab2fb828954e87f3b5df5a85424e /indra/newview/pipeline.cpp
parent62233f22469cdc66042fc7bbbbd367dbb7212fde (diff)
Fix for spam on invalid mesh asset.
Fix for index buffer overflow spam and crash in llvertexbuffer.
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r--indra/newview/pipeline.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 0ee619244b..af3a35615c 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1807,8 +1807,6 @@ void LLPipeline::rebuildPriorityGroups()
assertInitialized();
- notifyLoadedMeshes();
-
// Iterate through all drawables on the priority build queue,
for (LLSpatialGroup::sg_list_t::iterator iter = mGroupQ1.begin();
iter != mGroupQ1.end(); ++iter)
@@ -1888,6 +1886,8 @@ void LLPipeline::updateGeom(F32 max_dtime)
// for now, only LLVOVolume does this to throttle LOD changes
LLVOVolume::preUpdateGeom();
+ notifyLoadedMeshes();
+
// Iterate through all drawables on the priority build queue,
for (LLDrawable::drawable_list_t::iterator iter = mBuildQ1.begin();
iter != mBuildQ1.end();)
@@ -8913,7 +8913,6 @@ LLCullResult::sg_list_t::iterator LLPipeline::endAlphaGroups()
void LLPipeline::loadMesh(LLVOVolume* vobj, LLUUID mesh_id, S32 detail)
{
-
if (detail < 0 || detail > 4)
{
return;
@@ -9093,10 +9092,6 @@ void LLPipeline::notifyLoadedMeshes()
for (std::list<LLMeshThread*>::iterator iter = mLoadedMeshes.begin(); iter != mLoadedMeshes.end(); ++iter)
{ //for each mesh done loading
-
-
-
-
LLMeshThread* mesh = *iter;
if (!mesh->isStopped())
@@ -9131,14 +9126,13 @@ void LLPipeline::notifyLoadedMeshes()
if (valid)
{
- if (mesh->mVolume->getNumVolumeFaces() > 0)
- {
- mesh->mTargetVolume->copyVolumeFaces(mesh->mVolume);
- }
- else
+ if (mesh->mVolume->getNumVolumeFaces() <= 0)
{
llwarns << "Mesh loading returned empty volume." << llendl;
+ mesh->mVolume->makeTetrahedron();
}
+
+ mesh->mTargetVolume->copyVolumeFaces(mesh->mVolume);
for (std::set<LLUUID>::iterator vobj_iter = obj_iter->second.begin(); vobj_iter != obj_iter->second.end(); ++vobj_iter)
{