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.
This commit is contained in:
@@ -289,7 +289,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
|
||||
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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user