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.
This commit is contained in:
parent
b0f34eee30
commit
5a65305f89
Notes:
blender-bot
2023-02-14 10:48:33 +01:00
Referenced by issue #81784, 2D Gizmo glitch when using glEnable/glDisable (Blender 2.91)
|
@ -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])
|
||||
|
|
Loading…
Reference in New Issue