Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-03-12 17:53:10 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-03-12 18:01:23 +0300
commite28f0f179d2a4c5f547c8fce6f010e7b733d6887 (patch)
tree2b3ed840f0cf4d9cd2f65f77507694e03074de34 /source/blender
parentaaeca5d87244bca2832b86d60457f0568acf1427 (diff)
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).
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/draw/intern/draw_manager.c7
1 files changed, 7 insertions, 0 deletions
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);