[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40884] trunk/blender/source/blender/ blenkernel/intern/DerivedMesh.c: fix for editmode opengl drawing ( bug from own recent optimization), need to set glShadeModel() outside glBegin(GL_QUADS / GL_TRIANGLES).

Campbell Barton ideasman42 at gmail.com
Mon Oct 10 01:04:32 CEST 2011


Revision: 40884
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40884
Author:   campbellbarton
Date:     2011-10-09 23:04:31 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
fix for editmode opengl drawing (bug from own recent optimization), need to set glShadeModel() outside glBegin(GL_QUADS / GL_TRIANGLES).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-10-09 21:59:29 UTC (rev 40883)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-10-09 23:04:31 UTC (rev 40884)
@@ -697,9 +697,11 @@
 				else {
 					const GLenum shade_type= drawSmooth ? GL_SMOOTH : GL_FLAT;
 					if (shade_type != shade_prev) {
-						glShadeModel((shade_prev= shade_type));
+						if(poly_prev != GL_ZERO) glEnd();
+						glShadeModel((shade_prev= shade_type)); /* same as below but switch shading */
+						glBegin((poly_prev= poly_type));
 					}
-					if(poly_type != poly_prev) {
+					else if(poly_type != poly_prev) {
 						if(poly_prev != GL_ZERO) glEnd();
 						glBegin((poly_prev= poly_type));
 					}
@@ -762,9 +764,11 @@
 				else {
 					const GLenum shade_type= drawSmooth ? GL_SMOOTH : GL_FLAT;
 					if (shade_type != shade_prev) {
-						glShadeModel((shade_prev= shade_type));
+						if(poly_prev != GL_ZERO) glEnd();
+						glShadeModel((shade_prev= shade_type)); /* same as below but switch shading */
+						glBegin((poly_prev= poly_type));
 					}
-					if(poly_type != poly_prev) {
+					else if(poly_type != poly_prev) {
 						if(poly_prev != GL_ZERO) glEnd();
 						glBegin((poly_prev= poly_type));
 					}




More information about the Bf-blender-cvs mailing list