Cleanup. Also made it so LLModel::setVolumeFaceData hopefully wont explode if it's ever utilized by future code.

This commit is contained in:
Shyotl
2011-08-14 03:56:54 -05:00
parent 1c38d016d5
commit 978424ced0
2 changed files with 16 additions and 7 deletions

View File

@@ -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
{

View File

@@ -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);