[Bf-blender-cvs] [b5b156f] master: Set line-width, point size when running callbacks

Campbell Barton noreply at git.blender.org
Fri Feb 19 21:05:59 CET 2016


Commit: b5b156f08973a5130d68788da9860747f7e459c8
Author: Campbell Barton
Date:   Sat Feb 20 06:55:16 2016 +1100
Branches: master
https://developer.blender.org/rBb5b156f08973a5130d68788da9860747f7e459c8

Set line-width, point size when running callbacks

Since 2.76 Blender no longer resets these after use,
this may break add-ons, so reset before calling region callbacks.

===================================================================

M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/interface_draw.c
M	source/blender/editors/space_api/spacetypes.c

===================================================================

diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 574c6d9..11dc88d 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -776,6 +776,7 @@ void UI_popup_handlers_remove_all(struct bContext *C, struct ListBase *handlers)
 void UI_init(void);
 void UI_init_userdef(void);
 void UI_reinit_font(void);
+void UI_reinit_gl_state(void);
 void UI_exit(void);
 
 /* Layout
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index 9d6ae11..8fbc545 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -1734,3 +1734,14 @@ void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha
 	glDisable(GL_BLEND);
 }
 
+/**
+ * Reset GL state (keep minimal).
+ *
+ * \note Blender's internal code doesn't assume these are reset,
+ * but external callbacks may depend on their state.
+ */
+void UI_reinit_gl_state(void)
+{
+	glLineWidth(1.0f);
+	glPointSize(1.0f);
+}
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index 01f0d1a..590bf5d 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -249,8 +249,10 @@ void ED_region_draw_cb_draw(const bContext *C, ARegion *ar, int type)
 	RegionDrawCB *rdc;
 	
 	for (rdc = ar->type->drawcalls.first; rdc; rdc = rdc->next) {
-		if (rdc->type == type)
+		if (rdc->type == type) {
+			UI_reinit_gl_state();
 			rdc->draw(C, ar, rdc->customdata);
+		}
 	}
 }




More information about the Bf-blender-cvs mailing list