diff options
author | Rider Linden <rider@lindenlab.com> | 2017-11-30 11:42:49 -0800 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2017-11-30 11:42:49 -0800 |
commit | 1df10afa2a7802763330475e1a90547c3cff7c06 (patch) | |
tree | 8a8cdb8c02f1e18e8cfacefc1efbc2ab43c6157e /indra/newview/llvopartgroup.cpp | |
parent | d7dd10b88bc3fda88f6528ecc5936e4889f019f3 (diff) | |
parent | e3a2c5e3217ae74a0277f2e6d4e1e708fe398a1c (diff) |
Merge
Diffstat (limited to 'indra/newview/llvopartgroup.cpp')
-rw-r--r-- | indra/newview/llvopartgroup.cpp | 12 |
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 |