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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2016-05-05 17:09:22 +0300
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2016-05-05 17:15:52 +0300
commitc8e9832be3ad2a86dc035a413a5be7469685636e (patch)
tree71d22a0af77ed749e98557620d437befe0c6703d /source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
parent6f83710af94a9f6d117ef60537329941cd8614fa (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.cpp14
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;
+ }
}
}