[Bf-blender-cvs] [b9bef10d195] blender2.8: Ported mesh_create_derived_view() to mesh_create_eval_final_view()

Sybren A. Stüvel noreply at git.blender.org
Tue Jul 10 12:05:32 CEST 2018


Commit: b9bef10d1953bda4e1eb882bdc525815c2e32e01
Author: Sybren A. Stüvel
Date:   Thu Jul 5 15:41:58 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBb9bef10d1953bda4e1eb882bdc525815c2e32e01

Ported mesh_create_derived_view() to mesh_create_eval_final_view()

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

M	source/blender/blenkernel/BKE_DerivedMesh.h
M	source/blender/blenkernel/BKE_mesh_runtime.h
M	source/blender/blenkernel/intern/DerivedMesh.c

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

diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index e497e84b7e0..cdf0d683779 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -532,9 +532,6 @@ DerivedMesh *getEditDerivedBMesh(
 
 /* same as above but wont use render settings */
 DerivedMesh *mesh_create_derived(struct Mesh *me, float (*vertCos)[3]);
-DerivedMesh *mesh_create_derived_view(
-        struct Depsgraph *depsgraph, struct Scene *scene,
-        struct Object *ob, CustomDataMask dataMask);
 DerivedMesh *mesh_create_derived_no_deform(
         struct Depsgraph *depsgraph, struct Scene *scene,
         struct Object *ob, float (*vertCos)[3],
diff --git a/source/blender/blenkernel/BKE_mesh_runtime.h b/source/blender/blenkernel/BKE_mesh_runtime.h
index 8ff097eb61b..e673a30c0b3 100644
--- a/source/blender/blenkernel/BKE_mesh_runtime.h
+++ b/source/blender/blenkernel/BKE_mesh_runtime.h
@@ -94,6 +94,15 @@ struct Mesh *mesh_create_eval_final_index_render(
         struct Depsgraph *depsgraph, struct Scene *scene,
         struct Object *ob, CustomDataMask dataMask, int index);
 
+#ifdef USE_DERIVEDMESH
+struct DerivedMesh *mesh_create_derived_view(
+        struct Depsgraph *depsgraph, struct Scene *scene,
+        struct Object *ob, CustomDataMask dataMask);
+#endif
+struct Mesh *mesh_create_eval_final_view(
+        struct Depsgraph *depsgraph, struct Scene *scene,
+        struct Object *ob, CustomDataMask dataMask);
+
 void BKE_mesh_runtime_eval_to_meshkey(struct Mesh *me_deformed, struct Mesh *me, struct KeyBlock *kb);
 
 /* Temporary? A function to give a colorband to derivedmesh for vertexcolor ranges */
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 4fe689523e0..9c4aae7cda5 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -3182,6 +3182,8 @@ struct Mesh *mesh_create_eval_final_index_render(
 	return final;
 }
 
+#ifdef USE_DERIVEDMESH
+/* Deprecated, use `mesh_create_eval_final_view` instead. */
 DerivedMesh *mesh_create_derived_view(
         struct Depsgraph *depsgraph, Scene *scene,
         Object *ob, CustomDataMask dataMask)
@@ -3202,6 +3204,28 @@ DerivedMesh *mesh_create_derived_view(
 
 	return final;
 }
+#endif
+
+Mesh *mesh_create_eval_final_view(
+        struct Depsgraph *depsgraph, Scene *scene,
+        Object *ob, CustomDataMask dataMask)
+{
+	Mesh *final;
+
+	/* XXX hack
+	 * psys modifier updates particle state when called during dupli-list generation,
+	 * which can lead to wrong transforms. This disables particle system modifier execution.
+	 */
+	ob->transflag |= OB_NO_PSYS_UPDATE;
+
+	mesh_calc_modifiers(
+	        depsgraph, scene, ob, NULL, 1, false, dataMask, -1, false, false, false,
+	        NULL, &final);
+
+	ob->transflag &= ~OB_NO_PSYS_UPDATE;
+
+	return final;
+}
 
 DerivedMesh *mesh_create_derived_no_deform(
         struct Depsgraph *depsgraph, Scene *scene, Object *ob,



More information about the Bf-blender-cvs mailing list