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_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_init(struct ARegion *ar);
void ED_region_header(const struct bContext *C, 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 */ /* spaces */
void ED_spacetypes_init(void); void ED_spacetypes_init(void);

@ -249,7 +249,7 @@ void ED_area_overdraw(bContext *C)
} }
/* get scissor rect, checking overlapping regions */ /* 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; *winrct= ar->winrct;

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