diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-03-05 23:59:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-03-06 00:02:50 +0300 |
commit | 6867821c4ab083bc12ed109b0a3206450621cad2 (patch) | |
tree | f292818f629f9cc2461930466f9b556b5dd8a8a0 /source | |
parent | dbdd79fabe2934de6184c0230f91b2e8af716a7b (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 6 |
1 files changed, 6 insertions, 0 deletions
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(); |