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:
authorJeroen Bakker <j.bakker@atmind.nl>2019-07-03 10:01:17 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2019-07-04 16:41:36 +0300
commite2bf240cbf5e806eddbc64987bb73adc4233e79e (patch)
treee4320a3af5045a6967ff5a57b0ab6e62eecdcb73 /source/blender/draw/intern/draw_manager.c
parent2ee257e2c34fecbeca798cfcb22b60903e50fcd2 (diff)
GreasePencil: Image render artifacts
When doing image rendering with grease pencil, it reused the view of workbench or EEVEE. These views might be offsetted due to TAA. This shifted the view a tiny bit. We will not reset the view in between render engines. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5171
Diffstat (limited to 'source/blender/draw/intern/draw_manager.c')
-rw-r--r--source/blender/draw/intern/draw_manager.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index f8672a2da37..46f02f04064 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1916,6 +1916,13 @@ void DRW_render_gpencil(struct RenderEngine *engine, struct Depsgraph *depsgraph
DST.buffer_finish_called = false;
}
+static void drw_view_reset()
+{
+ DST.view_default = NULL;
+ DST.view_active = NULL;
+ DST.view_previous = NULL;
+}
+
void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
{
Scene *scene = DEG_get_evaluated_scene(depsgraph);
@@ -1998,14 +2005,12 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
for (RenderView *render_view = render_result->views.first; render_view != NULL;
render_view = render_view->next) {
RE_SetActiveRenderView(render, render_view->name);
- /* Reset the view. */
- DST.view_default = NULL;
- DST.view_active = NULL;
- DST.view_previous = NULL;
+ drw_view_reset();
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_view_reset();
DRW_render_gpencil_to_image(engine, render_layer, &render_rect);
}
DST.buffer_finish_called = false;