[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22604] branches/soc-2009-imbusy/source/ blender: fixed the messed up editmode bug, thanks a lot to nicholasbishop for tracking down the bug

Lukas Steiblys imbusy at imbusy.org
Tue Aug 18 18:04:19 CEST 2009


Revision: 22604
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22604
Author:   imbusy
Date:     2009-08-18 18:04:19 +0200 (Tue, 18 Aug 2009)

Log Message:
-----------
fixed the messed up editmode bug, thanks a lot to nicholasbishop for tracking down the bug

Modified Paths:
--------------
    branches/soc-2009-imbusy/source/blender/blenkernel/intern/DerivedMesh.c
    branches/soc-2009-imbusy/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c

Modified: branches/soc-2009-imbusy/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/soc-2009-imbusy/source/blender/blenkernel/intern/DerivedMesh.c	2009-08-18 15:37:31 UTC (rev 22603)
+++ branches/soc-2009-imbusy/source/blender/blenkernel/intern/DerivedMesh.c	2009-08-18 16:04:19 UTC (rev 22604)
@@ -503,7 +503,7 @@
 			int datatype[] = { GPU_BUFFER_INTER_V3F, GPU_BUFFER_INTER_END };
 			GPU_buffer_unlock( buffer );
 			GPU_interleaved_setup( buffer, datatype );
-			GPU_buffer_lock_stream( buffer );
+			varray = GPU_buffer_lock_stream( buffer );
 			for(i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) {
 				if(!setDrawOptions || setDrawOptions(userData, i)) {
 					draw = 1;
@@ -713,7 +713,7 @@
 			GPU_buffer_unlock( buffer );
 			GPU_interleaved_setup( buffer, datatype );
 			glShadeModel(GL_SMOOTH);
-			GPU_buffer_lock_stream( buffer );
+			varray = GPU_buffer_lock_stream( buffer );
 			for (i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) {
 				int drawSmooth = (efa->flag & ME_SMOOTH);
 				draw = setDrawOptions==NULL ? 1 : setDrawOptions(userData, i, &drawSmooth);

Modified: branches/soc-2009-imbusy/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2009-imbusy/source/blender/editors/space_view3d/drawobject.c	2009-08-18 15:37:31 UTC (rev 22603)
+++ branches/soc-2009-imbusy/source/blender/editors/space_view3d/drawobject.c	2009-08-18 16:04:19 UTC (rev 22604)
@@ -1557,7 +1557,7 @@
 		int datatype[] = { GPU_BUFFER_INTER_V3F, GPU_BUFFER_INTER_END };
 		GPU_buffer_unlock( buffer );
 		GPU_interleaved_setup( buffer, datatype );
-		GPU_buffer_lock_stream( buffer );
+		varray = GPU_buffer_lock_stream( buffer );
 
 		glBegin(GL_POINTS);
 		for (i=0,eve= emdm->em->verts.first; eve; i++,eve=eve->next) {
@@ -1681,7 +1681,7 @@
 		int datatype[] = { GPU_BUFFER_INTER_V3F, GPU_BUFFER_INTER_C4UB, GPU_BUFFER_INTER_END };
 		GPU_buffer_unlock( buffer );
 		GPU_interleaved_setup( buffer, datatype );
-		GPU_buffer_lock_stream( buffer );
+		varray = GPU_buffer_lock_stream( buffer );
 		for (i=0,eed= em->edges.first; eed; i++,eed= eed->next) {
 			if(eed->h==0) {
 				unsigned char *col0 = cols[(eed->v1->f&SELECT)?1:0];
@@ -1788,7 +1788,7 @@
 		GPU_buffer_unlock( buffer );
 		GPU_interleaved_setup( buffer, datatype );
 		glShadeModel(GL_SMOOTH);
-		GPU_buffer_lock_stream( buffer );
+		varray = GPU_buffer_lock_stream( buffer );
 		for (i=0,efa= efa_act; efa; i++,efa= efa->next) {
 			int drawSmooth = (efa->flag & ME_SMOOTH);
 			if (efa->h==0) {
@@ -2417,7 +2417,7 @@
 				GPU_buffer_unlock( buffer );
 				GPU_interleaved_setup( buffer, datatype );
 				glShadeModel(GL_SMOOTH);
-				GPU_buffer_lock_stream( buffer );
+				varray = GPU_buffer_lock_stream( buffer );
 				for (i=0,efa= em->faces.first; efa; i++,efa= efa->next) {
 					int drawSmooth = (efa->flag & ME_SMOOTH);
 					if( efa->h == 0 ) {

Modified: branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c	2009-08-18 15:37:31 UTC (rev 22603)
+++ branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c	2009-08-18 16:04:19 UTC (rev 22604)
@@ -1115,8 +1115,11 @@
 		glDisableClientState( GL_TEXTURE_COORD_ARRAY );
 	if( GLStates & GPU_BUFFER_COLOR_STATE )
 		glDisableClientState( GL_COLOR_ARRAY );
-	if( GLStates & GPU_BUFFER_ELEMENT_STATE )
-		glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, 0 );
+	if( GLStates & GPU_BUFFER_ELEMENT_STATE ) {
+		if( useVBOs ) {
+			glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, 0 );
+		}
+	}
 	GLStates &= !(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE | GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE | GPU_BUFFER_ELEMENT_STATE);
 
 	for( i = 0; i < MAX_GPU_ATTRIB_DATA; i++ ) {





More information about the Bf-blender-cvs mailing list