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:
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
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue