[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21696] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Sun Jul 19 14:15:20 CEST 2009


Revision: 21696
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21696
Author:   ton
Date:     2009-07-19 14:15:20 +0200 (Sun, 19 Jul 2009)

Log Message:
-----------
2.5

Small fix: Triple Buffer mode didn't clip custom paint cursors correctly
for overlapping regions (example, view3d paint circle drawing into toolbar)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
    branches/blender2.5/blender/source/blender/editors/screen/area.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_draw.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-07-19 11:28:43 UTC (rev 21695)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-07-19 12:15:20 UTC (rev 21696)
@@ -50,6 +50,7 @@
 void	ED_region_do_draw(struct bContext *C, struct ARegion *ar);
 void	ED_region_exit(struct bContext *C, struct ARegion *ar);
 void	ED_region_pixelspace(struct ARegion *ar);
+void	ED_region_set(const struct bContext *C, struct ARegion *ar);
 void	ED_region_init(struct bContext *C, struct ARegion *ar);
 void	ED_region_tag_redraw(struct ARegion *ar);
 void	ED_region_tag_redraw_partial(struct ARegion *ar, struct rcti *rct);

Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c	2009-07-19 11:28:43 UTC (rev 21695)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c	2009-07-19 12:15:20 UTC (rev 21696)
@@ -274,6 +274,28 @@
 }
 
 /* only exported for WM */
+/* makes region ready for drawing, sets pixelspace */
+void ED_region_set(const bContext *C, ARegion *ar)
+{
+	wmWindow *win= CTX_wm_window(C);
+	ScrArea *sa= CTX_wm_area(C);
+	rcti winrct;
+	
+	/* checks other overlapping regions */
+	region_scissor_winrct(ar, &winrct);
+	
+	ar->drawrct= winrct;
+	
+	/* note; this sets state, so we can use wmOrtho and friends */
+	wmSubWindowScissorSet(win, ar->swinid, &ar->drawrct);
+	
+	UI_SetTheme(sa?sa->spacetype:0, ar->type?ar->type->regionid:0);
+	
+	ED_region_pixelspace(ar);
+}
+
+
+/* only exported for WM */
 void ED_region_do_draw(bContext *C, ARegion *ar)
 {
 	wmWindow *win= CTX_wm_window(C);

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_draw.c	2009-07-19 11:28:43 UTC (rev 21695)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_draw.c	2009-07-19 12:15:20 UTC (rev 21696)
@@ -574,8 +574,8 @@
 					CTX_wm_area_set(C, sa);
 					CTX_wm_region_set(C, ar);
 
-					wmSubWindowSet(win, ar->swinid);
-					ED_region_pixelspace(ar);
+					/* make region ready for draw, scissor, pixelspace */
+					ED_region_set(C, ar);
 					wm_paintcursor_draw(C, ar);
 
 					CTX_wm_region_set(C, NULL);

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c	2009-07-19 11:28:43 UTC (rev 21695)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c	2009-07-19 12:15:20 UTC (rev 21696)
@@ -236,7 +236,7 @@
 	glDisable(GL_LINE_STIPPLE);
 }
 
-/* called in wm_event_system.c */
+/* called in wm_draw.c */
 void wm_gesture_draw(wmWindow *win)
 {
 	wmGesture *gt= (wmGesture *)win->gesture.first;





More information about the Bf-blender-cvs mailing list