else if((base && (base->object->mode & OB_MODE_PARTICLE_EDIT)) && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT));
else if(scene->obedit && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT));
else {
- v3d->flag &= ~V3D_NEEDBACKBUFDRAW;
+ v3d->flag &= ~V3D_INVALID_BACKBUF;
return;
}
- if( !(v3d->flag & V3D_NEEDBACKBUFDRAW) ) return;
+ if( !(v3d->flag & V3D_INVALID_BACKBUF) ) return;
// if(test) {
// if(qtest()) {
draw_object_backbufsel(scene, v3d, rv3d, base->object);
}
- v3d->flag &= ~V3D_NEEDBACKBUFDRAW;
+ v3d->flag &= ~V3D_INVALID_BACKBUF;
G.f &= ~G_BACKBUFSEL;
v3d->zbuf= FALSE;
void view3d_validate_backbuf(ViewContext *vc)
{
- if(vc->v3d->flag & V3D_NEEDBACKBUFDRAW)
+ if(vc->v3d->flag & V3D_INVALID_BACKBUF)
backdrawview3d(vc->scene, vc->ar, vc->v3d);
}
/* XXX here was the blockhandlers for floating panels */
- if(ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)) {
- v3d->flag |= V3D_NEEDBACKBUFDRAW;
- // XXX addafterqueue(ar->win, BACKBUFDRAW, 1);
- }
-
- if((ob && ob->mode & OB_MODE_PARTICLE_EDIT) && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)) {
- v3d->flag |= V3D_NEEDBACKBUFDRAW;
- // XXX addafterqueue(ar->win, BACKBUFDRAW, 1);
- }
-
- // test for backbuf select
- if(scene->obedit && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)) {
-
- v3d->flag |= V3D_NEEDBACKBUFDRAW;
- // XXX if(afterqtest(ar->win, BACKBUFDRAW)==0) {
- // addafterqueue(ar->win, BACKBUFDRAW, 1);
- //}
- }
+ v3d->flag |= V3D_INVALID_BACKBUF;
}
#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
#include "DNA_userdef_types.h"
+#include "DNA_view3d_types.h"
#include "MEM_guardedalloc.h"
}
}
+static void wm_area_mark_invalid_backbuf(ScrArea *sa)
+{
+ if(sa->spacetype == SPACE_VIEW3D)
+ ((View3D*)sa->spacedata.first)->flag |= V3D_INVALID_BACKBUF;
+}
+
/********************** draw all **************************/
/* - reference method, draw all each time */
}
}
+ wm_area_mark_invalid_backbuf(sa);
CTX_wm_area_set(C, NULL);
}
}
}
+ wm_area_mark_invalid_backbuf(sa);
CTX_wm_area_set(C, NULL);
}
}
}
+ wm_area_mark_invalid_backbuf(sa);
CTX_wm_area_set(C, NULL);
}