Bug fix #2629
Aye... OpenGL cannot draw concave (C shaped) polygons... that screws up the Lasso tool, when it uses backbuffer selection. Examined for little while the GLU Tesselation library, but apart from its nightmarish structure, it's even stupid (no builtin clock/counterclock). So, instead coded a DispList based function using Blender's edgefill. Works like a charm! :)
This commit is contained in:
@@ -147,6 +147,7 @@ void boundbox_displist(struct Object *ob);
|
||||
void imagestodisplist(void);
|
||||
void reshadeall_displist(void);
|
||||
void test_all_displists(void);
|
||||
void filldisplist(struct ListBase *dispbase, struct ListBase *to);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1353,7 +1353,7 @@ static void curve_to_displist(ListBase *nubase, ListBase *dispbase)
|
||||
}
|
||||
|
||||
|
||||
static void filldisplist(ListBase *dispbase, ListBase *to)
|
||||
void filldisplist(ListBase *dispbase, ListBase *to)
|
||||
{
|
||||
EditVert *eve, *v1, *vlast;
|
||||
EditFace *efa;
|
||||
@@ -1365,11 +1365,6 @@ static void filldisplist(ListBase *dispbase, ListBase *to)
|
||||
if(dispbase==0) return;
|
||||
if(dispbase->first==0) return;
|
||||
|
||||
/* tijd= clock(); */
|
||||
/* bit-wise and comes after == .... so this doesn't work... */
|
||||
/* if(G.f & G_PLAYANIM == 0) waitcursor(1); */
|
||||
if( !(G.f & G_PLAYANIM) ) waitcursor(1);
|
||||
|
||||
while(cont) {
|
||||
cont= 0;
|
||||
totvert=0;
|
||||
@@ -1473,12 +1468,6 @@ static void filldisplist(ListBase *dispbase, ListBase *to)
|
||||
}
|
||||
|
||||
/* do not free polys, needed for wireframe display */
|
||||
|
||||
/* same as above ... */
|
||||
/* if(G.f & G_PLAYANIM == 0) waitcursor(0); */
|
||||
if( !(G.f & G_PLAYANIM) ) waitcursor(0);
|
||||
/* printf("time: %d\n",(clock()-tijd)/1000); */
|
||||
|
||||
}
|
||||
|
||||
static void bevels_to_filledpoly(Curve *cu, ListBase *dispbase)
|
||||
|
||||
Reference in New Issue
Block a user