[Bf-blender-cvs] [f4e3244c5d4] temp-sybren-modifier-nonmesh: Don't pass vertexCos, we don't need them applied to the mesh.

Sybren A. Stüvel noreply at git.blender.org
Fri May 11 09:45:02 CEST 2018


Commit: f4e3244c5d4ec543c24c6ebece3fc1a027e1090a
Author: Sybren A. Stüvel
Date:   Fri May 11 09:44:52 2018 +0200
Branches: temp-sybren-modifier-nonmesh
https://developer.blender.org/rBf4e3244c5d4ec543c24c6ebece3fc1a027e1090a

Don't pass vertexCos, we don't need them applied to the mesh.

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

M	source/blender/modifiers/intern/MOD_armature.c
M	source/blender/modifiers/intern/MOD_cast.c
M	source/blender/modifiers/intern/MOD_curve.c
M	source/blender/modifiers/intern/MOD_hook.c
M	source/blender/modifiers/intern/MOD_lattice.c
M	source/blender/modifiers/intern/MOD_simpledeform.c
M	source/blender/modifiers/intern/MOD_util.c

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

diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index 905269a7fcb..26fe2ff2e4c 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -135,7 +135,7 @@ static void deformVertsEM(
         Mesh *mesh, float (*vertexCos)[3], int numVerts)
 {
 	ArmatureModifierData *amd = (ArmatureModifierData *) md;
-	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, NULL, false, false);
 
 	modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
 
@@ -159,7 +159,7 @@ static void deformMatricesEM(
         float (*defMats)[3][3], int numVerts)
 {
 	ArmatureModifierData *amd = (ArmatureModifierData *) md;
-	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, NULL, false, false);
 
 	armature_deform_verts(amd->object, ctx->object, mesh_src, vertexCos, defMats, numVerts,
 	                      amd->deformflag, NULL, amd->defgrp_name);
@@ -173,7 +173,7 @@ static void deformMatrices(ModifierData *md, const ModifierEvalContext *ctx, Mes
                            float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
 {
 	ArmatureModifierData *amd = (ArmatureModifierData *) md;
-	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
 	armature_deform_verts(amd->object, ctx->object, mesh_src, vertexCos, defMats, numVerts,
 	                      amd->deformflag, NULL, amd->defgrp_name);
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c
index ae8400222a7..2eee77c4dd7 100644
--- a/source/blender/modifiers/intern/MOD_cast.c
+++ b/source/blender/modifiers/intern/MOD_cast.c
@@ -428,7 +428,7 @@ static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx,
                         int numVerts)
 {
 	CastModifierData *cmd = (CastModifierData *)md;
-	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
 	BLI_assert(mesh_src->totvert == numVerts);
 
@@ -450,7 +450,7 @@ static void deformVertsEM(
         Mesh *mesh, float (*vertexCos)[3], int numVerts)
 {
 	CastModifierData *cmd = (CastModifierData *)md;
-	Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, NULL, false, false);
 
 	BLI_assert(mesh_src->totvert == numVerts);
 
diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c
index ab78f4737e1..deda8213a65 100644
--- a/source/blender/modifiers/intern/MOD_curve.c
+++ b/source/blender/modifiers/intern/MOD_curve.c
@@ -113,7 +113,7 @@ static void deformVerts(
         int numVerts)
 {
 	CurveModifierData *cmd = (CurveModifierData *) md;
-	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
 	BLI_assert(mesh_src->totvert == numVerts);
 
@@ -134,7 +134,7 @@ static void deformVertsEM(
         float (*vertexCos)[3],
         int numVerts)
 {
-	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, em, mesh, NULL, false, false);
 
 	BLI_assert(mesh_src->totvert == numVerts);
 
diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c
index b25b7397726..29462db7adf 100644
--- a/source/blender/modifiers/intern/MOD_hook.c
+++ b/source/blender/modifiers/intern/MOD_hook.c
@@ -352,9 +352,9 @@ static void deformVerts(struct ModifierData *md, const struct ModifierEvalContex
                         float (*vertexCos)[3], int numVerts)
 {
 	HookModifierData *hmd = (HookModifierData *)md;
-	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
-	deformVerts_do(hmd, ctx->object, mesh_src, vertexCos, numVerts);
+	deformVerts_do(hmd, ctx->object, mesh_src, NULL, numVerts);
 
 	if (mesh_src != mesh) {
 		BKE_id_free(NULL, mesh_src);
@@ -366,7 +366,6 @@ static void deformVertsEM(struct ModifierData *md, const struct ModifierEvalCont
                           struct Mesh *mesh, float (*vertexCos)[3], int numVerts)
 {
 	HookModifierData *hmd = (HookModifierData *)md;
-	// XXXXX(sybren) change vertexCos to NULL in all similar calls to get_mesh
 	Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, NULL, false, false);
 
 	deformVerts_do(hmd, ctx->object, mesh_src, vertexCos, numVerts);
diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c
index 2c0660a4813..9487841af95 100644
--- a/source/blender/modifiers/intern/MOD_lattice.c
+++ b/source/blender/modifiers/intern/MOD_lattice.c
@@ -99,7 +99,7 @@ static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx,
                         int numVerts)
 {
 	LatticeModifierData *lmd = (LatticeModifierData *) md;
-	struct Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	struct Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
 	modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
 
@@ -114,7 +114,7 @@ static void deformVertsEM(
         ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *em,
         struct Mesh *mesh, float (*vertexCos)[3], int numVerts)
 {
-	struct Mesh *mesh_src = get_mesh(ctx->object, em, mesh, vertexCos, false, false);
+	struct Mesh *mesh_src = get_mesh(ctx->object, em, mesh, NULL, false, false);
 
 	deformVerts(md, ctx, mesh_src, vertexCos, numVerts);
 
diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c
index a7134e37de6..f054c89ea90 100644
--- a/source/blender/modifiers/intern/MOD_simpledeform.c
+++ b/source/blender/modifiers/intern/MOD_simpledeform.c
@@ -384,7 +384,7 @@ static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx,
                         float (*vertexCos)[3],
                         int numVerts)
 {
-	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false);
 
 	SimpleDeformModifier_do((SimpleDeformModifierData *)md, ctx->object, mesh_src, vertexCos, numVerts);
 
@@ -399,7 +399,7 @@ static void deformVertsEM(ModifierData *md, const ModifierEvalContext *ctx,
                           float (*vertexCos)[3],
                           int numVerts)
 {
-	Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, vertexCos, false, false);
+	Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, NULL, false, false);
 
 	SimpleDeformModifier_do((SimpleDeformModifierData *)md, ctx->object, mesh_src, vertexCos, numVerts);
 
diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c
index 405919b1b59..759ba58cd2a 100644
--- a/source/blender/modifiers/intern/MOD_util.c
+++ b/source/blender/modifiers/intern/MOD_util.c
@@ -300,6 +300,8 @@ Mesh *get_mesh(Object *ob, struct BMEditMesh *em, Mesh *mesh,
 		struct BMeshToMeshParams bmtmp = {0};
 		if (em) mesh = BKE_bmesh_to_mesh_nomain(em->bm, &bmtmp);
 		else {
+			/* TODO(sybren): after modifier conversion to Mesh is done, check whether
+			 * we really need a copy here. Maybe the CoW ob->data can be directly used. */
 			BKE_id_copy_ex(
 			        NULL, ob->data, (ID **)&mesh,
 			        LIB_ID_CREATE_NO_MAIN |



More information about the Bf-blender-cvs mailing list