diff options
| -rw-r--r-- | indra/newview/llspatialpartition.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/llspatialpartition.h | 14 | 
2 files changed, 17 insertions, 29 deletions
| diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index e69fe9f99e..bd6be14341 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -236,7 +236,7 @@ void LLSpatialGroup::buildOcclusion()  {  	if (!mOcclusionVerts)  	{ -		mOcclusionVerts = (LLVector4a*) ll_aligned_malloc_16(sizeof(LLVector4a)*8); +		mOcclusionVerts = new LLVector4a[8];  	}  	LLVector4a fudge; @@ -339,14 +339,12 @@ LLSpatialGroup::~LLSpatialGroup()  		sQueryPool.release(mOcclusionQuery[LLViewerCamera::sCurCameraID]);  	} -	ll_aligned_free_16(mOcclusionVerts); +	delete [] mOcclusionVerts;  	mOcclusionVerts = NULL;  	LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION);  	clearDrawMap();  	clearAtlasList() ; - -	ll_aligned_free_16(mBounds);  }  BOOL LLSpatialGroup::hasAtlas(LLTextureAtlas* atlasp) @@ -1161,17 +1159,10 @@ LLSpatialGroup::LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part) :  	sNodeCount++;  	LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); -	mBounds = (LLVector4a*) ll_aligned_malloc_16(sizeof(LLVector4a) * V4_COUNT); -	mExtents = mBounds + EXTENTS; -	mObjectBounds = mBounds + OBJECT_BOUNDS; -	mObjectExtents = mBounds + OBJECT_EXTENTS; -	mViewAngle = mBounds+VIEW_ANGLE; -	mLastUpdateViewAngle = mBounds+LAST_VIEW_ANGLE; - -	mViewAngle->splat(0.f); -	mLastUpdateViewAngle->splat(-1.f); +	mViewAngle.splat(0.f); +	mLastUpdateViewAngle.splat(-1.f);  	mExtents[0] = mExtents[1] = mObjectBounds[0] = mObjectBounds[0] = mObjectBounds[1] =  -		mObjectExtents[0] = mObjectExtents[1] = *mViewAngle; +		mObjectExtents[0] = mObjectExtents[1] = mViewAngle;  	sg_assert(mOctreeNode->getListenerCount() == 0);  	mOctreeNode->addListener(this); @@ -1247,12 +1238,12 @@ F32 LLSpatialPartition::calcDistance(LLSpatialGroup* group, LLCamera& camera)  				LLVector4a view_angle = eye;  				LLVector4a diff; -				diff.setSub(view_angle, *group->mLastUpdateViewAngle); +				diff.setSub(view_angle, group->mLastUpdateViewAngle);  				if (diff.getLength3().getF32() > 0.64f)  				{ -					*group->mViewAngle = view_angle; -					*group->mLastUpdateViewAngle = view_angle; +					group->mViewAngle = view_angle; +					group->mLastUpdateViewAngle = view_angle;  					//for occasional alpha sorting within the group  					//NOTE: If there is a trivial way to detect that alpha sorting here would not change the render order,  					//not setting this node to dirty would be a very good thing @@ -1432,7 +1423,7 @@ void LLSpatialGroup::destroyGL()  		}  	} -	ll_aligned_free_16(mOcclusionVerts); +	delete [] mOcclusionVerts;  	mOcclusionVerts = NULL;  	for (LLSpatialGroup::element_iter i = getData().begin(); i != getData().end(); ++i) @@ -4187,8 +4178,7 @@ LLDrawInfo::LLDrawInfo(U16 start, U16 end, U32 count, U32 offset,  	mDrawMode(LLRender::TRIANGLES)  {  	mVertexBuffer->validateRange(mStart, mEnd, mCount, mOffset); -	mExtents = (LLVector4a*) ll_aligned_malloc_16(sizeof(LLVector4a)*2); - +	  	mDebugColor = (rand() << 16) + rand();  } @@ -4208,8 +4198,6 @@ LLDrawInfo::~LLDrawInfo()  	{  		gPipeline.checkReferences(this);  	} - -	ll_aligned_free_16(mExtents);  }  void LLDrawInfo::validate() diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h index b65d510f21..16ec9f780b 100644 --- a/indra/newview/llspatialpartition.h +++ b/indra/newview/llspatialpartition.h @@ -86,7 +86,7 @@ public:  	void validate(); -	LLVector4a* mExtents; +	LLVector4a mExtents[2];  	LLPointer<LLVertexBuffer> mVertexBuffer;  	LLPointer<LLViewerTexture>     mTexture; @@ -357,12 +357,12 @@ public:  		V4_COUNT = 10  	} eV4Index; -	LLVector4a* mBounds; // bounding box (center, size) of this node and all its children (tight fit to objects) -	LLVector4a* mExtents; // extents (min, max) of this node and all its children -	LLVector4a* mObjectExtents; // extents (min, max) of objects in this node -	LLVector4a* mObjectBounds; // bounding box (center, size) of objects in this node -	LLVector4a* mViewAngle; -	LLVector4a* mLastUpdateViewAngle; +	LLVector4a mBounds[2]; // bounding box (center, size) of this node and all its children (tight fit to objects) +	LLVector4a mExtents[2]; // extents (min, max) of this node and all its children +	LLVector4a mObjectExtents[2]; // extents (min, max) of objects in this node +	LLVector4a mObjectBounds[2]; // bounding box (center, size) of objects in this node +	LLVector4a mViewAngle; +	LLVector4a mLastUpdateViewAngle;  private:  	U32                     mCurUpdatingTime ; | 
