diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2016-05-05 17:09:22 +0300 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2016-05-05 17:15:52 +0300 |
commit | c8e9832be3ad2a86dc035a413a5be7469685636e (patch) | |
tree | 71d22a0af77ed749e98557620d437befe0c6703d /source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | |
parent | 6f83710af94a9f6d117ef60537329941cd8614fa (diff) |
Fix T48320: Freestyle renders wrong edges of objects which in the other RenderLayer.
FSAA sample files in EXR format are no longer always updated (after some
changes between 2.73 and 2.74 releases), and the reported bug was caused
by old samples from a previous frame that were being merged by mistake.
The present revision addresses the documented issue by entirely skipping
the rendering of auto-generated scenes when there are no Freestyle strokes
to render, which suppresses sample merging of the render layers that were
not rendered.
Diffstat (limited to 'source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp')
-rw-r--r-- | source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp index dc88f69c95b..4d8c6a66d42 100644 --- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp +++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp @@ -628,15 +628,19 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) re->stats_draw(re->sdh, &re->i); re->i.infostr = NULL; g_freestyle.scene = re->scene; - controller->DrawStrokes(); - freestyle_render = controller->RenderStrokes(re, true); + int strokeCount = controller->DrawStrokes(); + if (strokeCount > 0) { + freestyle_render = controller->RenderStrokes(re, true); + } controller->CloseFile(); g_freestyle.scene = NULL; // composite result - FRS_composite_result(re, srl, freestyle_render); - RE_FreeRenderResult(freestyle_render->result); - freestyle_render->result = NULL; + if (freestyle_render) { + FRS_composite_result(re, srl, freestyle_render); + RE_FreeRenderResult(freestyle_render->result); + freestyle_render->result = NULL; + } } } |