Modifiers: add 'cd_flag' parameter to their ID looping callbacks, needed

since some IDs (objects) are not 'refcounted' while others (textures) are...

Partial merge from id-remap branch.
This commit is contained in:
2015-10-08 14:21:11 +02:00
parent fb5328d59f
commit f375028a25
33 changed files with 94 additions and 68 deletions

View File

@@ -105,8 +105,8 @@ typedef enum {
} ModifierTypeFlag; } ModifierTypeFlag;
/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */ /* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin); typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin, int cd_flag);
typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin); typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cd_flag);
typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname); typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname);
typedef enum ModifierApplyFlag { typedef enum ModifierApplyFlag {

View File

@@ -2520,7 +2520,8 @@ void DAG_on_visible_update(Main *bmain, const bool do_time)
} }
} }
static void dag_id_flush_update__isDependentTexture(void *userData, Object *UNUSED(ob), ID **idpoin) static void dag_id_flush_update__isDependentTexture(
void *userData, Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
{ {
struct { ID *id; bool is_dependent; } *data = userData; struct { ID *id; bool is_dependent; } *data = userData;

View File

@@ -103,11 +103,11 @@ typedef struct LibraryForeachIDData {
void *user_data; void *user_data;
} LibraryForeachIDData; } LibraryForeachIDData;
static void library_foreach_modifiersForeachIDLink(void *user_data, Object *UNUSED(object), static void library_foreach_modifiersForeachIDLink(
ID **id_pointer) void *user_data, Object *UNUSED(object), ID **id_pointer, int cd_flag)
{ {
LibraryForeachIDData *data = (LibraryForeachIDData *) user_data; LibraryForeachIDData *data = (LibraryForeachIDData *) user_data;
FOREACH_CALLBACK_INVOKE_ID_PP(data->self_id, id_pointer, data->flag, data->callback, data->user_data, IDWALK_NOP); FOREACH_CALLBACK_INVOKE_ID_PP(data->self_id, id_pointer, data->flag, data->callback, data->user_data, cd_flag);
} }
static void library_foreach_constraintObjectLooper(bConstraint *UNUSED(con), ID **id_pointer, static void library_foreach_constraintObjectLooper(bConstraint *UNUSED(con), ID **id_pointer,
@@ -136,7 +136,6 @@ static void library_foreach_animationData(LibraryForeachIDData *data, AnimData *
} }
} }
static void library_foreach_mtex(LibraryForeachIDData *data, MTex *mtex) static void library_foreach_mtex(LibraryForeachIDData *data, MTex *mtex)
{ {
FOREACH_CALLBACK_INVOKE(data->self_id, mtex->object, data->flag, data->callback, data->user_data, IDWALK_NOP); FOREACH_CALLBACK_INVOKE(data->self_id, mtex->object, data->flag, data->callback, data->user_data, IDWALK_NOP);

View File

@@ -215,8 +215,7 @@ void modifiers_clearErrors(Object *ob)
} }
} }
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk, void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk, void *userData)
void *userData)
{ {
ModifierData *md = ob->modifiers.first; ModifierData *md = ob->modifiers.first;

View File

@@ -467,7 +467,7 @@ void BKE_object_free(Object *ob)
BKE_object_free_ex(ob, true); BKE_object_free_ex(ob, true);
} }
static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin) static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin, int UNUSED(cd_flag))
{ {
Object *unlinkOb = userData; Object *unlinkOb = userData;
@@ -1574,8 +1574,7 @@ Object *BKE_object_copy(Object *ob)
} }
static void extern_local_object__modifiersForeachIDLink( static void extern_local_object__modifiersForeachIDLink(
void *UNUSED(userData), Object *UNUSED(ob), void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
ID **idpoin)
{ {
if (*idpoin) { if (*idpoin) {
/* intentionally omit ID_OB */ /* intentionally omit ID_OB */

View File

@@ -124,6 +124,7 @@
#include "BKE_global.h" // for G #include "BKE_global.h" // for G
#include "BKE_group.h" #include "BKE_group.h"
#include "BKE_library.h" // for which_libbase #include "BKE_library.h" // for which_libbase
#include "BKE_library_query.h"
#include "BKE_idcode.h" #include "BKE_idcode.h"
#include "BKE_material.h" #include "BKE_material.h"
#include "BKE_main.h" // for Main #include "BKE_main.h" // for Main
@@ -4589,15 +4590,15 @@ static void direct_link_latt(FileData *fd, Lattice *lt)
/* ************ READ OBJECT ***************** */ /* ************ READ OBJECT ***************** */
static void lib_link_modifiers__linkModifiers(void *userData, Object *ob, static void lib_link_modifiers__linkModifiers(
ID **idpoin) void *userData, Object *ob, ID **idpoin, int cd_flag)
{ {
FileData *fd = userData; FileData *fd = userData;
*idpoin = newlibadr(fd, ob->id.lib, *idpoin); *idpoin = newlibadr(fd, ob->id.lib, *idpoin);
/* hardcoded bad exception; non-object modifier data gets user count (texture, displace) */ if (cd_flag & IDWALK_USER) {
if (*idpoin && GS((*idpoin)->name)!=ID_OB)
(*idpoin)->us++; (*idpoin)->us++;
}
} }
static void lib_link_modifiers(FileData *fd, Object *ob) static void lib_link_modifiers(FileData *fd, Object *ob)
{ {
@@ -8999,8 +9000,8 @@ static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
#endif #endif
} }
static void expand_object_expandModifiers(void *userData, Object *UNUSED(ob), static void expand_object_expandModifiers(
ID **idpoin) void *userData, Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
{ {
struct { FileData *fd; Main *mainvar; } *data= userData; struct { FileData *fd; Main *mainvar; } *data= userData;

View File

@@ -45,6 +45,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_lattice.h" #include "BKE_lattice.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "MEM_guardedalloc.h" #include "MEM_guardedalloc.h"
@@ -95,7 +96,7 @@ static void foreachObjectLink(
{ {
ArmatureModifierData *amd = (ArmatureModifierData *) md; ArmatureModifierData *amd = (ArmatureModifierData *) md;
walk(userData, ob, &amd->object); walk(userData, ob, &amd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -48,6 +48,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_displist.h" #include "BKE_displist.h"
#include "BKE_curve.h" #include "BKE_curve.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "MOD_util.h" #include "MOD_util.h"
@@ -94,10 +95,10 @@ static void foreachObjectLink(
{ {
ArrayModifierData *amd = (ArrayModifierData *) md; ArrayModifierData *amd = (ArrayModifierData *) md;
walk(userData, ob, &amd->start_cap); walk(userData, ob, &amd->start_cap, IDWALK_NOP);
walk(userData, ob, &amd->end_cap); walk(userData, ob, &amd->end_cap, IDWALK_NOP);
walk(userData, ob, &amd->curve_ob); walk(userData, ob, &amd->curve_ob, IDWALK_NOP);
walk(userData, ob, &amd->offset_ob); walk(userData, ob, &amd->offset_ob, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -40,6 +40,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
@@ -69,7 +70,7 @@ static void foreachObjectLink(
{ {
BooleanModifierData *bmd = (BooleanModifierData *) md; BooleanModifierData *bmd = (BooleanModifierData *) md;
walk(userData, ob, &bmd->object); walk(userData, ob, &bmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -42,6 +42,7 @@
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_DerivedMesh.h" #include "BKE_DerivedMesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
@@ -101,7 +102,7 @@ static void foreachObjectLink(
{ {
CastModifierData *cmd = (CastModifierData *) md; CastModifierData *cmd = (CastModifierData *) md;
walk(userData, ob, &cmd->object); walk(userData, ob, &cmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -49,6 +49,7 @@
#include "BKE_effect.h" #include "BKE_effect.h"
#include "BKE_global.h" #include "BKE_global.h"
#include "BKE_key.h" #include "BKE_key.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_pointcache.h" #include "BKE_pointcache.h"
@@ -241,11 +242,11 @@ static void foreachIDLink(ModifierData *md, Object *ob,
ClothModifierData *clmd = (ClothModifierData *) md; ClothModifierData *clmd = (ClothModifierData *) md;
if (clmd->coll_parms) { if (clmd->coll_parms) {
walk(userData, ob, (ID **)&clmd->coll_parms->group); walk(userData, ob, (ID **)&clmd->coll_parms->group, IDWALK_NOP);
} }
if (clmd->sim_parms && clmd->sim_parms->effector_weights) { if (clmd->sim_parms && clmd->sim_parms->effector_weights) {
walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group); walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group, IDWALK_NOP);
} }
} }

View File

@@ -42,6 +42,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_lattice.h" #include "BKE_lattice.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
@@ -88,7 +89,7 @@ static void foreachObjectLink(
{ {
CurveModifierData *cmd = (CurveModifierData *) md; CurveModifierData *cmd = (CurveModifierData *) md;
walk(userData, ob, &cmd->object); walk(userData, ob, &cmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -41,6 +41,7 @@
#include "BKE_data_transfer.h" #include "BKE_data_transfer.h"
#include "BKE_DerivedMesh.h" #include "BKE_DerivedMesh.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_mesh_mapping.h" #include "BKE_mesh_mapping.h"
#include "BKE_mesh_remap.h" #include "BKE_mesh_remap.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
@@ -123,7 +124,7 @@ static void foreachObjectLink(
ObjectWalkFunc walk, void *userData) ObjectWalkFunc walk, void *userData)
{ {
DataTransferModifierData *dtmd = (DataTransferModifierData *) md; DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
walk(userData, ob, &dtmd->ob_source); walk(userData, ob, &dtmd->ob_source, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -41,6 +41,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_mesh.h" #include "BKE_mesh.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_texture.h" #include "BKE_texture.h"
@@ -129,7 +130,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
{ {
DisplaceModifierData *dmd = (DisplaceModifierData *) md; DisplaceModifierData *dmd = (DisplaceModifierData *) md;
walk(userData, ob, &dmd->map_object); walk(userData, ob, &dmd->map_object, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, static void foreachIDLink(ModifierData *md, Object *ob,
@@ -137,7 +138,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
{ {
DisplaceModifierData *dmd = (DisplaceModifierData *) md; DisplaceModifierData *dmd = (DisplaceModifierData *) md;
walk(userData, ob, (ID **)&dmd->texture); walk(userData, ob, (ID **)&dmd->texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -35,6 +35,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_dynamicpaint.h" #include "BKE_dynamicpaint.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
@@ -170,12 +171,12 @@ static void foreachIDLink(ModifierData *md, Object *ob,
DynamicPaintSurface *surface = pmd->canvas->surfaces.first; DynamicPaintSurface *surface = pmd->canvas->surfaces.first;
for (; surface; surface = surface->next) { for (; surface; surface = surface->next) {
walk(userData, ob, (ID **)&surface->brush_group); walk(userData, ob, (ID **)&surface->brush_group, IDWALK_NOP);
walk(userData, ob, (ID **)&surface->init_texture); walk(userData, ob, (ID **)&surface->init_texture, IDWALK_USER);
} }
} }
if (pmd->brush) { if (pmd->brush) {
walk(userData, ob, (ID **)&pmd->brush->mat); walk(userData, ob, (ID **)&pmd->brush->mat, IDWALK_USER);
} }
} }

View File

@@ -41,6 +41,7 @@
#include "BKE_action.h" #include "BKE_action.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_colortools.h" #include "BKE_colortools.h"
@@ -107,7 +108,7 @@ static void foreachObjectLink(
{ {
HookModifierData *hmd = (HookModifierData *) md; HookModifierData *hmd = (HookModifierData *) md;
walk(userData, ob, &hmd->object); walk(userData, ob, &hmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -41,6 +41,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_lattice.h" #include "BKE_lattice.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
@@ -87,7 +88,7 @@ static void foreachObjectLink(
{ {
LatticeModifierData *lmd = (LatticeModifierData *) md; LatticeModifierData *lmd = (LatticeModifierData *) md;
walk(userData, ob, &lmd->object); walk(userData, ob, &lmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -46,6 +46,7 @@
#include "BKE_action.h" /* BKE_pose_channel_find_name */ #include "BKE_action.h" /* BKE_pose_channel_find_name */
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
@@ -73,7 +74,7 @@ static void foreachObjectLink(
ObjectWalkFunc walk, void *userData) ObjectWalkFunc walk, void *userData)
{ {
MaskModifierData *mmd = (MaskModifierData *)md; MaskModifierData *mmd = (MaskModifierData *)md;
walk(userData, ob, &mmd->ob_arm); walk(userData, ob, &mmd->ob_arm, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -42,6 +42,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_global.h" #include "BKE_global.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_editmesh.h" #include "BKE_editmesh.h"
@@ -118,7 +119,7 @@ static void foreachObjectLink(
{ {
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md; MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
walk(userData, ob, &mmd->object); walk(userData, ob, &mmd->object, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -39,6 +39,7 @@
#include "BLI_math.h" #include "BLI_math.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
@@ -71,7 +72,7 @@ static void foreachObjectLink(
{ {
MirrorModifierData *mmd = (MirrorModifierData *) md; MirrorModifierData *mmd = (MirrorModifierData *) md;
walk(userData, ob, &mmd->mirror_ob); walk(userData, ob, &mmd->mirror_ob, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -38,6 +38,7 @@
#include "BLI_bitmap.h" #include "BLI_bitmap.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_mesh.h" #include "BKE_mesh.h"
#include "BKE_deform.h" #include "BKE_deform.h"
@@ -450,7 +451,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
{ {
NormalEditModifierData *smd = (NormalEditModifierData *) md; NormalEditModifierData *smd = (NormalEditModifierData *) md;
walk(userData, ob, &smd->target); walk(userData, ob, &smd->target, IDWALK_NOP);
} }
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams)) static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@@ -46,6 +46,7 @@
#include "BKE_effect.h" #include "BKE_effect.h"
#include "BKE_global.h" #include "BKE_global.h"
#include "BKE_lattice.h" #include "BKE_lattice.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_particle.h" #include "BKE_particle.h"
#include "BKE_pointcache.h" #include "BKE_pointcache.h"
@@ -144,7 +145,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
{ {
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md; ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
walk(userData, ob, &pimd->ob); walk(userData, ob, &pimd->ob, IDWALK_NOP);
} }
static int particle_skip(ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p) static int particle_skip(ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p)

View File

@@ -44,6 +44,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
#include "DEG_depsgraph_build.h" #include "DEG_depsgraph_build.h"
@@ -1094,7 +1095,7 @@ static void foreachObjectLink(
{ {
ScrewModifierData *ltmd = (ScrewModifierData *) md; ScrewModifierData *ltmd = (ScrewModifierData *) md;
walk(userData, ob, &ltmd->ob_axis); walk(userData, ob, &ltmd->ob_axis, IDWALK_NOP);
} }
ModifierTypeInfo modifierType_Screw = { ModifierTypeInfo modifierType_Screw = {

View File

@@ -41,6 +41,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_shrinkwrap.h" #include "BKE_shrinkwrap.h"
@@ -100,8 +101,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
{ {
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *) md; ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *) md;
walk(userData, ob, &smd->target); walk(userData, ob, &smd->target, IDWALK_NOP);
walk(userData, ob, &smd->auxTarget); walk(userData, ob, &smd->auxTarget, IDWALK_NOP);
} }
static void deformVerts(ModifierData *md, Object *ob, static void deformVerts(ModifierData *md, Object *ob,

View File

@@ -40,6 +40,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
@@ -284,7 +285,7 @@ static void foreachObjectLink(
ObjectWalkFunc walk, void *userData) ObjectWalkFunc walk, void *userData)
{ {
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md; SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
walk(userData, ob, &smd->origin); walk(userData, ob, &smd->origin, IDWALK_NOP);
} }
static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepgraph(ModifierData *md, DagForest *forest,

View File

@@ -48,6 +48,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_main.h" #include "BKE_main.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_smoke.h" #include "BKE_smoke.h"
@@ -339,17 +340,17 @@ static void foreachIDLink(ModifierData *md, Object *ob,
SmokeModifierData *smd = (SmokeModifierData *) md; SmokeModifierData *smd = (SmokeModifierData *) md;
if (smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) { if (smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) {
walk(userData, ob, (ID **)&smd->domain->coll_group); walk(userData, ob, (ID **)&smd->domain->coll_group, IDWALK_NOP);
walk(userData, ob, (ID **)&smd->domain->fluid_group); walk(userData, ob, (ID **)&smd->domain->fluid_group, IDWALK_NOP);
walk(userData, ob, (ID **)&smd->domain->eff_group); walk(userData, ob, (ID **)&smd->domain->eff_group, IDWALK_NOP);
if (smd->domain->effector_weights) { if (smd->domain->effector_weights) {
walk(userData, ob, (ID **)&smd->domain->effector_weights->group); walk(userData, ob, (ID **)&smd->domain->effector_weights->group, IDWALK_NOP);
} }
} }
if (smd->type == MOD_SMOKE_TYPE_FLOW && smd->flow) { if (smd->type == MOD_SMOKE_TYPE_FLOW && smd->flow) {
walk(userData, ob, (ID **)&smd->flow->noise_texture); walk(userData, ob, (ID **)&smd->flow->noise_texture, IDWALK_USER);
} }
} }

View File

@@ -45,6 +45,7 @@
#include "BKE_camera.h" #include "BKE_camera.h"
#include "BKE_library_query.h"
#include "BKE_mesh.h" #include "BKE_mesh.h"
#include "BKE_DerivedMesh.h" #include "BKE_DerivedMesh.h"
@@ -91,7 +92,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
int i; int i;
for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i) for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
walk(userData, ob, &umd->projectors[i]); walk(userData, ob, &umd->projectors[i], IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, static void foreachIDLink(ModifierData *md, Object *ob,
@@ -99,7 +100,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
{ {
UVProjectModifierData *umd = (UVProjectModifierData *) md; UVProjectModifierData *umd = (UVProjectModifierData *) md;
walk(userData, ob, (ID **)&umd->image); walk(userData, ob, (ID **)&umd->image, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -36,6 +36,7 @@
#include "BKE_action.h" /* BKE_pose_channel_find_name */ #include "BKE_action.h" /* BKE_pose_channel_find_name */
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "depsgraph_private.h" #include "depsgraph_private.h"
@@ -200,8 +201,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
{ {
UVWarpModifierData *umd = (UVWarpModifierData *) md; UVWarpModifierData *umd = (UVWarpModifierData *) md;
walk(userData, ob, &umd->object_dst); walk(userData, ob, &umd->object_dst, IDWALK_NOP);
walk(userData, ob, &umd->object_src); walk(userData, ob, &umd->object_src, IDWALK_NOP);
} }
static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode, static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode,

View File

@@ -36,6 +36,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_texture.h" #include "BKE_texture.h"
@@ -115,16 +116,16 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
{ {
WarpModifierData *wmd = (WarpModifierData *) md; WarpModifierData *wmd = (WarpModifierData *) md;
walk(userData, ob, &wmd->object_from); walk(userData, ob, &wmd->object_from, IDWALK_NOP);
walk(userData, ob, &wmd->object_to); walk(userData, ob, &wmd->object_to, IDWALK_NOP);
walk(userData, ob, &wmd->map_object); walk(userData, ob, &wmd->map_object, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{ {
WarpModifierData *wmd = (WarpModifierData *) md; WarpModifierData *wmd = (WarpModifierData *) md;
walk(userData, ob, (ID **)&wmd->texture); walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -45,6 +45,7 @@
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_DerivedMesh.h" #include "BKE_DerivedMesh.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_scene.h" #include "BKE_scene.h"
#include "BKE_texture.h" #include "BKE_texture.h"
@@ -110,8 +111,8 @@ static void foreachObjectLink(
{ {
WaveModifierData *wmd = (WaveModifierData *) md; WaveModifierData *wmd = (WaveModifierData *) md;
walk(userData, ob, &wmd->objectcenter); walk(userData, ob, &wmd->objectcenter, IDWALK_NOP);
walk(userData, ob, &wmd->map_object); walk(userData, ob, &wmd->map_object, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, static void foreachIDLink(ModifierData *md, Object *ob,
@@ -119,7 +120,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
{ {
WaveModifierData *wmd = (WaveModifierData *) md; WaveModifierData *wmd = (WaveModifierData *) md;
walk(userData, ob, (ID **)&wmd->texture); walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -42,6 +42,7 @@
#include "BKE_colortools.h" /* CurveMapping. */ #include "BKE_colortools.h" /* CurveMapping. */
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_texture.h" /* Texture masking. */ #include "BKE_texture.h" /* Texture masking. */
@@ -125,14 +126,14 @@ static bool dependsOnTime(ModifierData *md)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{ {
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md; WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
walk(userData, ob, &wmd->mask_tex_map_obj); walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{ {
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md; WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
walk(userData, ob, (ID **)&wmd->mask_texture); walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -39,6 +39,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_texture.h" /* Texture masking. */ #include "BKE_texture.h" /* Texture masking. */
@@ -174,14 +175,14 @@ static bool dependsOnTime(ModifierData *md)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{ {
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md; WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
walk(userData, ob, &wmd->mask_tex_map_obj); walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{ {
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md; WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
walk(userData, ob, (ID **)&wmd->mask_texture); walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }

View File

@@ -42,6 +42,7 @@
#include "BKE_cdderivedmesh.h" #include "BKE_cdderivedmesh.h"
#include "BKE_deform.h" #include "BKE_deform.h"
#include "BKE_library.h" #include "BKE_library.h"
#include "BKE_library_query.h"
#include "BKE_modifier.h" #include "BKE_modifier.h"
#include "BKE_texture.h" /* Texture masking. */ #include "BKE_texture.h" /* Texture masking. */
@@ -290,15 +291,15 @@ static bool dependsOnTime(ModifierData *md)
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
{ {
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md; WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
walk(userData, ob, &wmd->proximity_ob_target); walk(userData, ob, &wmd->proximity_ob_target, IDWALK_NOP);
walk(userData, ob, &wmd->mask_tex_map_obj); walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
} }
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{ {
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md; WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
walk(userData, ob, (ID **)&wmd->mask_texture); walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
} }