[Bf-blender-cvs] [cc3fdffbbe4] blender-v2.91-release: DRW: Fix custom engine not being BGL safe
Clément Foucault
noreply at git.blender.org
Thu Oct 22 01:20:32 CEST 2020
Commit: cc3fdffbbe450ef75a49571ec75fd8f0ecb45550
Author: Clément Foucault
Date: Thu Oct 22 01:19:10 2020 +0200
Branches: blender-v2.91-release
https://developer.blender.org/rBcc3fdffbbe450ef75a49571ec75fd8f0ecb45550
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.
===================================================================
M source/blender/draw/engines/external/external_engine.c
===================================================================
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();
More information about the Bf-blender-cvs
mailing list