Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-10-08 12:09:30 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-10-08 12:14:15 +0300
commit5eb500f2fce12f0b9a042480d0d4bf5000907726 (patch)
tree788928f995fc3d37be6dc0b60f209be3ddd8874f /source/blender/blenkernel/intern/library_query.c
parent8702dff2b9738556b41d4f03b9731e8f52625030 (diff)
Add USER flags to BKE_library_foreach_ID_link
This way callbacks can know if adjusting user-count is needed.
Diffstat (limited to 'source/blender/blenkernel/intern/library_query.c')
-rw-r--r--source/blender/blenkernel/intern/library_query.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index 3ba53fa3f99..4e78c7b5049 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -139,7 +139,7 @@ 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);
- FOREACH_CALLBACK_INVOKE(data->self_id, mtex->tex, data->flag, data->callback, data->user_data, IDWALK_NOP);
+ FOREACH_CALLBACK_INVOKE(data->self_id, mtex->tex, data->flag, data->callback, data->user_data, IDWALK_USER);
}
@@ -178,7 +178,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
Base *base;
CALLBACK_INVOKE(scene->camera, IDWALK_NOP);
- CALLBACK_INVOKE(scene->world, IDWALK_NOP);
+ CALLBACK_INVOKE(scene->world, IDWALK_USER);
CALLBACK_INVOKE(scene->set, IDWALK_NOP);
if (scene->basact) {
CALLBACK_INVOKE(scene->basact->object, IDWALK_NOP);
@@ -190,10 +190,10 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
FreestyleLineSet *fls;
if (srl->mat_override) {
- CALLBACK_INVOKE(srl->mat_override, IDWALK_NOP);
+ CALLBACK_INVOKE(srl->mat_override, IDWALK_USER);
}
if (srl->light_override) {
- CALLBACK_INVOKE(srl->light_override, IDWALK_NOP);
+ CALLBACK_INVOKE(srl->light_override, IDWALK_USER);
}
for (fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {
if (fmc->script) {
@@ -202,10 +202,10 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
}
for (fls = srl->freestyleConfig.linesets.first; fls; fls = fls->next) {
if (fls->group) {
- CALLBACK_INVOKE(fls->group, IDWALK_NOP);
+ CALLBACK_INVOKE(fls->group, IDWALK_USER);
}
if (fls->linestyle) {
- CALLBACK_INVOKE(fls->linestyle, IDWALK_NOP);
+ CALLBACK_INVOKE(fls->linestyle, IDWALK_USER);
}
}
}
@@ -216,16 +216,16 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
{
CALLBACK_INVOKE(seq->scene, IDWALK_NOP);
CALLBACK_INVOKE(seq->scene_camera, IDWALK_NOP);
- CALLBACK_INVOKE(seq->clip, IDWALK_NOP);
- CALLBACK_INVOKE(seq->mask, IDWALK_NOP);
+ CALLBACK_INVOKE(seq->clip, IDWALK_USER);
+ CALLBACK_INVOKE(seq->mask, IDWALK_USER);
}
SEQ_END
}
- CALLBACK_INVOKE(scene->gpd, IDWALK_NOP);
+ CALLBACK_INVOKE(scene->gpd, IDWALK_USER);
for (base = scene->base.first; base; base = base->next) {
- CALLBACK_INVOKE(base->object, IDWALK_NOP);
+ CALLBACK_INVOKE(base->object, IDWALK_USER);
}
break;
}
@@ -237,26 +237,26 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
/* object data special case */
if (object->type == OB_EMPTY) {
/* empty can have NULL or Image */
- CALLBACK_INVOKE_ID(object->data, IDWALK_NOP);
+ CALLBACK_INVOKE_ID(object->data, IDWALK_USER);
}
else {
/* when set, this can't be NULL */
if (object->data) {
- CALLBACK_INVOKE_ID(object->data, IDWALK_NEVER_NULL);
+ CALLBACK_INVOKE_ID(object->data, IDWALK_USER | IDWALK_NEVER_NULL);
}
}
CALLBACK_INVOKE(object->parent, IDWALK_NOP);
CALLBACK_INVOKE(object->track, IDWALK_NOP);
- CALLBACK_INVOKE(object->proxy, IDWALK_NOP);
+ CALLBACK_INVOKE(object->proxy, IDWALK_USER);
CALLBACK_INVOKE(object->proxy_group, IDWALK_NOP);
CALLBACK_INVOKE(object->proxy_from, IDWALK_NOP);
- CALLBACK_INVOKE(object->poselib, IDWALK_NOP);
+ CALLBACK_INVOKE(object->poselib, IDWALK_USER);
for (i = 0; i < object->totcol; i++) {
- CALLBACK_INVOKE(object->mat[i], IDWALK_NOP);
+ CALLBACK_INVOKE(object->mat[i], IDWALK_USER);
}
- CALLBACK_INVOKE(object->gpd, IDWALK_NOP);
- CALLBACK_INVOKE(object->dup_group, IDWALK_NOP);
+ CALLBACK_INVOKE(object->gpd, IDWALK_USER);
+ CALLBACK_INVOKE(object->dup_group, IDWALK_USER);
if (object->particlesystem.first) {
ParticleSystem *psys;
@@ -267,14 +267,14 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
}
if (object->pd) {
- CALLBACK_INVOKE(object->pd->tex, IDWALK_NOP);
+ CALLBACK_INVOKE(object->pd->tex, IDWALK_USER);
CALLBACK_INVOKE(object->pd->f_source, IDWALK_NOP);
}
if (object->pose) {
bPoseChannel *pchan;
for (pchan = object->pose->chanbase.first; pchan; pchan = pchan->next) {
- CALLBACK_INVOKE(pchan->custom, IDWALK_NOP);
+ CALLBACK_INVOKE(pchan->custom, IDWALK_USER);
BKE_constraints_id_loop(&pchan->constraints, library_foreach_constraintObjectLooper, &data);
}
}
@@ -299,10 +299,10 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
case ID_ME:
{
Mesh *mesh = (Mesh *) id;
- CALLBACK_INVOKE(mesh->texcomesh, IDWALK_NOP);
- CALLBACK_INVOKE(mesh->key, IDWALK_NOP);
+ CALLBACK_INVOKE(mesh->texcomesh, IDWALK_USER);
+ CALLBACK_INVOKE(mesh->key, IDWALK_USER);
for (i = 0; i < mesh->totcol; i++) {
- CALLBACK_INVOKE(mesh->mat[i], IDWALK_NOP);
+ CALLBACK_INVOKE(mesh->mat[i], IDWALK_USER);
}
break;
}
@@ -313,14 +313,14 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
CALLBACK_INVOKE(curve->bevobj, IDWALK_NOP);
CALLBACK_INVOKE(curve->taperobj, IDWALK_NOP);
CALLBACK_INVOKE(curve->textoncurve, IDWALK_NOP);
- CALLBACK_INVOKE(curve->key, IDWALK_NOP);
+ CALLBACK_INVOKE(curve->key, IDWALK_USER);
for (i = 0; i < curve->totcol; i++) {
- CALLBACK_INVOKE(curve->mat[i], IDWALK_NOP);
+ CALLBACK_INVOKE(curve->mat[i], IDWALK_USER);
}
- CALLBACK_INVOKE(curve->vfont, IDWALK_NOP);
- CALLBACK_INVOKE(curve->vfontb, IDWALK_NOP);
- CALLBACK_INVOKE(curve->vfonti, IDWALK_NOP);
- CALLBACK_INVOKE(curve->vfontbi, IDWALK_NOP);
+ CALLBACK_INVOKE(curve->vfont, IDWALK_USER);
+ CALLBACK_INVOKE(curve->vfontb, IDWALK_USER);
+ CALLBACK_INVOKE(curve->vfonti, IDWALK_USER);
+ CALLBACK_INVOKE(curve->vfontbi, IDWALK_USER);
break;
}
@@ -328,7 +328,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
{
MetaBall *metaball = (MetaBall *) id;
for (i = 0; i < metaball->totcol; i++) {
- CALLBACK_INVOKE(metaball->mat[i], IDWALK_NOP);
+ CALLBACK_INVOKE(metaball->mat[i], IDWALK_USER);
}
break;
}
@@ -342,7 +342,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
}
}
CALLBACK_INVOKE(material->nodetree, IDWALK_NOP);
- CALLBACK_INVOKE(material->group, IDWALK_NOP);
+ CALLBACK_INVOKE(material->group, IDWALK_USER);
break;
}
@@ -350,14 +350,14 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
{
Tex *texture = (Tex *) id;
CALLBACK_INVOKE(texture->nodetree, IDWALK_NOP);
- CALLBACK_INVOKE(texture->ima, IDWALK_NOP);
+ CALLBACK_INVOKE(texture->ima, IDWALK_USER);
break;
}
case ID_LT:
{
Lattice *lattice = (Lattice *) id;
- CALLBACK_INVOKE(lattice->key, IDWALK_NOP);
+ CALLBACK_INVOKE(lattice->key, IDWALK_USER);
break;
}
@@ -390,7 +390,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
case ID_SCR:
{
bScreen *screen = (bScreen *) id;
- CALLBACK_INVOKE(screen->scene, IDWALK_NOP);
+ CALLBACK_INVOKE(screen->scene, IDWALK_USER_ONE);
break;
}
@@ -409,7 +409,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
case ID_SPK:
{
Speaker *speaker = (Speaker *) id;
- CALLBACK_INVOKE(speaker->sound, IDWALK_NOP);
+ CALLBACK_INVOKE(speaker->sound, IDWALK_USER);
break;
}
@@ -428,7 +428,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
bNodeTree *ntree = (bNodeTree *) id;
bNode *node;
for (node = ntree->nodes.first; node; node = node->next) {
- CALLBACK_INVOKE_ID(node->id, IDWALK_NOP);
+ CALLBACK_INVOKE_ID(node->id, IDWALK_USER);
}
break;
}
@@ -460,13 +460,13 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
MovieTracking *tracking = &clip->tracking;
MovieTrackingObject *object;
- CALLBACK_INVOKE(clip->gpd, IDWALK_NOP);
+ CALLBACK_INVOKE(clip->gpd, IDWALK_USER);
for (object = tracking->objects.first; object; object = object->next) {
ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, object);
MovieTrackingTrack *track;
for (track = tracksbase->first; track; track = track->next) {
- CALLBACK_INVOKE(track->gpd, IDWALK_NOP);
+ CALLBACK_INVOKE(track->gpd, IDWALK_USER);
}
}
break;
@@ -482,7 +482,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
for (mask_spline = mask_layer->splines.first; mask_spline; mask_spline = mask_spline->next) {
for (i = 0; i < mask_spline->tot_point; i++) {
MaskSplinePoint *point = &mask_spline->points[i];
- CALLBACK_INVOKE_ID(point->parent.id, IDWALK_NOP);
+ CALLBACK_INVOKE_ID(point->parent.id, IDWALK_USER);
}
}
}