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:
-rw-r--r--source/blender/gpu/intern/gpu_state.cc28
-rw-r--r--source/blender/python/intern/bpy.c5
2 files changed, 22 insertions, 11 deletions
diff --git a/source/blender/gpu/intern/gpu_state.cc b/source/blender/gpu/intern/gpu_state.cc
index 44cc11155bb..4bdd49cb210 100644
--- a/source/blender/gpu/intern/gpu_state.cc
+++ b/source/blender/gpu/intern/gpu_state.cc
@@ -329,22 +329,28 @@ void GPU_apply_state(void)
void GPU_bgl_start(void)
{
- StateManager &state_manager = *(Context::get()->state_manager);
- if (state_manager.use_bgl == false) {
- /* Expected by many addons (see T80169, T81289).
- * This will reset the blend function. */
- GPU_blend(GPU_BLEND_NONE);
- state_manager.apply_state();
- state_manager.use_bgl = true;
+ Context *ctx = Context::get();
+ if (ctx && ctx->state_manager) {
+ StateManager &state_manager = *(Context::get()->state_manager);
+ if (state_manager.use_bgl == false) {
+ /* Expected by many addons (see T80169, T81289).
+ * This will reset the blend function. */
+ GPU_blend(GPU_BLEND_NONE);
+ state_manager.apply_state();
+ state_manager.use_bgl = true;
+ }
}
}
void GPU_bgl_end(void)
{
- StateManager &state_manager = *(Context::get()->state_manager);
- state_manager.use_bgl = false;
- /* Resync state tracking. */
- state_manager.force_state();
+ Context *ctx = Context::get();
+ if (ctx && ctx->state_manager) {
+ StateManager &state_manager = *ctx->state_manager;
+ state_manager.use_bgl = false;
+ /* Resync state tracking. */
+ state_manager.force_state();
+ }
}
bool GPU_bgl_get(void)
diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c
index de8fd87db58..a4a73d2aa75 100644
--- a/source/blender/python/intern/bpy.c
+++ b/source/blender/python/intern/bpy.c
@@ -35,6 +35,8 @@
#include "RNA_access.h"
#include "RNA_types.h"
+#include "GPU_state.h"
+
#include "bpy.h"
#include "bpy_app.h"
#include "bpy_capi_utils.h"
@@ -330,6 +332,9 @@ static PyMethodDef meth_bpy_escape_identifier = {
static PyObject *bpy_import_test(const char *modname)
{
PyObject *mod = PyImport_ImportModuleLevel(modname, NULL, NULL, NULL, 0);
+
+ GPU_bgl_end();
+
if (mod) {
Py_DECREF(mod);
}