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.resizeVertices(num_verts);
|
||||||
face.resizeIndices(num_indices);
|
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())
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -1032,7 +1038,10 @@ void LLModel::setVolumeFaceData(
|
|||||||
|
|
||||||
if (tc.get())
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1495,13 +1495,13 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||||||
for (S32 i = 0; i < num_vertices; i++)
|
for (S32 i = 0; i < num_vertices; i++)
|
||||||
{
|
{
|
||||||
mat_vert.affineTransform(src[i], position);
|
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.
|
//Still using getF32ptr() because if the array is strided then theres no guarantee vertices will aligned, which LLVector4a requires
|
||||||
vertices[i].set(position.getF32ptr());
|
vertices[i].set(position.getF32ptr()); //This assignment and the one below are oddly sensitive. Suspect something's off around here.
|
||||||
((LLVector4*)&vertices[i])->mV[3] = index;
|
vertices[i].mV[3] = index;
|
||||||
}
|
}
|
||||||
for (S32 i = num_vertices; i < mGeomCount; i++)
|
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);
|
//mVertexBuffer->setBuffer(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user