diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 0d1d97160a7..908ff9f45bb 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -2536,7 +2536,7 @@ static void drawmeshwire(Object *ob) mvert= me->mvert; mface= me->mface; - + ok= 0; if(me->totface==0) ok= 1; else { @@ -3690,7 +3690,7 @@ void draw_object_ext(Base *base) } G.f |= G_DRAW_EXT; - + glDrawBuffer(GL_FRONT); /* check all views */ diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index a963285bb27..4dfba6a17f6 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -1024,7 +1024,6 @@ void drawview3d_render(struct View3D *v3d) Base *base; Object *ob; - /* XXXXXXXX live and die by the hack */ free_all_realtime_images(); mywindow_build_and_set_renderwin(); diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c index bbeddd2952c..aedf3cef1b6 100644 --- a/source/blender/src/editview.c +++ b/source/blender/src/editview.c @@ -548,7 +548,7 @@ void mouse_select(void) if(basact) { if(G.obedit) { /* only do select */ - deselectall_except(BASACT); + deselectall_except(basact); basact->flag |= SELECT; draw_object_ext(basact); } @@ -572,8 +572,8 @@ void mouse_select(void) basact->object->flag= basact->flag; // for visual speed - if(oldbasact != basact) draw_object_ext(oldbasact); draw_object_ext(basact); + if(oldbasact != basact) draw_object_ext(oldbasact); if(oldbasact != basact) { set_active_base(basact); @@ -598,9 +598,11 @@ void mouse_select(void) allqueue(REDRAWNLA, 0); allqueue(REDRAWHEADERS, 0); /* To force display update for the posebutton */ } - + + /* now its getting confusing... finish() only works in frontbuffer here */ + glDrawBuffer(GL_FRONT); glFinish(); /* reveil frontbuffer drawing */ - + glDrawBuffer(GL_BACK); } countall(); @@ -832,6 +834,9 @@ void borderselect(void) base= base->next; } + /* frontbuffer flush */ + glFinish(); + allqueue(REDRAWDATASELECT, 0); /* because backbuf drawing */