summaryrefslogtreecommitdiff
path: root/indra/newview/llvopartgroup.cpp
diff options
context:
space:
mode:
authorcallum_linden <callum@lindenlab.com>2017-11-30 14:44:44 -0800
committercallum_linden <callum@lindenlab.com>2017-11-30 14:44:44 -0800
commitdd0d2805e2b495246525f49325c4492b7b57f157 (patch)
tree96ae78468bbe760c4934416764a4cd89cf5ae381 /indra/newview/llvopartgroup.cpp
parent2e3c5ac88a434ee437bc3e68b321d5bd0bcd7cc9 (diff)
parente3a2c5e3217ae74a0277f2e6d4e1e708fe398a1c (diff)
Automated erge with tip of viewer64
Diffstat (limited to 'indra/newview/llvopartgroup.cpp')
-rw-r--r--indra/newview/llvopartgroup.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 6e5db526b0..f7b21338f8 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -61,7 +61,15 @@ void LLVOPartGroup::restoreGL()
//TODO: optimize out binormal mask here. Specular and normal coords as well.
sVB = new LLVertexBuffer(VERTEX_DATA_MASK | LLVertexBuffer::MAP_TANGENT | LLVertexBuffer::MAP_TEXCOORD1 | LLVertexBuffer::MAP_TEXCOORD2, GL_STREAM_DRAW_ARB);
U32 count = LL_MAX_PARTICLE_COUNT;
- sVB->allocateBuffer(count*4, count*6, true);
+ if (!sVB->allocateBuffer(count*4, count*6, true))
+ {
+ LL_WARNS() << "Failed to allocate Vertex Buffer to "
+ << count*4 << " vertices and "
+ << count * 6 << " indices" << LL_ENDL;
+ // we are likelly to crash at following getTexCoord0Strider(), so unref and return
+ sVB = NULL;
+ return;
+ }
//indices and texcoords are always the same, set once
LLStrider<U16> indicesp;
@@ -764,7 +772,7 @@ void LLParticlePartition::rebuildGeom(LLSpatialGroup* group)
addGeometryCount(group, vertex_count, index_count);
- if (vertex_count > 0 && index_count > 0)
+ if (vertex_count > 0 && index_count > 0 && LLVOPartGroup::sVB)
{
group->mBuilt = 1.f;
//use one vertex buffer for all groups