2.5 Paint:
authorNicholas Bishop <nicholasbishop@gmail.com>
Thu, 20 Aug 2009 19:46:53 +0000 (19:46 +0000)
committerNicholas Bishop <nicholasbishop@gmail.com>
Thu, 20 Aug 2009 19:46:53 +0000 (19:46 +0000)
* Evil backbuf drawing strikes again. In paint modes, it was causing the tool panel to flash black, bad glScissor.

source/blender/editors/include/ED_screen.h
source/blender/editors/screen/area.c
source/blender/editors/space_view3d/view3d_draw.c

index 6cb7593e07d6813b238a43140b15d648e6fef41c..22a3e7372779a97193fdb316960c025c409c8093 100644 (file)
@@ -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);
index ea1541a4e026ee0f098597505fb04cdbf24a7693..320574fe8b3699a540bad15b9a3f6c5165dee286 100644 (file)
@@ -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;
        
index 3140ae76d4ba0b13a6652127ef06d2e52cd2d994..905657910b87f8828278e5b976efa07b714ae6dd 100644 (file)
@@ -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);