[Bf-blender-cvs] [fc3f80d1bbc] lanpr-under-gp: LANPR: Init and deinit triggers in ed_utils.c

YimingWu noreply at git.blender.org
Sun Jun 7 16:29:10 CEST 2020


Commit: fc3f80d1bbc602314b70d8a30d1bdb728a5862cc
Author: YimingWu
Date:   Thu Jun 4 21:42:53 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rBfc3f80d1bbc602314b70d8a30d1bdb728a5862cc

LANPR: Init and deinit triggers in ed_utils.c

===================================================================

M	source/blender/blenkernel/BKE_scene.h
M	source/blender/editors/include/ED_lanpr.h
M	source/blender/editors/lanpr/lanpr_cpu.c
M	source/blender/editors/util/ed_util.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 6ca533db144..dca6f569e25 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -257,11 +257,6 @@ void BKE_scene_cursor_from_mat4(struct View3DCursor *cursor,
  */
 void BKE_scene_eval_sequencer_sequences(struct Depsgraph *depsgraph, struct Scene *scene);
 
-/* LANPR */
-
-void BKE_lanpr_copy_data(const struct Scene *from, struct Scene *to);
-void BKE_lanpr_free_everything(struct Scene *s);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/editors/include/ED_lanpr.h b/source/blender/editors/include/ED_lanpr.h
index 29ee1442e3d..8d646ffd1e6 100644
--- a/source/blender/editors/include/ED_lanpr.h
+++ b/source/blender/editors/include/ED_lanpr.h
@@ -521,6 +521,8 @@ struct SceneLANPR;
 
 void ED_lanpr_init_locks(void);
 
+void ED_lanpr_destroy_render_data(void);
+
 int ED_lanpr_object_collection_usage_check(struct Collection *c, struct Object *o);
 
 void ED_lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb);
diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c
index 01a43931690..a08e2a052ed 100644
--- a/source/blender/editors/lanpr/lanpr_cpu.c
+++ b/source/blender/editors/lanpr/lanpr_cpu.c
@@ -2507,8 +2507,9 @@ static void lanpr_compute_scene_contours(LANPR_RenderBuffer *rb, const float thr
 
 /* Buffer operations */
 
-void ED_lanpr_destroy_render_data(LANPR_RenderBuffer *rb)
+void ED_lanpr_destroy_render_data(void)
 {
+  LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
   if (rb == NULL) {
     return;
   }
@@ -2546,7 +2547,7 @@ LANPR_RenderBuffer *ED_lanpr_create_render_buffer(Scene *s)
   /* Re-init render_buffer_shared */
   if (lanpr_share.render_buffer_shared) {
     LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
-    ED_lanpr_destroy_render_data(rb);
+    ED_lanpr_destroy_render_data();
     MEM_freeN(rb);
   }
 
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index af387e4f7c2..bf89f42d010 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -60,6 +60,7 @@
 #include "ED_armature.h"
 #include "ED_buttons.h"
 #include "ED_image.h"
+#include "ED_lanpr.h"
 #include "ED_mesh.h"
 #include "ED_node.h"
 #include "ED_object.h"
@@ -187,6 +188,11 @@ void ED_editors_init(bContext *C)
 
   SWAP(int, reports->flag, reports_flag_prev);
   wm->op_undo_depth--;
+
+  /* LANPR data lock duing async calculation */
+#ifdef WITH_LANPR
+  ED_lanpr_init_locks();
+#endif
 }
 
 /* frees all editmode stuff */
@@ -227,6 +233,11 @@ void ED_editors_exit(Main *bmain, bool do_undo_system)
   /* global in meshtools... */
   ED_mesh_mirror_spatial_table_end(NULL);
   ED_mesh_mirror_topo_table_end(NULL);
+
+  /* LANPR data*/
+#ifdef WITH_LANPR
+  ED_lanpr_destroy_render_data();
+#endif
 }
 
 bool ED_editors_flush_edits_for_object_ex(Main *bmain,



More information about the Bf-blender-cvs mailing list