[Bf-blender-cvs] [e28f0f179d2] master: Fix T62279: Rendering simple geometry corrupts with greasepencil layer

Clément Foucault noreply at git.blender.org
Tue Mar 12 16:01:31 CET 2019


Commit: e28f0f179d2a4c5f547c8fce6f010e7b733d6887
Author: Clément Foucault
Date:   Tue Mar 12 15:53:10 2019 +0100
Branches: master
https://developer.blender.org/rBe28f0f179d2a4c5f547c8fce6f010e7b733d6887

Fix T62279: Rendering simple geometry corrupts with greasepencil layer


This was caused by a missing state reset. Also adding safety state reset
before and after drawing (might not be necessary).

===================================================================

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 949e049ca80..c409d015330 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1876,6 +1876,9 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
 		BLI_rcti_init(&render_rect, 0, size[0], 0, size[1]);
 	}
 
+	/* Reset state before drawing */
+	DRW_state_reset();
+
 	/* Init render result. */
 	RenderResult *render_result = RE_engine_begin_result(
 	        engine,
@@ -1895,6 +1898,7 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
 		engine_type->draw_engine->render_to_image(data, engine, render_layer, &render_rect);
 		/* grease pencil: render result is merged in the previous render result. */
 		if (DRW_render_check_grease_pencil(depsgraph)) {
+			DRW_state_reset();
 			DRW_render_gpencil_to_image(engine, render_layer, &render_rect);
 		}
 		DST.buffer_finish_called = false;
@@ -1913,6 +1917,9 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
 	drw_state_ensure_not_reused(&DST);
 #endif
 
+	/* Reset state after drawing */
+	DRW_state_reset();
+
 	/* Changing Context */
 	if (re_gl_context != NULL) {
 		DRW_gawain_render_context_disable(re_gpu_context);



More information about the Bf-blender-cvs mailing list