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:
parent
fb5328d59f
commit
f375028a25
|
@ -105,8 +105,8 @@ typedef enum {
|
|||
} 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 (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin, int cd_flag);
|
||||
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 enum ModifierApplyFlag {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -103,11 +103,11 @@ typedef struct LibraryForeachIDData {
|
|||
void *user_data;
|
||||
} LibraryForeachIDData;
|
||||
|
||||
static void library_foreach_modifiersForeachIDLink(void *user_data, Object *UNUSED(object),
|
||||
ID **id_pointer)
|
||||
static void library_foreach_modifiersForeachIDLink(
|
||||
void *user_data, Object *UNUSED(object), ID **id_pointer, int cd_flag)
|
||||
{
|
||||
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,
|
||||
|
@ -136,7 +136,6 @@ static void library_foreach_animationData(LibraryForeachIDData *data, AnimData *
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
|
|
@ -215,8 +215,7 @@ void modifiers_clearErrors(Object *ob)
|
|||
}
|
||||
}
|
||||
|
||||
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk,
|
||||
void *userData)
|
||||
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
ModifierData *md = ob->modifiers.first;
|
||||
|
||||
|
|
|
@ -467,7 +467,7 @@ void BKE_object_free(Object *ob)
|
|||
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;
|
||||
|
||||
|
@ -1574,8 +1574,7 @@ Object *BKE_object_copy(Object *ob)
|
|||
}
|
||||
|
||||
static void extern_local_object__modifiersForeachIDLink(
|
||||
void *UNUSED(userData), Object *UNUSED(ob),
|
||||
ID **idpoin)
|
||||
void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
|
||||
{
|
||||
if (*idpoin) {
|
||||
/* intentionally omit ID_OB */
|
||||
|
|
|
@ -124,6 +124,7 @@
|
|||
#include "BKE_global.h" // for G
|
||||
#include "BKE_group.h"
|
||||
#include "BKE_library.h" // for which_libbase
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_idcode.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_main.h" // for Main
|
||||
|
@ -4589,15 +4590,15 @@ static void direct_link_latt(FileData *fd, Lattice *lt)
|
|||
|
||||
/* ************ READ OBJECT ***************** */
|
||||
|
||||
static void lib_link_modifiers__linkModifiers(void *userData, Object *ob,
|
||||
ID **idpoin)
|
||||
static void lib_link_modifiers__linkModifiers(
|
||||
void *userData, Object *ob, ID **idpoin, int cd_flag)
|
||||
{
|
||||
FileData *fd = userData;
|
||||
|
||||
*idpoin = newlibadr(fd, ob->id.lib, *idpoin);
|
||||
/* hardcoded bad exception; non-object modifier data gets user count (texture, displace) */
|
||||
if (*idpoin && GS((*idpoin)->name)!=ID_OB)
|
||||
if (cd_flag & IDWALK_USER) {
|
||||
(*idpoin)->us++;
|
||||
}
|
||||
}
|
||||
static void lib_link_modifiers(FileData *fd, Object *ob)
|
||||
{
|
||||
|
@ -8999,8 +9000,8 @@ static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
|
|||
#endif
|
||||
}
|
||||
|
||||
static void expand_object_expandModifiers(void *userData, Object *UNUSED(ob),
|
||||
ID **idpoin)
|
||||
static void expand_object_expandModifiers(
|
||||
void *userData, Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
|
||||
{
|
||||
struct { FileData *fd; Main *mainvar; } *data= userData;
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
@ -95,7 +96,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
ArmatureModifierData *amd = (ArmatureModifierData *) md;
|
||||
|
||||
walk(userData, ob, &amd->object);
|
||||
walk(userData, ob, &amd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "MOD_util.h"
|
||||
|
@ -94,10 +95,10 @@ static void foreachObjectLink(
|
|||
{
|
||||
ArrayModifierData *amd = (ArrayModifierData *) md;
|
||||
|
||||
walk(userData, ob, &amd->start_cap);
|
||||
walk(userData, ob, &amd->end_cap);
|
||||
walk(userData, ob, &amd->curve_ob);
|
||||
walk(userData, ob, &amd->offset_ob);
|
||||
walk(userData, ob, &amd->start_cap, IDWALK_NOP);
|
||||
walk(userData, ob, &amd->end_cap, IDWALK_NOP);
|
||||
walk(userData, ob, &amd->curve_ob, IDWALK_NOP);
|
||||
walk(userData, ob, &amd->offset_ob, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
|
@ -69,7 +70,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
BooleanModifierData *bmd = (BooleanModifierData *) md;
|
||||
|
||||
walk(userData, ob, &bmd->object);
|
||||
walk(userData, ob, &bmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
|
||||
|
@ -101,7 +102,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
CastModifierData *cmd = (CastModifierData *) md;
|
||||
|
||||
walk(userData, ob, &cmd->object);
|
||||
walk(userData, ob, &cmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "BKE_effect.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_pointcache.h"
|
||||
|
||||
|
@ -241,11 +242,11 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
ClothModifierData *clmd = (ClothModifierData *) md;
|
||||
|
||||
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) {
|
||||
walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group);
|
||||
walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group, IDWALK_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
|
@ -88,7 +89,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
CurveModifierData *cmd = (CurveModifierData *) md;
|
||||
|
||||
walk(userData, ob, &cmd->object);
|
||||
walk(userData, ob, &cmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "BKE_data_transfer.h"
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_mesh_mapping.h"
|
||||
#include "BKE_mesh_remap.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
@ -123,7 +124,7 @@ static void foreachObjectLink(
|
|||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
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,
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_texture.h"
|
||||
|
@ -129,7 +130,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||
{
|
||||
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,
|
||||
|
@ -137,7 +138,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
{
|
||||
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
||||
|
||||
walk(userData, ob, (ID **)&dmd->texture);
|
||||
walk(userData, ob, (ID **)&dmd->texture, IDWALK_USER);
|
||||
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_dynamicpaint.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
|
@ -170,12 +171,12 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
DynamicPaintSurface *surface = pmd->canvas->surfaces.first;
|
||||
|
||||
for (; surface; surface = surface->next) {
|
||||
walk(userData, ob, (ID **)&surface->brush_group);
|
||||
walk(userData, ob, (ID **)&surface->init_texture);
|
||||
walk(userData, ob, (ID **)&surface->brush_group, IDWALK_NOP);
|
||||
walk(userData, ob, (ID **)&surface->init_texture, IDWALK_USER);
|
||||
}
|
||||
}
|
||||
if (pmd->brush) {
|
||||
walk(userData, ob, (ID **)&pmd->brush->mat);
|
||||
walk(userData, ob, (ID **)&pmd->brush->mat, IDWALK_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_colortools.h"
|
||||
|
@ -107,7 +108,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
HookModifierData *hmd = (HookModifierData *) md;
|
||||
|
||||
walk(userData, ob, &hmd->object);
|
||||
walk(userData, ob, &hmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
|
@ -87,7 +88,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
LatticeModifierData *lmd = (LatticeModifierData *) md;
|
||||
|
||||
walk(userData, ob, &lmd->object);
|
||||
walk(userData, ob, &lmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
|
||||
|
@ -73,7 +74,7 @@ static void foreachObjectLink(
|
|||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
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,
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_editmesh.h"
|
||||
|
@ -118,7 +119,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
|
||||
|
||||
walk(userData, ob, &mmd->object);
|
||||
walk(userData, ob, &mmd->object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "BLI_math.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
|
||||
|
@ -71,7 +72,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
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,
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "BLI_bitmap.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_deform.h"
|
||||
|
||||
|
@ -450,7 +451,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||
{
|
||||
NormalEditModifierData *smd = (NormalEditModifierData *) md;
|
||||
|
||||
walk(userData, ob, &smd->target);
|
||||
walk(userData, ob, &smd->target, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include "BKE_effect.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_particle.h"
|
||||
#include "BKE_pointcache.h"
|
||||
|
@ -144,7 +145,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||
{
|
||||
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)
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
#include "DEG_depsgraph_build.h"
|
||||
|
@ -1094,7 +1095,7 @@ static void foreachObjectLink(
|
|||
{
|
||||
ScrewModifierData *ltmd = (ScrewModifierData *) md;
|
||||
|
||||
walk(userData, ob, <md->ob_axis);
|
||||
walk(userData, ob, <md->ob_axis, IDWALK_NOP);
|
||||
}
|
||||
|
||||
ModifierTypeInfo modifierType_Screw = {
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_shrinkwrap.h"
|
||||
|
||||
|
@ -100,8 +101,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||
{
|
||||
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *) md;
|
||||
|
||||
walk(userData, ob, &smd->target);
|
||||
walk(userData, ob, &smd->auxTarget);
|
||||
walk(userData, ob, &smd->target, IDWALK_NOP);
|
||||
walk(userData, ob, &smd->auxTarget, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
|
||||
|
@ -284,7 +285,7 @@ static void foreachObjectLink(
|
|||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
|
||||
walk(userData, ob, &smd->origin);
|
||||
walk(userData, ob, &smd->origin, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_smoke.h"
|
||||
|
@ -339,17 +340,17 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||
|
||||
if (smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) {
|
||||
walk(userData, ob, (ID **)&smd->domain->coll_group);
|
||||
walk(userData, ob, (ID **)&smd->domain->fluid_group);
|
||||
walk(userData, ob, (ID **)&smd->domain->eff_group);
|
||||
walk(userData, ob, (ID **)&smd->domain->coll_group, IDWALK_NOP);
|
||||
walk(userData, ob, (ID **)&smd->domain->fluid_group, IDWALK_NOP);
|
||||
walk(userData, ob, (ID **)&smd->domain->eff_group, IDWALK_NOP);
|
||||
|
||||
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) {
|
||||
walk(userData, ob, (ID **)&smd->flow->noise_texture);
|
||||
walk(userData, ob, (ID **)&smd->flow->noise_texture, IDWALK_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
|
||||
|
||||
#include "BKE_camera.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_DerivedMesh.h"
|
||||
|
||||
|
@ -91,7 +92,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||
int 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,
|
||||
|
@ -99,7 +100,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
{
|
||||
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
||||
|
||||
walk(userData, ob, (ID **)&umd->image);
|
||||
walk(userData, ob, (ID **)&umd->image, IDWALK_USER);
|
||||
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
|
@ -200,8 +201,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||
{
|
||||
UVWarpModifierData *umd = (UVWarpModifierData *) md;
|
||||
|
||||
walk(userData, ob, &umd->object_dst);
|
||||
walk(userData, ob, &umd->object_src);
|
||||
walk(userData, ob, &umd->object_dst, IDWALK_NOP);
|
||||
walk(userData, ob, &umd->object_src, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode,
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_texture.h"
|
||||
|
@ -115,16 +116,16 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||
{
|
||||
WarpModifierData *wmd = (WarpModifierData *) md;
|
||||
|
||||
walk(userData, ob, &wmd->object_from);
|
||||
walk(userData, ob, &wmd->object_to);
|
||||
walk(userData, ob, &wmd->map_object);
|
||||
walk(userData, ob, &wmd->object_from, IDWALK_NOP);
|
||||
walk(userData, ob, &wmd->object_to, IDWALK_NOP);
|
||||
walk(userData, ob, &wmd->map_object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||
{
|
||||
WarpModifierData *wmd = (WarpModifierData *) md;
|
||||
|
||||
walk(userData, ob, (ID **)&wmd->texture);
|
||||
walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
|
||||
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include "BKE_deform.h"
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_scene.h"
|
||||
#include "BKE_texture.h"
|
||||
|
||||
|
@ -110,8 +111,8 @@ static void foreachObjectLink(
|
|||
{
|
||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||
|
||||
walk(userData, ob, &wmd->objectcenter);
|
||||
walk(userData, ob, &wmd->map_object);
|
||||
walk(userData, ob, &wmd->objectcenter, IDWALK_NOP);
|
||||
walk(userData, ob, &wmd->map_object, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
|
@ -119,7 +120,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||
{
|
||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||
|
||||
walk(userData, ob, (ID **)&wmd->texture);
|
||||
walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
|
||||
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "BKE_colortools.h" /* CurveMapping. */
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#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)
|
||||
{
|
||||
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
||||
walk(userData, ob, &wmd->proximity_ob_target);
|
||||
walk(userData, ob, &wmd->mask_tex_map_obj);
|
||||
walk(userData, ob, &wmd->proximity_ob_target, IDWALK_NOP);
|
||||
walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue