From 1b6c21c03ba078533e0c935acfc6cf61d37006bd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 May 2017 04:59:15 +1000 Subject: Workaround external engines with OpenGL rendering For now just do the OpenGL render and don't render using the engine. This is a slightly odd-use case since it makes more sense to do a regular render. --- source/blender/draw/engines/external/external_engine.c | 9 ++++++++- source/blender/draw/intern/draw_manager.c | 4 +--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/draw/engines/external/external_engine.c b/source/blender/draw/engines/external/external_engine.c index ad7c8ce7da3..34ca92038d1 100644 --- a/source/blender/draw/engines/external/external_engine.c +++ b/source/blender/draw/engines/external/external_engine.c @@ -175,8 +175,15 @@ static void external_draw_scene(void *UNUSED(vedata)) static void EXTERNAL_draw_scene(void *vedata) { + const DRWContextState *draw_ctx = DRW_context_state_get(); EXTERNAL_PassList *psl = ((EXTERNAL_Data *)vedata)->psl; - external_draw_scene(vedata); + + /* Will be NULL during OpenGL render. + * OpenGL render is used for quick preview (thumbnails or sequencer preview) + * where using the rendering engine to preview doesn't make so much sense. */ + if (draw_ctx->evil_C) { + external_draw_scene(vedata); + } DRW_draw_pass(psl->depth_pass); } diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 23293395fd4..06cebab1c72 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -2188,9 +2188,7 @@ void DRW_draw_view(const bContext *C) } /** - * Used for both regular drawing and off-screen drawing. - * - * \param ofs: When not NULL, use this data to create the viewport. + * Used for both regular and off-screen drawing. */ void DRW_draw_render_loop( struct Depsgraph *graph, -- cgit v1.2.3