From 9dfa21b5580da1d8b01dbfa5d4a42cb77f81a952 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Tue, 5 Oct 2010 15:54:04 +0000 Subject: [PATCH] Fix off-by-one error (glDrawRangeElements expects the *inclusive* upper bound of indexes) This was SVN commit r8288. --- source/renderer/FixedFunctionModelRenderer.cpp | 2 +- source/renderer/HWLightingModelRenderer.cpp | 2 +- source/renderer/InstancingModelRenderer.cpp | 2 +- source/renderer/TransparencyRenderer.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/renderer/FixedFunctionModelRenderer.cpp b/source/renderer/FixedFunctionModelRenderer.cpp index 630796a6f0..7ac4068609 100644 --- a/source/renderer/FixedFunctionModelRenderer.cpp +++ b/source/renderer/FixedFunctionModelRenderer.cpp @@ -286,7 +286,7 @@ void FixedFunctionModelRenderer::RenderModel(int streamflags, CModel* model, voi size_t numFaces = mdldef->GetNumFaces(); if (!g_Renderer.m_SkipSubmit) { - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices(), + pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, m->ffmodeldef->m_Indices); } diff --git a/source/renderer/HWLightingModelRenderer.cpp b/source/renderer/HWLightingModelRenderer.cpp index a097f964fb..f1d96cb953 100644 --- a/source/renderer/HWLightingModelRenderer.cpp +++ b/source/renderer/HWLightingModelRenderer.cpp @@ -321,7 +321,7 @@ void HWLightingModelRenderer::RenderModel(int streamflags, CModel* model, void* size_t numFaces = mdldef->GetNumFaces(); if (!g_Renderer.m_SkipSubmit) { - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices(), + pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, m->hwlmodeldef->m_Indices); } diff --git a/source/renderer/InstancingModelRenderer.cpp b/source/renderer/InstancingModelRenderer.cpp index a94820cee8..e4b72fad2a 100644 --- a/source/renderer/InstancingModelRenderer.cpp +++ b/source/renderer/InstancingModelRenderer.cpp @@ -276,7 +276,7 @@ void InstancingModelRenderer::RenderModel(int streamflags, CModel* model, void* size_t numFaces = mdldef->GetNumFaces(); if (!g_Renderer.m_SkipSubmit) { - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices(), + pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, m->imodeldef->m_Indices); } diff --git a/source/renderer/TransparencyRenderer.cpp b/source/renderer/TransparencyRenderer.cpp index 82adf3c76a..7bd90589ca 100644 --- a/source/renderer/TransparencyRenderer.cpp +++ b/source/renderer/TransparencyRenderer.cpp @@ -372,7 +372,7 @@ void PolygonSortModelRenderer::RenderModel(int streamflags, CModel* model, void* size_t numFaces = mdef->GetNumFaces(); if (!g_Renderer.m_SkipSubmit) { - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdef->GetNumVertices(), + pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdef->GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, psmdl->m_Indices); }