From cc3fdffbbe450ef75a49571ec75fd8f0ecb45550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 22 Oct 2020 01:19:10 +0200 Subject: 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. --- source/blender/draw/engines/external/external_engine.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/draw/engines/external') 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(); -- cgit v1.2.3