[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