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).
This commit is contained in:
Clément Foucault 2019-03-12 15:53:10 +01:00
parent aaeca5d872
commit e28f0f179d
Notes: blender-bot 2023-02-14 06:00:45 +01:00
Referenced by issue #62421, Blender EeveE Frame Render Light Flicker
Referenced by issue #62398, Rendering animation makes part of meshes invisible in 2.8
Referenced by issue #62279, Rendering simple geometry corrupts with greasepencil layer
1 changed files with 7 additions and 0 deletions

View File

@ -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);