Cleanup: use proper ObjectWalkFunc typedef in modifiers' object callback func.

Also, fix own stupidity, no need to define ID callback in case we only have objects,
calling code knows to fallback to `foreachObjectLink()` when `foreachIDLink()` is missing...
This commit is contained in:
2015-10-05 15:57:10 +02:00
parent 90b925f76d
commit e5552f8241
22 changed files with 30 additions and 58 deletions

View File

@@ -104,6 +104,7 @@ typedef enum {
eModifierTypeFlag_UsesPreview = (1 << 9)
} ModifierTypeFlag;
/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin);
typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin);
typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname);

View File

@@ -91,8 +91,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
ArmatureModifierData *amd = (ArmatureModifierData *) md;

View File

@@ -90,8 +90,7 @@ static void copyData(ModifierData *md, ModifierData *target)
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
ArrayModifierData *amd = (ArrayModifierData *) md;

View File

@@ -65,8 +65,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
BooleanModifierData *bmd = (BooleanModifierData *) md;

View File

@@ -97,8 +97,7 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
CastModifierData *cmd = (CastModifierData *) md;

View File

@@ -84,8 +84,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(userRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
CurveModifierData *cmd = (CurveModifierData *) md;

View File

@@ -118,19 +118,14 @@ static bool dependsOnNormals(ModifierData *md)
return false;
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
static void foreachObjectLink(
ModifierData *md, Object *ob,
ObjectWalkFunc walk, void *userData)
{
DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
walk(userData, ob, &dtmd->ob_source);
}
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
}
static void updateDepgraph(ModifierData *md, DagForest *forest,
struct Main *UNUSED(bmain),
struct Scene *UNUSED(scene),
@@ -260,6 +255,6 @@ ModifierTypeInfo modifierType_DataTransfer = {
/* dependsOnTime */ NULL,
/* dependsOnNormals */ dependsOnNormals,
/* foreachObjectLink */ foreachObjectLink,
/* foreachIDLink */ foreachIDLink,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
};

View File

@@ -103,8 +103,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
HookModifierData *hmd = (HookModifierData *) md;

View File

@@ -83,8 +83,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(userRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
LatticeModifierData *lmd = (LatticeModifierData *) md;

View File

@@ -70,8 +70,7 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
MaskModifierData *mmd = (MaskModifierData *)md;
walk(userData, ob, &mmd->ob_arm);

View File

@@ -114,8 +114,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;

View File

@@ -65,9 +65,9 @@ static void copyData(ModifierData *md, ModifierData *target)
modifier_copyData_generic(md, target);
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
static void foreachObjectLink(
ModifierData *md, Object *ob,
ObjectWalkFunc walk, void *userData)
{
MirrorModifierData *mmd = (MirrorModifierData *) md;

View File

@@ -453,13 +453,6 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
walk(userData, ob, &smd->target);
}
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{
NormalEditModifierData *smd = (NormalEditModifierData *) md;
walk(userData, ob, (ID **)&smd->target);
}
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
{
NormalEditModifierData *smd = (NormalEditModifierData *)md;
@@ -524,6 +517,6 @@ ModifierTypeInfo modifierType_NormalEdit = {
/* dependsOnTime */ NULL,
/* dependsOnNormals */ dependsOnNormals,
/* foreachObjectLink */ foreachObjectLink,
/* foreachIDLink */ foreachIDLink,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
};

View File

@@ -585,4 +585,5 @@ ModifierTypeInfo modifierType_Ocean = {
/* dependsOnNormals */ dependsOnNormals,
/* foreachObjectLink */ NULL,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
};

View File

@@ -1090,8 +1090,7 @@ static void updateDepsgraph(ModifierData *md,
static void foreachObjectLink(
ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
ObjectWalkFunc walk, void *userData)
{
ScrewModifierData *ltmd = (ScrewModifierData *) md;

View File

@@ -279,8 +279,9 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
return dataMask;
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin), void *userData)
static void foreachObjectLink(
ModifierData *md, Object *ob,
ObjectWalkFunc walk, void *userData)
{
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
walk(userData, ob, &smd->origin);

View File

@@ -190,6 +190,6 @@ ModifierTypeInfo modifierType_Surface = {
/* dependsOnTime */ dependsOnTime,
/* dependsOnNormals */ NULL,
/* foreachObjectLink */ NULL,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
};

View File

@@ -101,8 +101,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
walk(userData, ob, (ID **)&umd->image);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk,
userData);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
}
static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -126,9 +126,7 @@ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *u
walk(userData, ob, (ID **)&wmd->texture);
walk(userData, ob, (ID **)&wmd->object_from);
walk(userData, ob, (ID **)&wmd->object_to);
walk(userData, ob, (ID **)&wmd->map_object);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
}
static void foreachTexLink(ModifierData *md, Object *ob, TexWalkFunc walk, void *userData)

View File

@@ -122,9 +122,7 @@ static bool dependsOnTime(ModifierData *md)
return false;
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
walk(userData, ob, &wmd->mask_tex_map_obj);

View File

@@ -171,9 +171,7 @@ static bool dependsOnTime(ModifierData *md)
return false;
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
walk(userData, ob, &wmd->mask_tex_map_obj);

View File

@@ -287,9 +287,7 @@ static bool dependsOnTime(ModifierData *md)
return 0;
}
static void foreachObjectLink(ModifierData *md, Object *ob,
void (*walk)(void *userData, Object *ob, Object **obpoin),
void *userData)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
walk(userData, ob, &wmd->proximity_ob_target);