[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33075] trunk/blender/source/blender: bugfix [#24704] UV editor: [x] modified does not update on change of modifiers

Campbell Barton ideasman42 at gmail.com
Mon Nov 15 09:03:21 CET 2010


Revision: 33075
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33075
Author:   campbellbarton
Date:     2010-11-15 09:03:20 +0100 (Mon, 15 Nov 2010)

Log Message:
-----------
bugfix [#24704] UV editor: [x] modified does not update on change of modifiers
- VBO UV Edge display wasn't allocating a large enough array for drawing.
- VBO UV Edge drawing was using an edge flag with faces.
- notifier for modifiers updating the UV window.

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

Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2010-11-15 07:07:14 UTC (rev 33074)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2010-11-15 08:03:20 UTC (rev 33075)
@@ -289,7 +289,7 @@
 			GPU_uvedge_setup(dm);
 			if( !GPU_buffer_legacy(dm) ) {
 				for(i = 0; i < dm->numFaceData; i++, mf++) {
-					if(mf->flag&ME_LOOSEEDGE) {
+					if(!(mf->flag&ME_HIDE)) {
 						draw = 1;
 					} 
 					else {

Modified: trunk/blender/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_buffers.c	2010-11-15 07:07:14 UTC (rev 33074)
+++ trunk/blender/source/blender/gpu/intern/gpu_buffers.c	2010-11-15 08:03:20 UTC (rev 33075)
@@ -1179,8 +1179,13 @@
 GPUBuffer *GPU_buffer_uvedge( DerivedMesh *dm )
 {
 	DEBUG_VBO("GPU_buffer_uvedge\n");
-
-	return GPU_buffer_setup( dm, dm->drawObject, sizeof(float)*2*(dm->drawObject->nelements/3)*2, GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_uvedge);
+	/* logic here:
+	 * ...each face gets 3 'nelements'
+	 * ...3 edges per triangle
+	 * ...each edge has its own, non-shared coords.
+	 * so each tri corner needs minimum of 4 floats, quads used less so here we can over allocate and assume all tris.
+	 * */
+	return GPU_buffer_setup( dm, dm->drawObject, 4 * sizeof(float) * dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_uvedge);
 }
 
 





More information about the Bf-blender-cvs mailing list