diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-06-11 06:32:01 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-06-11 06:32:01 +0400 |
commit | 5520331215ffec52cd518f30bdf6e6276840e290 (patch) | |
tree | 77a5df7b902cb05a3780dd0aff46f851d514c45c /source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | |
parent | 9020df976ca37104a36a90d43c6e5b33c24cdbd2 (diff) |
Fix #35561: freestyle + read full sample layers = crash.
Now add_freestyle() in pipeline.c takes a second argument to enable/disable
stroke rendering. When stroke rendering is disabled, the function allocates
data structures but does not perform stroke rendering. The allocated data
structures (mostly left unpopulated with data elements) are intended to allow
for the Read Full Sample Layers (Shift-R) command in the compositor.
Diffstat (limited to 'source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp')
-rw-r--r-- | source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp index d5002d6fa39..8cb44d05b84 100644 --- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp +++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp @@ -580,12 +580,15 @@ void FRS_init_stroke_rendering(Render *re) controller->ResetRenderCount(); } -Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl) +Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) { Main bmain = {0}; Render *freestyle_render = NULL; Text *text, *next_text; + if (!render) + return controller->RenderStrokes(re, false); + RenderMonitor monitor(re); controller->setRenderMonitor(&monitor); @@ -619,7 +622,7 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl) re->i.infostr = NULL; freestyle_scene = re->scene; controller->DrawStrokes(); - freestyle_render = controller->RenderStrokes(re); + freestyle_render = controller->RenderStrokes(re, true); controller->CloseFile(); freestyle_scene = NULL; |