Cleanup. Also made it so LLModel::setVolumeFaceData hopefully wont explode if it's ever utilized by future code.
This commit is contained in:
@@ -1019,10 +1019,16 @@ void LLModel::setVolumeFaceData(
|
||||
face.resizeVertices(num_verts);
|
||||
face.resizeIndices(num_indices);
|
||||
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mPositions, (F32*) pos.get(), num_verts*4*sizeof(F32));
|
||||
if(pos.getSkip() == sizeof(LLVector4a))
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mPositions, (F32*) pos.get(), num_verts*4*sizeof(F32));
|
||||
else
|
||||
for(U32 i=0;i<num_verts;++i) face.mPositions[i].load3(pos[i].mV);
|
||||
if (norm.get())
|
||||
{
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mNormals, (F32*) norm.get(), num_verts*4*sizeof(F32));
|
||||
if(norm.getSkip() == sizeof(LLVector4a))
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mNormals, (F32*) norm.get(), num_verts*4*sizeof(F32));
|
||||
else
|
||||
for(U32 i=0;i<num_verts;++i) face.mNormals[i].load3(norm[i].mV);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1032,7 +1038,10 @@ void LLModel::setVolumeFaceData(
|
||||
|
||||
if (tc.get())
|
||||
{
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mTexCoords, (F32*) tc.get(), num_verts*2*sizeof(F32));
|
||||
if(tc.getSkip() == sizeof(LLVector2))
|
||||
LLVector4a::memcpyNonAliased16((F32*) face.mTexCoords, (F32*) tc.get(), num_verts*2*sizeof(F32));
|
||||
else
|
||||
for(U32 i=0;i<num_verts;++i) face.mTexCoords[i] = tc[i].mV;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1495,13 +1495,13 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
||||
for (S32 i = 0; i < num_vertices; i++)
|
||||
{
|
||||
mat_vert.affineTransform(src[i], position);
|
||||
//Still using getF32ptr() because if the array is strided then theres no guarantee vertices will aligned, which LLVector4a requires.
|
||||
vertices[i].set(position.getF32ptr());
|
||||
((LLVector4*)&vertices[i])->mV[3] = index;
|
||||
//Still using getF32ptr() because if the array is strided then theres no guarantee vertices will aligned, which LLVector4a requires
|
||||
vertices[i].set(position.getF32ptr()); //This assignment and the one below are oddly sensitive. Suspect something's off around here.
|
||||
vertices[i].mV[3] = index;
|
||||
}
|
||||
for (S32 i = num_vertices; i < mGeomCount; i++)
|
||||
{
|
||||
*(LLVector4*)&vertices[i]=*(LLVector4*)&(vertices[num_vertices-1]);
|
||||
memcpy(vertices[i].mV,vertices[num_vertices-1].mV,sizeof(LLVector4));
|
||||
}
|
||||
|
||||
//mVertexBuffer->setBuffer(0);
|
||||
|
||||
Reference in New Issue
Block a user