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-22 02:19:10 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-10-22 02:19:10 +0300
commitcc3fdffbbe450ef75a49571ec75fd8f0ecb45550 (patch)
treefdc1875ca6226a47914bc5102cbaa9e5d3ca7a82
parent5a65305f8998a72c8bf39bc69414c7ba2da57055 (diff)
DRW: Fix custom engine not being BGL safe
This was caused by unprotected drawing callbacks. As of 2.91, we require that all python callbacks used for drawing needs to be safeguarded by `GPU_bgl_end()` to end the state tracking override.
-rw-r--r--source/blender/draw/engines/external/external_engine.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/draw/engines/external/external_engine.c b/source/blender/draw/engines/external/external_engine.c
index bcdd0f9e3dc..bd97fd8a413 100644
--- a/source/blender/draw/engines/external/external_engine.c
+++ b/source/blender/draw/engines/external/external_engine.c
@@ -36,6 +36,7 @@
#include "GPU_matrix.h"
#include "GPU_shader.h"
+#include "GPU_state.h"
#include "GPU_viewport.h"
#include "external_engine.h" /* own include */
@@ -243,6 +244,8 @@ static void external_draw_scene_do(void *vedata)
type = rv3d->render_engine->type;
type->view_draw(rv3d->render_engine, draw_ctx->evil_C, draw_ctx->depsgraph);
+ GPU_bgl_end();
+
GPU_matrix_pop();
GPU_matrix_pop_projection();