From 4661fb03a9f5836abb3a2eeb3cc2b67b2d4ecc81 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 15 Nov 2010 08:03:20 +0000 Subject: 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. --- source/blender/gpu/intern/gpu_buffers.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 7d2006a3aab..129ba188e5f 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -1179,8 +1179,13 @@ void GPU_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int *UNUSED(index), 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); } -- cgit v1.2.3