diff options
author | Brecht Van Lommel <brecht@blender.org> | 2020-03-26 03:14:08 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-03-26 03:29:20 +0300 |
commit | ba8d819c9b1ccb7dae50167755167dc3e54bd657 (patch) | |
tree | 15428f208bb414fab49decca2aad82723939dc13 /source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | |
parent | 366cb3a0592af4736fa9efc5881eab4760b7cba7 (diff) |
Fix T74417: Freestyle render removes image texture users
This simplifies freestyle render pipeline integration so we don't have to do
much manual ID user management at all. The complexity here was legacy from
Blender Internal.
Based on fix provided by Sybren A. Stüvl.
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, 3 insertions, 11 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp index 0877107a240..0f4263162a6 100644 --- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp +++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp @@ -637,14 +637,8 @@ void FRS_begin_stroke_rendering(Render *re) init_camera(re); } -Render *FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer, int render) +void FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer) { - Render *freestyle_render = NULL; - - if (!render) { - return controller->RenderStrokes(re, false); - } - RenderMonitor monitor(re); controller->setRenderMonitor(&monitor); controller->setViewMapCache( @@ -685,6 +679,7 @@ Render *FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer, int render) re->i.infostr = NULL; g_freestyle.scene = DEG_get_evaluated_scene(depsgraph); int strokeCount = controller->DrawStrokes(); + Render *freestyle_render = NULL; if (strokeCount > 0) { freestyle_render = controller->RenderStrokes(re, true); } @@ -694,15 +689,12 @@ Render *FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer, int render) // composite result if (freestyle_render) { FRS_composite_result(re, view_layer, freestyle_render); - RE_FreeRenderResult(freestyle_render->result); - freestyle_render->result = NULL; + RE_FreeRender(freestyle_render); } } } DEG_graph_free(depsgraph); - - return freestyle_render; } void FRS_end_stroke_rendering(Render * /*re*/) |