[Bf-blender-cvs] [6867821c4ab] master: DRW: Fix GL state issues due to state not being reset after drawing

Clément Foucault noreply at git.blender.org
Tue Mar 5 22:02:53 CET 2019


Commit: 6867821c4ab083bc12ed109b0a3206450621cad2
Author: Clément Foucault
Date:   Tue Mar 5 21:59:36 2019 +0100
Branches: master
https://developer.blender.org/rB6867821c4ab083bc12ed109b0a3206450621cad2

DRW: Fix GL state issues due to state not being reset after drawing

Callbacks were drawing with the wrong blend equation and that made some
tools drawing fail.

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

M	source/blender/draw/intern/draw_manager.c

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index c678fd974f3..09a7034c674 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1099,6 +1099,8 @@ static void drw_engines_draw_scene(void)
 
 		PROFILE_END_UPDATE(data->render_time, stime);
 	}
+	/* Reset state after drawing */
+	DRW_state_reset();
 }
 
 static void drw_engines_draw_text(void)
@@ -1559,7 +1561,11 @@ void DRW_draw_render_loop_ex(
 
 	DRW_draw_callbacks_post_scene();
 	if (DST.draw_ctx.evil_C) {
+		DRW_state_reset();
 		ED_region_draw_cb_draw(DST.draw_ctx.evil_C, DST.draw_ctx.ar, REGION_DRAW_POST_VIEW);
+		/* Callback can be nasty and do whatever they want with the state.
+		 * Don't trust them! */
+		DRW_state_reset();
 	}
 
 	DRW_state_reset();



More information about the Bf-blender-cvs mailing list