diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-11-01 23:00:56 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-11-02 19:16:50 +0300 |
commit | 31746e1baa14fd3a64053aec82a40ffc07f95973 (patch) | |
tree | d220facfd17d34de073fd36ac2c98af12e7992f6 /source/blender/freestyle/intern | |
parent | 07ef428c6c41d74d267e2dbd505386e93f26de38 (diff) |
Fix memory leak with Freestyle renders after recent changes
Render stored a shallow copy of the scene view layers and views for thread
safety, without proper functions to free it. But with the CoW depsgraph this
scene is already a copy of the original and an additional copy is not needed.
Refactor to use the scene view layers and some other settings directly instead
of making a copy.
Diffstat (limited to 'source/blender/freestyle/intern')
-rw-r--r-- | source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp index 06365c3799f..af9ef7f352e 100644 --- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp +++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp @@ -131,9 +131,9 @@ static void init_view(Render *re) int ymax = re->disprect.ymax; float thickness = 1.0f; - switch (re->r.line_thickness_mode) { + switch (re->scene->r.line_thickness_mode) { case R_LINE_THICKNESS_ABSOLUTE: - thickness = re->r.unit_line_thickness * (re->r.size / 100.0f); + thickness = re->scene->r.unit_line_thickness * (re->r.size / 100.0f); break; case R_LINE_THICKNESS_RELATIVE: thickness = height / 480.0f; @@ -485,7 +485,7 @@ void FRS_composite_result(Render *re, ViewLayer *view_layer, Render *freestyle_r return; } - rl = render_get_active_layer(freestyle_render, freestyle_render->result); + rl = render_get_single_layer(freestyle_render, freestyle_render->result); if (!rl) { if (G.debug & G_DEBUG_FREESTYLE) { cout << "No source render layer to composite" << endl; |