[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