summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawable.cpp
diff options
context:
space:
mode:
authorTofu Buzzard <no-email>2011-03-03 17:41:27 -0800
committerTofu Buzzard <no-email>2011-03-03 17:41:27 -0800
commitd95c5ef6230ab9488bfa925924599a883452c64c (patch)
treee40ebe39760fcd5205982a49277751d0bf164ad6 /indra/newview/lldrawable.cpp
parentb3a0dd4e164a8ab119bd01c9b4e5d91b04dfb985 (diff)
parentcc61ad696e6947111f61453daf9840415045c64f (diff)
merge
Diffstat (limited to 'indra/newview/lldrawable.cpp')
-rw-r--r--indra/newview/lldrawable.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index d370c72a04..fe743e7451 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -820,8 +820,7 @@ void LLDrawable::shiftPos(const LLVector4a &shift_vector)
if (!volume && facep->hasGeometry())
{
- facep->mVertexBuffer = NULL;
- facep->mLastVertexBuffer = NULL;
+ facep->clearVertexBuffer();
}
}
@@ -935,6 +934,18 @@ void LLDrawable::setSpatialGroup(LLSpatialGroup *groupp)
{
mSpatialGroupp->setState(LLSpatialGroup::GEOM_DIRTY);
}*/
+
+ if (mSpatialGroupp != groupp && getVOVolume())
+ { //NULL out vertex buffer references for volumes on spatial group change to maintain
+ //requirement that every face vertex buffer is either NULL or points to a vertex buffer
+ //contained by its drawable's spatial group
+ for (S32 i = 0; i < getNumFaces(); ++i)
+ {
+ LLFace* facep = getFace(i);
+ facep->clearVertexBuffer();
+ }
+ }
+
mSpatialGroupp = groupp;
}