Fix for missing LOD spam.

meow-7.2.2
Dave Parks 2009-11-07 08:22:39 -06:00
parent 10069e0e13
commit 4e420a36c6
3 changed files with 19 additions and 7 deletions

View File

@ -1676,7 +1676,8 @@ LLVolume::LLVolume(const LLVolumeParams &params, const F32 detail, const BOOL ge
mFaceMask = 0x0;
mDetail = detail;
mSculptLevel = -2;
mLODScaleBias.setVec(1,1,1);
// set defaults
if (mParams.getPathParams().getCurveType() == LL_PCODE_PATH_FLEXIBLE)
{
@ -1690,8 +1691,6 @@ LLVolume::LLVolume(const LLVolumeParams &params, const F32 detail, const BOOL ge
mGenerateSingleFace = generate_single_face;
mLODScaleBias.setVec(1,1,1);
generate();
if (mParams.getSculptID().isNull() && params.getSculptType() == LL_SCULPT_TYPE_NONE)
@ -1899,7 +1898,7 @@ BOOL LLVolume::createVolumeFacesFromStream(std::istream& is)
{
if (!LLSDSerialize::deserialize(header, is, 1024*1024*1024))
{
llwarns << "not a valid mesh asset!" << llendl;
llwarns << "Mesh header parse error. Not a valid mesh asset!" << llendl;
return FALSE;
}
}
@ -1921,8 +1920,18 @@ BOOL LLVolume::createVolumeFacesFromStream(std::istream& is)
if (lod >= 4)
{
llwarns << "Couldn't load model for given lod" << llendl;
return FALSE;
lod = llclamp((S32) mDetail, 0, 3);
while (lod >= 0 && header[nm[lod]]["offset"].asInteger() == -1)
{
--lod;
}
if (lod < 0)
{
llwarns << "Mesh header missing LOD offsets. Not a valid mesh asset!" << llendl;
return FALSE;
}
}
is.seekg(header[nm[lod]]["offset"].asInteger(), std::ios_base::cur);

View File

@ -948,7 +948,8 @@ BOOL LLPrimitive::setVolume(const LLVolumeParams &volume_params, const S32 detai
#else
// build the new object
sVolumeManager->unrefVolume(mVolumep);
mVolumep = volumep;
mVolumep = volumep;
setNumTEs(mVolumep->getNumFaces());
#endif
return TRUE;

View File

@ -8949,6 +8949,7 @@ void LLPipeline::loadMesh(LLVOVolume* vobj, LLUUID mesh_id, S32 detail)
group->derefLOD(lod);
return;
}
group->derefLOD(lod);
}
@ -8962,6 +8963,7 @@ void LLPipeline::loadMesh(LLVOVolume* vobj, LLUUID mesh_id, S32 detail)
group->derefLOD(lod);
return;
}
group->derefLOD(lod);
}
}