diff options
author | Miguel Pozo <pragma37> | 2020-07-20 14:56:29 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-07-20 20:31:42 +0300 |
commit | 52543be9a6a4398a3cb5ec19df3659aa42a38727 (patch) | |
tree | 429ff41337ee08bf373082a26043abf8751d8130 /source/blender/render | |
parent | a9644c812fc17b38503828d6edf7d259b6fe0e74 (diff) |
Python API: option to use OpenGL context in RenderEngine.render
When bl_use_gpu_context is set, an OpenGL context will be available for
OpenGL based render engines.
Differential Revision: https://developer.blender.org/D8305
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/extern/include/RE_engine.h | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/external_engine.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 77a60854616..51eb290b0b8 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -60,6 +60,7 @@ struct bNodeTree; #define RE_USE_SHADING_NODES_CUSTOM 64 #define RE_USE_SPHERICAL_STEREO 128 #define RE_USE_STEREO_VIEWPORT 256 +#define RE_USE_GPU_CONTEXT 512 /* RenderEngine.flag */ #define RE_ENGINE_ANIMATION 1 diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c index e1fbf6d19de..633b9324d9f 100644 --- a/source/blender/render/intern/source/external_engine.c +++ b/source/blender/render/intern/source/external_engine.c @@ -863,8 +863,16 @@ int RE_engine_render(Render *re, int do_all) re->draw_lock(re->dlh, 0); } + if (engine->type->flag & RE_USE_GPU_CONTEXT) { + DRW_render_context_enable(engine->re); + } + type->render(engine, engine->depsgraph); + if (engine->type->flag & RE_USE_GPU_CONTEXT) { + DRW_render_context_disable(engine->re); + } + /* Grease pencil render over previous render result. * * NOTE: External engine might have been requested to free its |