diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-10-22 02:09:35 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-10-22 02:10:46 +0300 |
commit | 5a65305f8998a72c8bf39bc69414c7ba2da57055 (patch) | |
tree | a86a22ab56b4099896ea96f54aa67dcc102e4d0c /source/blender | |
parent | b0f34eee30c42a485e83ca6f5e9495fc0c9283fa (diff) |
Fix T81784 BGL: Gizmo glitch when using glEnable/glDisable
This was caused by unprotected drawing callbacks.
From 2.91, we now require that all python callbacks used for
drawing needs to be safeguarded by `GPU_bgl_end()` to end the
state tracking override.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/makesrna/intern/rna_wm_gizmo.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_wm_gizmo.c b/source/blender/makesrna/intern/rna_wm_gizmo.c index 971991869e2..27d46e4d25b 100644 --- a/source/blender/makesrna/intern/rna_wm_gizmo.c +++ b/source/blender/makesrna/intern/rna_wm_gizmo.c @@ -61,6 +61,8 @@ # include "MEM_guardedalloc.h" +# include "GPU_state.h" + # ifdef WITH_PYTHON # include "BPY_extern.h" # endif @@ -84,6 +86,8 @@ static void rna_gizmo_draw_cb(const struct bContext *C, struct wmGizmo *gz) RNA_parameter_set_lookup(&list, "context", &C); gzgroup->type->rna_ext.call((bContext *)C, &gz_ptr, func, &list); RNA_parameter_list_free(&list); + /* This callback may have called bgl functions. */ + GPU_bgl_end(); } static void rna_gizmo_draw_select_cb(const struct bContext *C, struct wmGizmo *gz, int select_id) @@ -101,6 +105,8 @@ static void rna_gizmo_draw_select_cb(const struct bContext *C, struct wmGizmo *g RNA_parameter_set_lookup(&list, "select_id", &select_id); gzgroup->type->rna_ext.call((bContext *)C, &gz_ptr, func, &list); RNA_parameter_list_free(&list); + /* This callback may have called bgl functions. */ + GPU_bgl_end(); } static int rna_gizmo_test_select_cb(struct bContext *C, struct wmGizmo *gz, const int location[2]) |