[Bf-blender-cvs] [20e5fc4d328] blender2.8: Fix context problem when render in background mode
Antonioya
noreply at git.blender.org
Wed Aug 1 10:58:24 CEST 2018
Commit: 20e5fc4d328bf566841f22b16de809da8de15bf7
Author: Antonioya
Date: Wed Aug 1 10:58:10 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB20e5fc4d328bf566841f22b16de809da8de15bf7
Fix context problem when render in background mode
Bug reported by Sergey.
===================================================================
M source/blender/draw/intern/draw_manager.c
===================================================================
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 0c731811f32..ab50e6673f2 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1659,7 +1659,24 @@ void DRW_render_gpencil(struct RenderEngine *engine, struct Depsgraph *depsgraph
Render *render = engine->re;
/* Changing Context */
/* GPXX Review this context */
- DRW_opengl_context_enable();
+ if (G.background && DST.gl_context == NULL) {
+ WM_init_opengl(G_MAIN);
+ }
+
+ void *re_gl_context = RE_gl_context_get(render);
+ void *re_gpu_context = NULL;
+
+ /* Changing Context */
+ if (re_gl_context != NULL) {
+ DRW_opengl_render_context_enable(re_gl_context);
+ /* We need to query gpu context after a gl context has been bound. */
+ re_gpu_context = RE_gpu_context_get(render);
+ DRW_gawain_render_context_enable(re_gpu_context);
+ }
+ else {
+ DRW_opengl_context_enable();
+ }
+
/* Reset before using it. */
drw_state_prepare_clean_for_draw(&DST);
DST.options.is_image_render = true;
More information about the Bf-blender-cvs
mailing list