Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-10-08 17:19:42 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-10-08 17:36:17 +0300
commitf12b0373f322b710b9fa5cebb67bdf363ff90e9f (patch)
treeccb30a6d7cd12cac94a3a7ebefa72b162f4df1b2 /source/blender/python
parent5f364216acd5bf0f8098b1da1cdb2e75d42d59b3 (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')
-rw-r--r--source/blender/python/generic/bgl.c3
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; \
}