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:
@@ -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);
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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,
|
||||
};
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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,
|
||||
};
|
||||
|
@@ -585,4 +585,5 @@ ModifierTypeInfo modifierType_Ocean = {
|
||||
/* dependsOnNormals */ dependsOnNormals,
|
||||
/* foreachObjectLink */ NULL,
|
||||
/* foreachIDLink */ NULL,
|
||||
/* foreachTexLink */ NULL,
|
||||
};
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -190,6 +190,6 @@ ModifierTypeInfo modifierType_Surface = {
|
||||
/* dependsOnTime */ dependsOnTime,
|
||||
/* dependsOnNormals */ NULL,
|
||||
/* foreachObjectLink */ NULL,
|
||||
/* foreachIDLink */ NULL,
|
||||
/* foreachTexLink */ NULL,
|
||||
/* foreachIDLink */ NULL,
|
||||
/* foreachTexLink */ NULL,
|
||||
};
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user