2.5 Paint:

* Evil backbuf drawing strikes again. In paint modes, it was causing the tool panel to flash black, bad glScissor.
This commit is contained in:
Nicholas Bishop 2009-08-20 19:46:53 +00:00
parent c1100361e2
commit 86e38ef6f7
3 changed files with 6 additions and 1 deletions

@ -58,6 +58,7 @@ void ED_region_panels_init(struct wmWindowManager *wm, struct ARegion *ar);
void ED_region_panels(const struct bContext *C, struct ARegion *ar, int vertical, char *context, int contextnr);
void ED_region_header_init(struct ARegion *ar);
void ED_region_header(const struct bContext *C, struct ARegion *ar);
void region_scissor_winrct(struct ARegion *ar, struct rcti *winrct);
/* spaces */
void ED_spacetypes_init(void);

@ -249,7 +249,7 @@ void ED_area_overdraw(bContext *C)
}
/* get scissor rect, checking overlapping regions */
static void region_scissor_winrct(ARegion *ar, rcti *winrct)
void region_scissor_winrct(ARegion *ar, rcti *winrct)
{
*winrct= ar->winrct;

@ -1092,6 +1092,7 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
{
RegionView3D *rv3d= ar->regiondata;
struct Base *base = scene->basact;
rcti winrct;
/*for 2.43 release, don't use glext and just define the constant.
this to avoid possibly breaking platforms before release.*/
@ -1137,6 +1138,9 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
glDisable(GL_DITHER);
region_scissor_winrct(ar, &winrct);
glScissor(winrct.xmin, winrct.ymin, winrct.xmax - winrct.xmin, winrct.ymax - winrct.ymin);
glClearColor(0.0, 0.0, 0.0, 0.0);
if(v3d->zbuf) {
glEnable(GL_DEPTH_TEST);