diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-10-08 17:19:42 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-10-08 17:36:17 +0300 |
commit | f12b0373f322b710b9fa5cebb67bdf363ff90e9f (patch) | |
tree | ccb30a6d7cd12cac94a3a7ebefa72b162f4df1b2 /source/blender/python/generic | |
parent | 5f364216acd5bf0f8098b1da1cdb2e75d42d59b3 (diff) |
BGL: Workaround broken bgl usage caused by GPU refactor
This directly adress the issues caused by rB536c2e0ec916.
Since the state tracking is done at a lower level, using the bgl
functions needs to be safegarded by the state manager.
The current workaround is to bypass `apply_state` when inside a
callback that used a `bgl` function.
Related to T80730.
This fix T81003.
Also this fix the default blend equation for callbacks.
Fixes T80169 T81289.
Diffstat (limited to 'source/blender/python/generic')
-rw-r--r-- | source/blender/python/generic/bgl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 8a5c4f4a11b..e9a58288c5e 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -29,6 +29,8 @@ #include "BLI_utildefines.h" #include "MEM_guardedalloc.h" +#include "GPU_state.h" + #include "../generic/py_capi_utils.h" #include "glew-mx.h" @@ -1109,6 +1111,7 @@ static PyObject *Buffer_repr(Buffer *self) if (!PyArg_ParseTuple(args, arg_str arg_list, arg_ref arg_list)) { \ return NULL; \ } \ + GPU_bgl_start(); \ ret_set_##ret gl##funcname(arg_var arg_list); \ ret_ret_##ret; \ } |