MAINT-3818 FIXED Certain dae files that used to display skin weights successfully now crash when ticking skin weights in model preview on ALL viewers
parent
321a054a7a
commit
802302a31c
|
|
@ -316,6 +316,14 @@ LLModel::EModelStatus load_face_from_dom_triangles(std::vector<LLVolumeFace>& fa
|
|||
|
||||
if (indices.size()%3 == 0 && verts.size() >= 65532)
|
||||
{
|
||||
std::string material;
|
||||
|
||||
if (tri->getMaterial())
|
||||
{
|
||||
material = std::string(tri->getMaterial());
|
||||
}
|
||||
|
||||
materials.push_back(material);
|
||||
face_list.push_back(face);
|
||||
face_list.rbegin()->fillFromLegacyData(verts, indices);
|
||||
LLVolumeFace& new_face = *face_list.rbegin();
|
||||
|
|
@ -587,6 +595,14 @@ LLModel::EModelStatus load_face_from_dom_polylist(std::vector<LLVolumeFace>& fac
|
|||
|
||||
if (indices.size()%3 == 0 && indices.size() >= 65532)
|
||||
{
|
||||
std::string material;
|
||||
|
||||
if (poly->getMaterial())
|
||||
{
|
||||
material = std::string(poly->getMaterial());
|
||||
}
|
||||
|
||||
materials.push_back(material);
|
||||
face_list.push_back(face);
|
||||
face_list.rbegin()->fillFromLegacyData(verts, indices);
|
||||
LLVolumeFace& new_face = *face_list.rbegin();
|
||||
|
|
|
|||
|
|
@ -4860,7 +4860,7 @@ void LLModelPreview::genBuffers(S32 lod, bool include_skin_weights)
|
|||
LLModel* base_mdl = *base_iter;
|
||||
base_iter++;
|
||||
|
||||
for (S32 i = 0; i < mdl->getNumVolumeFaces(); ++i)
|
||||
for (S32 i = 0, e = mdl->getNumVolumeFaces(); i < e; ++i)
|
||||
{
|
||||
const LLVolumeFace &vf = mdl->getVolumeFace(i);
|
||||
U32 num_vertices = vf.mNumVertices;
|
||||
|
|
@ -5292,7 +5292,7 @@ BOOL LLModelPreview::render()
|
|||
|
||||
gGL.multMatrix((GLfloat*) mat.mMatrix);
|
||||
|
||||
for (U32 i = 0; i < mVertexBuffer[mPreviewLOD][model].size(); ++i)
|
||||
for (U32 i = 0, e = mVertexBuffer[mPreviewLOD][model].size(); i < e; ++i)
|
||||
{
|
||||
LLVertexBuffer* buffer = mVertexBuffer[mPreviewLOD][model][i];
|
||||
|
||||
|
|
@ -5567,7 +5567,7 @@ BOOL LLModelPreview::render()
|
|||
|
||||
if (!model->mSkinWeights.empty())
|
||||
{
|
||||
for (U32 i = 0; i < mVertexBuffer[mPreviewLOD][model].size(); ++i)
|
||||
for (U32 i = 0, e = mVertexBuffer[mPreviewLOD][model].size(); i < e; ++i)
|
||||
{
|
||||
LLVertexBuffer* buffer = mVertexBuffer[mPreviewLOD][model][i];
|
||||
|
||||
|
|
@ -5636,6 +5636,7 @@ BOOL LLModelPreview::render()
|
|||
position[j] = v;
|
||||
}
|
||||
|
||||
llassert(model->mMaterialList.size() > i);
|
||||
const std::string& binding = instance.mModel->mMaterialList[i];
|
||||
const LLImportMaterial& material = instance.mMaterial[binding];
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue