[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