From 5561b1584cb9329e37dc4fde95dadc56f354cafd Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sun, 21 Sep 2008 17:17:42 +0000 Subject: [PATCH] fix potential vc++ crashes --- Graphics/Geom.cpp | 6 +++--- Graphics/Post.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp index 24aba1a5a9..793b851988 100644 --- a/Graphics/Geom.cpp +++ b/Graphics/Geom.cpp @@ -190,13 +190,12 @@ class drawGFace { void _drawVertexArray(VertexArray *va, bool useNormalArray, int forceColor=0, unsigned int color=0) { - if(!va) return; + if(!va || !va->getNumVertices()) return; glVertexPointer(3, GL_FLOAT, 0, va->getVertexArray()); - glNormalPointer(GL_BYTE, 0, va->getNormalArray()); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->getColorArray()); glEnableClientState(GL_VERTEX_ARRAY); if(useNormalArray){ glEnable(GL_LIGHTING); + glNormalPointer(GL_BYTE, 0, va->getNormalArray()); glEnableClientState(GL_NORMAL_ARRAY); } else @@ -206,6 +205,7 @@ class drawGFace { glColor4ubv((GLubyte *) & color); } else{ + glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->getColorArray()); glEnableClientState(GL_COLOR_ARRAY); } if(CTX.polygon_offset) glEnable(GL_POLYGON_OFFSET_FILL); diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp index efe9b7bde6..e547f3934d 100644 --- a/Graphics/Post.cpp +++ b/Graphics/Post.cpp @@ -985,7 +985,7 @@ static void addElementsInArrays(PView *p, bool preprocessNormalsOnly) static void drawArrays(PView *p, VertexArray *va, GLint type, bool useNormalArray) { - if(!va) return; + if(!va || !va->getNumVertices()) return; PViewOptions *opt = p->getOptions(); @@ -1033,15 +1033,15 @@ static void drawArrays(PView *p, VertexArray *va, GLint type, bool useNormalArra } else{ glVertexPointer(3, GL_FLOAT, 0, va->getVertexArray()); - glNormalPointer(GL_BYTE, 0, va->getNormalArray()); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->getColorArray()); glEnableClientState(GL_VERTEX_ARRAY); if(useNormalArray){ glEnable(GL_LIGHTING); + glNormalPointer(GL_BYTE, 0, va->getNormalArray()); glEnableClientState(GL_NORMAL_ARRAY); } else glDisableClientState(GL_NORMAL_ARRAY); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->getColorArray()); glEnableClientState(GL_COLOR_ARRAY); glDrawArrays(type, 0, va->getNumVertices()); glDisableClientState(GL_VERTEX_ARRAY); -- GitLab