[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