[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47451] trunk/blender/source/blender/gpu/ intern/gpu_buffers.c: Fix #31593: Every time I switch between edit and object mode, it crashes

Sergey Sharybin sergey.vfx at gmail.com
Tue Jun 5 10:42:05 CEST 2012


Revision: 47451
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47451
Author:   nazgul
Date:     2012-06-05 08:41:53 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
Fix #31593: Every time I switch between edit and object mode, it crashes

Crash was caused by incorrect restoring OpenGL context due to some
weird bit operations used to indicate whether stuff like color arrays
is initialized resulting in some unpredictable results on different
platforms and drivers.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_buffers.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_buffers.c	2012-06-05 08:06:15 UTC (rev 47450)
+++ trunk/blender/source/blender/gpu/intern/gpu_buffers.c	2012-06-05 08:41:53 UTC (rev 47451)
@@ -1151,7 +1151,7 @@
 			glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
 		}
 	}
-	GLStates &= !(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE |
+	GLStates &= ~(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE |
 	              GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE |
 	              GPU_BUFFER_ELEMENT_STATE);
 
@@ -1191,7 +1191,7 @@
 	else {
 		if (GLStates & GPU_BUFFER_COLOR_STATE)
 			glDisableClientState(GL_COLOR_ARRAY);
-		GLStates &= (!GPU_BUFFER_COLOR_STATE);
+		GLStates &= ~GPU_BUFFER_COLOR_STATE;
 	}
 }
 




More information about the Bf-blender-cvs mailing list