Browse Source

Free items before finishing rendering server

qarmin 5 years ago
parent
commit
b5fd03fc36
1 changed files with 11 additions and 11 deletions
  1. 11 11
      servers/rendering/rendering_server_wrap_mt.cpp

+ 11 - 11
servers/rendering/rendering_server_wrap_mt.cpp

@@ -126,17 +126,6 @@ void RenderingServerWrapMT::init() {
 
 
 void RenderingServerWrapMT::finish() {
 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();
 	sky_free_cached_ids();
 	shader_free_cached_ids();
 	shader_free_cached_ids();
 	material_free_cached_ids();
 	material_free_cached_ids();
@@ -161,6 +150,17 @@ void RenderingServerWrapMT::finish() {
 	canvas_item_free_cached_ids();
 	canvas_item_free_cached_ids();
 	canvas_light_occluder_free_cached_ids();
 	canvas_light_occluder_free_cached_ids();
 	canvas_occluder_polygon_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) {
 void RenderingServerWrapMT::set_use_vsync_callback(bool p_enable) {