forked from mirrors/0ad
Adds more checks for vertex and index buffer creations.
This was SVN commit r26502.
This commit is contained in:
@@ -575,6 +575,7 @@ void ShadowMap::BeginRender()
|
||||
|
||||
{
|
||||
PROFILE("bind framebuffer");
|
||||
ENSURE(m->Framebuffer);
|
||||
deviceCommandContext->SetFramebuffer(m->Framebuffer.get());
|
||||
}
|
||||
|
||||
|
||||
@@ -304,7 +304,11 @@ void CTexturedLineRData::Update(const SOverlayTexturedLine& line)
|
||||
indices.insert(indices.end(), capIndices.begin(), capIndices.end());
|
||||
}
|
||||
|
||||
ENSURE(indices.size() % 3 == 0); // GL_TRIANGLES indices, so must be multiple of 3
|
||||
if (vertices.empty() || indices.empty())
|
||||
return;
|
||||
|
||||
// Indices for triangles, so must be multiple of 3.
|
||||
ENSURE(indices.size() % 3 == 0);
|
||||
|
||||
m_BoundingBox = CBoundingBoxAligned();
|
||||
for (const SVertex& vertex : vertices)
|
||||
|
||||
@@ -216,6 +216,7 @@ void CVertexBuffer::UpdateChunkVertices(VBChunk* chunk, void* data)
|
||||
}
|
||||
else
|
||||
{
|
||||
ENSURE(data);
|
||||
g_Renderer.GetDeviceCommandContext()->UploadBufferRegion(
|
||||
m_Buffer.get(), data, chunk->m_Index * m_VertexSize, chunk->m_Count * m_VertexSize);
|
||||
}
|
||||
|
||||
@@ -79,6 +79,9 @@ CVertexBufferManager::Handle CVertexBufferManager::AllocateChunk(
|
||||
const Renderer::Backend::GL::CBuffer::Type type,
|
||||
const bool dynamic, void* backingStore, Group group)
|
||||
{
|
||||
ENSURE(vertexSize > 0);
|
||||
ENSURE(numberOfVertices > 0);
|
||||
|
||||
CVertexBuffer::VBChunk* result = nullptr;
|
||||
|
||||
if (CVertexBuffer::UseStreaming(dynamic))
|
||||
|
||||
Reference in New Issue
Block a user