From 978424ced05b442f3fe53ad0c620f77cc3942ba8 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Sun, 14 Aug 2011 03:56:54 -0500 Subject: [PATCH] Cleanup. Also made it so LLModel::setVolumeFaceData hopefully wont explode if it's ever utilized by future code. --- indra/llprimitive/llmodel.cpp | 15 ++++++++++++--- indra/newview/llface.cpp | 8 ++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index 1574c2422..ef126c770 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -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;imV[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);