diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-04-10 11:50:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-10 11:50:13 +0200 |
commit | a152ef9a10d7e37f6150f5c45e24090047edf21f (patch) | |
tree | 60d94f070e070f5c6c2ff533a196139ee987590b | |
parent | d41444b0d8418fb79e8c0f1862fcc5dc389c32ba (diff) | |
parent | b5fd03fc3646bc1c4428072391a11d2307709be9 (diff) |
Merge pull request #37662 from qarmin/rasterizer_server_last
Free items before finishing rendering server
-rw-r--r-- | servers/rendering/rendering_server_wrap_mt.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/servers/rendering/rendering_server_wrap_mt.cpp b/servers/rendering/rendering_server_wrap_mt.cpp index aa3bf583c7..4ca13dbef9 100644 --- a/servers/rendering/rendering_server_wrap_mt.cpp +++ b/servers/rendering/rendering_server_wrap_mt.cpp @@ -126,17 +126,6 @@ void RenderingServerWrapMT::init() { void RenderingServerWrapMT::finish() { - if (thread) { - - command_queue.push(this, &RenderingServerWrapMT::thread_exit); - Thread::wait_to_finish(thread); - memdelete(thread); - - thread = nullptr; - } else { - rendering_server->finish(); - } - sky_free_cached_ids(); shader_free_cached_ids(); material_free_cached_ids(); @@ -161,6 +150,17 @@ void RenderingServerWrapMT::finish() { canvas_item_free_cached_ids(); canvas_light_occluder_free_cached_ids(); canvas_occluder_polygon_free_cached_ids(); + + if (thread) { + + command_queue.push(this, &RenderingServerWrapMT::thread_exit); + Thread::wait_to_finish(thread); + memdelete(thread); + + thread = nullptr; + } else { + rendering_server->finish(); + } } void RenderingServerWrapMT::set_use_vsync_callback(bool p_enable) { |