Cleanup: LibQuery: Rename `BKE_LIB_FOREACHID_PROCESS` to `BKE_LIB_FOREACHID_PROCESS_IDSUPER`.
More in-line name with the rest of that macro-based API, especially since this will be extended in the future.
This commit is contained in:
parent
fe68b54edb
commit
f11ed418e5
Notes:
blender-bot
2023-02-14 08:42:54 +01:00
Referenced by commit 16e1b18dd8
, Cleanup: Rename `scene.c`'s `FOREACHID_PROCESS` macro to `FOREACHID_PROCESS_IDSUPER`.
|
@ -160,7 +160,7 @@ int BKE_lib_query_foreachid_process_callback_flag_override(struct LibraryForeach
|
|||
} \
|
||||
((void)0)
|
||||
|
||||
#define BKE_LIB_FOREACHID_PROCESS(_data, _id_super, _cb_flag) \
|
||||
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag) \
|
||||
{ \
|
||||
CHECK_TYPE(&((_id_super)->id), ID *); \
|
||||
if (!BKE_lib_query_foreachid_process((_data), (ID **)&(_id_super), (_cb_flag))) { \
|
||||
|
|
|
@ -179,7 +179,7 @@ static void action_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
}
|
||||
|
||||
LISTBASE_FOREACH (TimeMarker *, marker, &act->markers) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, marker->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, marker->camera, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -297,8 +297,8 @@ void BKE_animdata_foreach_id(AnimData *adt, LibraryForeachIDData *data)
|
|||
BKE_fcurve_foreach_id(fcu, data);
|
||||
}
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, adt->action, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, adt->tmpact, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, adt->action, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, adt->tmpact, IDWALK_CB_USER);
|
||||
|
||||
LISTBASE_FOREACH (NlaTrack *, nla_track, &adt->nla_tracks) {
|
||||
LISTBASE_FOREACH (NlaStrip *, nla_strip, &nla_track->strips) {
|
||||
|
|
|
@ -207,11 +207,11 @@ static void brush_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Brush *brush = (Brush *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, brush->toggle_brush, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, brush->clone.image, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, brush->paint_curve, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, brush->toggle_brush, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, brush->clone.image, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, brush->paint_curve, IDWALK_CB_USER);
|
||||
if (brush->gpencil_settings) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, brush->gpencil_settings->material, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, brush->gpencil_settings->material, IDWALK_CB_USER);
|
||||
}
|
||||
BKE_texture_mtex_foreach_id(data, &brush->mtex);
|
||||
BKE_texture_mtex_foreach_id(data, &brush->mask_mtex);
|
||||
|
|
|
@ -103,13 +103,13 @@ static void camera_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Camera *camera = (Camera *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, camera->dof.focus_object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, camera->dof.focus_object, IDWALK_CB_NOP);
|
||||
LISTBASE_FOREACH (CameraBGImage *, bgpic, &camera->bg_images) {
|
||||
if (bgpic->source == CAM_BGIMG_SOURCE_IMAGE) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, bgpic->ima, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->ima, IDWALK_CB_USER);
|
||||
}
|
||||
else if (bgpic->source == CAM_BGIMG_SOURCE_MOVIE) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, bgpic->clip, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->clip, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,10 +158,10 @@ static void collection_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
Collection *collection = (Collection *)id;
|
||||
|
||||
LISTBASE_FOREACH (CollectionObject *, cob, &collection->gobject) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, cob->ob, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, cob->ob, IDWALK_CB_USER);
|
||||
}
|
||||
LISTBASE_FOREACH (CollectionChild *, child, &collection->children) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, child->collection, IDWALK_CB_NEVER_SELF | IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, child->collection, IDWALK_CB_NEVER_SELF | IDWALK_CB_USER);
|
||||
}
|
||||
LISTBASE_FOREACH (CollectionParent *, parent, &collection->parents) {
|
||||
/* XXX This is very weak. The whole idea of keeping pointers to private IDs is very bad
|
||||
|
@ -170,7 +170,7 @@ static void collection_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
(parent->collection->id.flag & LIB_EMBEDDED_DATA) != 0) ?
|
||||
IDWALK_CB_EMBEDDED :
|
||||
IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, parent->collection, IDWALK_CB_NEVER_SELF | IDWALK_CB_LOOPBACK | cb_flag);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -130,17 +130,17 @@ static void curve_free_data(ID *id)
|
|||
static void curve_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
Curve *curve = (Curve *)id;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->bevobj, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->taperobj, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->textoncurve, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->key, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->bevobj, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->taperobj, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->textoncurve, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->key, IDWALK_CB_USER);
|
||||
for (int i = 0; i < curve->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->vfont, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->vfontb, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->vfonti, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, curve->vfontbi, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->vfont, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->vfontb, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->vfonti, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, curve->vfontbi, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
static void curve_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
|
|
|
@ -203,7 +203,7 @@ void BKE_fcurve_foreach_id(FCurve *fcu, LibraryForeachIDData *data)
|
|||
switch (fcm->type) {
|
||||
case FMODIFIER_TYPE_PYTHON: {
|
||||
FMod_Python *fcm_py = (FMod_Python *)fcm->data;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, fcm_py->script, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, fcm_py->script, IDWALK_CB_NOP);
|
||||
|
||||
IDP_foreach_property(fcm_py->prop,
|
||||
IDP_TYPE_FILTER_ID,
|
||||
|
|
|
@ -139,11 +139,11 @@ static void greasepencil_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
bGPdata *gpencil = (bGPdata *)id;
|
||||
/* materials */
|
||||
for (int i = 0; i < gpencil->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, gpencil->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, gpencil->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (bGPDlayer *, gplayer, &gpencil->layers) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, gplayer->parent, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, gplayer->parent, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ static void hair_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Hair *hair = (Hair *)id;
|
||||
for (int i = 0; i < hair->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, hair->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, hair->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ static void lattice_free_data(ID *id)
|
|||
static void lattice_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
Lattice *lattice = (Lattice *)id;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, lattice->key, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, lattice->key, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
static void lattice_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
|
|
|
@ -227,7 +227,7 @@ static void library_foreach_ID_link(Main *bmain,
|
|||
BKE_LIB_FOREACHID_PROCESS_ID(&data, check_id, cb_flag)
|
||||
|
||||
#define CALLBACK_INVOKE(check_id_super, cb_flag) \
|
||||
BKE_LIB_FOREACHID_PROCESS(&data, check_id_super, cb_flag)
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(&data, check_id_super, cb_flag)
|
||||
|
||||
for (; id != NULL; id = (flag & IDWALK_RECURSE) ? BLI_LINKSTACK_POP(data.ids_todo) : NULL) {
|
||||
data.self_id = id;
|
||||
|
|
|
@ -57,7 +57,7 @@ static void library_free_data(ID *id)
|
|||
static void library_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
Library *lib = (Library *)id;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, lib->parent, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, lib->parent, IDWALK_CB_NEVER_SELF);
|
||||
}
|
||||
|
||||
IDTypeInfo IDType_ID_LI = {
|
||||
|
|
|
@ -53,8 +53,8 @@ static void lightprobe_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
LightProbe *probe = (LightProbe *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, probe->image, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, probe->visibility_grp, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, probe->image, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, probe->visibility_grp, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void lightprobe_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
|
|
|
@ -168,7 +168,7 @@ static void linestyle_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
LineStyleColorModifier_DistanceFromObject *p = (LineStyleColorModifier_DistanceFromObject *)
|
||||
lsm;
|
||||
if (p->target) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, p->target, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, p->target, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ static void linestyle_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
LineStyleAlphaModifier_DistanceFromObject *p = (LineStyleAlphaModifier_DistanceFromObject *)
|
||||
lsm;
|
||||
if (p->target) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, p->target, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, p->target, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ static void linestyle_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
LineStyleThicknessModifier_DistanceFromObject *p =
|
||||
(LineStyleThicknessModifier_DistanceFromObject *)lsm;
|
||||
if (p->target) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, p->target, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, p->target, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,11 +170,11 @@ static void material_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
return;
|
||||
}
|
||||
if (material->texpaintslot != NULL) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, material->texpaintslot->ima, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, material->texpaintslot->ima, IDWALK_CB_NOP);
|
||||
}
|
||||
if (material->gp_style != NULL) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, material->gp_style->sima, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, material->gp_style->ima, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, material->gp_style->sima, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, material->gp_style->ima, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ static void metaball_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
MetaBall *metaball = (MetaBall *)id;
|
||||
for (int i = 0; i < metaball->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, metaball->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, metaball->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -176,10 +176,10 @@ static void mesh_free_data(ID *id)
|
|||
static void mesh_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
Mesh *mesh = (Mesh *)id;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, mesh->texcomesh, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, mesh->key, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, mesh->texcomesh, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, mesh->key, IDWALK_CB_USER);
|
||||
for (int i = 0; i < mesh->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, mesh->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, mesh->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -132,19 +132,19 @@ static void movie_clip_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
MovieClip *movie_clip = (MovieClip *)id;
|
||||
MovieTracking *tracking = &movie_clip->tracking;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, movie_clip->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, movie_clip->gpd, IDWALK_CB_USER);
|
||||
|
||||
LISTBASE_FOREACH (MovieTrackingTrack *, track, &tracking->tracks) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, track->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, track->gpd, IDWALK_CB_USER);
|
||||
}
|
||||
LISTBASE_FOREACH (MovieTrackingObject *, object, &tracking->objects) {
|
||||
LISTBASE_FOREACH (MovieTrackingTrack *, track, &object->tracks) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, track->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, track->gpd, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (MovieTrackingPlaneTrack *, plane_track, &tracking->plane_tracks) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, plane_track->image, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, plane_track->image, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -488,7 +488,7 @@ NlaStrip *BKE_nla_add_soundstrip(Main *bmain, Scene *scene, Speaker *speaker)
|
|||
*/
|
||||
void BKE_nla_strip_foreach_id(NlaStrip *strip, LibraryForeachIDData *data)
|
||||
{
|
||||
BKE_LIB_FOREACHID_PROCESS(data, strip->act, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, strip->act, IDWALK_CB_USER);
|
||||
|
||||
LISTBASE_FOREACH (FCurve *, fcu, &strip->fcurves) {
|
||||
BKE_fcurve_foreach_id(fcu, data);
|
||||
|
|
|
@ -313,28 +313,28 @@ static void library_foreach_node_socket(LibraryForeachIDData *data, bNodeSocket
|
|||
switch ((eNodeSocketDatatype)sock->type) {
|
||||
case SOCK_OBJECT: {
|
||||
bNodeSocketValueObject *default_value = (bNodeSocketValueObject *)sock->default_value;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, default_value->value, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, default_value->value, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SOCK_IMAGE: {
|
||||
bNodeSocketValueImage *default_value = (bNodeSocketValueImage *)sock->default_value;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, default_value->value, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, default_value->value, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SOCK_COLLECTION: {
|
||||
bNodeSocketValueCollection *default_value = (bNodeSocketValueCollection *)
|
||||
sock->default_value;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, default_value->value, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, default_value->value, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SOCK_TEXTURE: {
|
||||
bNodeSocketValueTexture *default_value = (bNodeSocketValueTexture *)sock->default_value;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, default_value->value, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, default_value->value, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SOCK_MATERIAL: {
|
||||
bNodeSocketValueMaterial *default_value = (bNodeSocketValueMaterial *)sock->default_value;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, default_value->value, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, default_value->value, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SOCK_FLOAT:
|
||||
|
@ -355,7 +355,7 @@ static void node_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
bNodeTree *ntree = (bNodeTree *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, ntree->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, ntree->gpd, IDWALK_CB_USER);
|
||||
|
||||
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
|
||||
BKE_LIB_FOREACHID_PROCESS_ID(data, node->id, IDWALK_CB_USER);
|
||||
|
|
|
@ -453,11 +453,11 @@ static void object_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
}
|
||||
}
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->parent, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->track, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->parent, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->track, IDWALK_CB_NEVER_SELF);
|
||||
/* object->proxy is refcounted, but not object->proxy_group... *sigh* */
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->proxy, IDWALK_CB_USER | IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->proxy_group, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->proxy, IDWALK_CB_USER | IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->proxy_group, IDWALK_CB_NOP);
|
||||
|
||||
/* Special case!
|
||||
* Since this field is set/owned by 'user' of this ID (and not ID itself),
|
||||
|
@ -469,22 +469,23 @@ static void object_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
IDWALK_CB_INDIRECT_USAGE :
|
||||
0,
|
||||
true);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->proxy_from, IDWALK_CB_LOOPBACK | IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, object->proxy_from, IDWALK_CB_LOOPBACK | IDWALK_CB_NEVER_SELF);
|
||||
BKE_lib_query_foreachid_process_callback_flag_override(data, cb_flag_orig, true);
|
||||
}
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->poselib, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->poselib, IDWALK_CB_USER);
|
||||
|
||||
for (int i = 0; i < object->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->mat[i], proxy_cb_flag | IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->mat[i], proxy_cb_flag | IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
/* Note that ob->gpd is deprecated, so no need to handle it here. */
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->instance_collection, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->instance_collection, IDWALK_CB_USER);
|
||||
|
||||
if (object->pd) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->pd->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->pd->f_source, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->pd->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->pd->f_source, IDWALK_CB_NOP);
|
||||
}
|
||||
/* Note that ob->effect is deprecated, so no need to handle it here. */
|
||||
|
||||
|
@ -494,15 +495,17 @@ static void object_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
|
||||
IDP_foreach_property(
|
||||
pchan->prop, IDP_TYPE_FILTER_ID, BKE_lib_query_idpropertiesForeachIDLink_callback, data);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, pchan->custom, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, pchan->custom, IDWALK_CB_USER);
|
||||
BKE_constraints_id_loop(&pchan->constraints, library_foreach_constraintObjectLooper, data);
|
||||
}
|
||||
BKE_lib_query_foreachid_process_callback_flag_override(data, cb_flag_orig, true);
|
||||
}
|
||||
|
||||
if (object->rigidbody_constraint) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->rigidbody_constraint->ob1, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->rigidbody_constraint->ob2, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, object->rigidbody_constraint->ob1, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, object->rigidbody_constraint->ob2, IDWALK_CB_NEVER_SELF);
|
||||
}
|
||||
|
||||
BKE_modifiers_foreach_ID_link(object, library_foreach_modifiersForeachIDLink, data);
|
||||
|
@ -516,10 +519,11 @@ static void object_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
}
|
||||
|
||||
if (object->soft) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->soft->collision_group, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, object->soft->collision_group, IDWALK_CB_NOP);
|
||||
|
||||
if (object->soft->effector_weights) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, object->soft->effector_weights->group, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, object->soft->effector_weights->group, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -173,10 +173,10 @@ static void particle_settings_free_data(ID *id)
|
|||
static void particle_settings_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
ParticleSettings *psett = (ParticleSettings *)id;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->instance_collection, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->instance_object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->bb_ob, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->collision_group, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->instance_collection, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->instance_object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->bb_ob, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->collision_group, IDWALK_CB_NOP);
|
||||
|
||||
for (int i = 0; i < MAX_MTEX; i++) {
|
||||
if (psett->mtex[i]) {
|
||||
|
@ -185,16 +185,16 @@ static void particle_settings_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
}
|
||||
|
||||
if (psett->effector_weights) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->effector_weights->group, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->effector_weights->group, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
if (psett->pd) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->pd->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->pd->f_source, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->pd->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->pd->f_source, IDWALK_CB_NOP);
|
||||
}
|
||||
if (psett->pd2) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->pd2->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, psett->pd2->f_source, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->pd2->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, psett->pd2->f_source, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
if (psett->boids) {
|
||||
|
@ -202,18 +202,18 @@ static void particle_settings_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
LISTBASE_FOREACH (BoidRule *, rule, &state->rules) {
|
||||
if (rule->type == eBoidRuleType_Avoid) {
|
||||
BoidRuleGoalAvoid *gabr = (BoidRuleGoalAvoid *)rule;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, gabr->ob, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, gabr->ob, IDWALK_CB_NOP);
|
||||
}
|
||||
else if (rule->type == eBoidRuleType_FollowLeader) {
|
||||
BoidRuleFollowLeader *flbr = (BoidRuleFollowLeader *)rule;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, flbr->ob, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, flbr->ob, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (ParticleDupliWeight *, dw, &psett->instance_weights) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, dw->ob, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, dw->ob, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ static void pointcloud_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
PointCloud *pointcloud = (PointCloud *)id;
|
||||
for (int i = 0; i < pointcloud->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, pointcloud->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, pointcloud->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -530,7 +530,7 @@ static void scene_foreach_toolsettings_id_pointer_process(
|
|||
(ID **)&(__id), __action, __reader, (ID **)&(__id_old), __cb_flag); \
|
||||
} \
|
||||
else { \
|
||||
BKE_LIB_FOREACHID_PROCESS(__data, __id, __cb_flag); \
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(__data, __id, __cb_flag); \
|
||||
} \
|
||||
} \
|
||||
(void)0
|
||||
|
@ -695,7 +695,7 @@ static void scene_foreach_layer_collection(LibraryForeachIDData *data, ListBase
|
|||
(lc->collection->id.flag & LIB_EMBEDDED_DATA) != 0) ?
|
||||
IDWALK_CB_EMBEDDED :
|
||||
IDWALK_CB_NOP;
|
||||
BKE_LIB_FOREACHID_PROCESS(data, lc->collection, cb_flag);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, lc->collection, cb_flag);
|
||||
scene_foreach_layer_collection(data, &lc->layer_collections);
|
||||
}
|
||||
}
|
||||
|
@ -738,12 +738,12 @@ static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Scene *scene = (Scene *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->world, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->set, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->clip, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scene->r.bake.cage_object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->world, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->set, IDWALK_CB_NEVER_SELF);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->clip, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scene->r.bake.cage_object, IDWALK_CB_NOP);
|
||||
if (scene->nodetree) {
|
||||
/* nodetree **are owned by IDs**, treat them as mere sub-data and not real ID! */
|
||||
BKE_library_foreach_ID_embedded(data, (ID **)&scene->nodetree);
|
||||
|
@ -758,10 +758,10 @@ static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
}
|
||||
|
||||
LISTBASE_FOREACH (ViewLayer *, view_layer, &scene->view_layers) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, view_layer->mat_override, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, view_layer->mat_override, IDWALK_CB_USER);
|
||||
|
||||
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
|
||||
BKE_LIB_FOREACHID_PROCESS(
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, base->object, IDWALK_CB_NOP | IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE);
|
||||
}
|
||||
|
||||
|
@ -769,23 +769,23 @@ static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
|
||||
LISTBASE_FOREACH (FreestyleModuleConfig *, fmc, &view_layer->freestyle_config.modules) {
|
||||
if (fmc->script) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, fmc->script, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, fmc->script, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (FreestyleLineSet *, fls, &view_layer->freestyle_config.linesets) {
|
||||
if (fls->group) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, fls->group, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, fls->group, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
if (fls->linestyle) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, fls->linestyle, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, fls->linestyle, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (TimeMarker *, marker, &scene->markers) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, marker->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, marker->camera, IDWALK_CB_NOP);
|
||||
IDP_foreach_property(
|
||||
marker->prop, IDP_TYPE_FILTER_ID, BKE_lib_query_idpropertiesForeachIDLink_callback, data);
|
||||
}
|
||||
|
|
|
@ -93,13 +93,13 @@ static void screen_foreach_id_dopesheet(LibraryForeachIDData *data, bDopeSheet *
|
|||
{
|
||||
if (ads != NULL) {
|
||||
BKE_LIB_FOREACHID_PROCESS_ID(data, ads->source, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, ads->filter_grp, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, ads->filter_grp, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area)
|
||||
{
|
||||
BKE_LIB_FOREACHID_PROCESS(data, area->full, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, area->full, IDWALK_CB_NOP);
|
||||
|
||||
/* TODO: this should be moved to a callback in `SpaceType`, defined in each editor's own code.
|
||||
* Will be for a later round of cleanup though... */
|
||||
|
@ -108,11 +108,11 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
case SPACE_VIEW3D: {
|
||||
View3D *v3d = (View3D *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, v3d->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, v3d->ob_center, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, v3d->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, v3d->ob_center, IDWALK_CB_NOP);
|
||||
|
||||
if (v3d->localvd) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, v3d->localvd->camera, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, v3d->localvd->camera, IDWALK_CB_NOP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -134,21 +134,21 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
SpaceAction *saction = (SpaceAction *)sl;
|
||||
|
||||
screen_foreach_id_dopesheet(data, &saction->ads);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, saction->action, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, saction->action, IDWALK_CB_NOP);
|
||||
break;
|
||||
}
|
||||
case SPACE_IMAGE: {
|
||||
SpaceImage *sima = (SpaceImage *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sima->image, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sima->mask_info.mask, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sima->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sima->image, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sima->mask_info.mask, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sima->gpd, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SPACE_SEQ: {
|
||||
SpaceSeq *sseq = (SpaceSeq *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sseq->gpd, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sseq->gpd, IDWALK_CB_USER);
|
||||
break;
|
||||
}
|
||||
case SPACE_NLA: {
|
||||
|
@ -160,13 +160,13 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
case SPACE_TEXT: {
|
||||
SpaceText *st = (SpaceText *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, st->text, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, st->text, IDWALK_CB_NOP);
|
||||
break;
|
||||
}
|
||||
case SPACE_SCRIPT: {
|
||||
SpaceScript *scpt = (SpaceScript *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, scpt->script, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, scpt->script, IDWALK_CB_NOP);
|
||||
break;
|
||||
}
|
||||
case SPACE_OUTLINER: {
|
||||
|
@ -194,19 +194,19 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
BKE_LIB_FOREACHID_PROCESS_ID(data, snode->id, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_ID(data, snode->from, IDWALK_CB_NOP);
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, snode->nodetree, is_private_nodetree ? IDWALK_CB_EMBEDDED : IDWALK_CB_USER_ONE);
|
||||
|
||||
LISTBASE_FOREACH (bNodeTreePath *, path, &snode->treepath) {
|
||||
if (path == snode->treepath.first) {
|
||||
/* first nodetree in path is same as snode->nodetree */
|
||||
BKE_LIB_FOREACHID_PROCESS(data,
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data,
|
||||
path->nodetree,
|
||||
is_private_nodetree ? IDWALK_CB_EMBEDDED :
|
||||
IDWALK_CB_USER_ONE);
|
||||
}
|
||||
else {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, path->nodetree, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, path->nodetree, IDWALK_CB_USER_ONE);
|
||||
}
|
||||
|
||||
if (path->nodetree == NULL) {
|
||||
|
@ -214,14 +214,14 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
}
|
||||
}
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, snode->edittree, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, snode->edittree, IDWALK_CB_NOP);
|
||||
break;
|
||||
}
|
||||
case SPACE_CLIP: {
|
||||
SpaceClip *sclip = (SpaceClip *)sl;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sclip->clip, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, sclip->mask_info.mask, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sclip->clip, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, sclip->mask_info.mask, IDWALK_CB_USER_ONE);
|
||||
break;
|
||||
}
|
||||
case SPACE_SPREADSHEET: {
|
||||
|
@ -229,7 +229,7 @@ void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area
|
|||
|
||||
LISTBASE_FOREACH (SpreadsheetContext *, context, &sspreadsheet->context_path) {
|
||||
if (context->type == SPREADSHEET_CONTEXT_OBJECT) {
|
||||
BKE_LIB_FOREACHID_PROCESS(
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(
|
||||
data, ((SpreadsheetContextObject *)context)->object, IDWALK_CB_NOP);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ static void speaker_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Speaker *speaker = (Speaker *)id;
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS(data, speaker->sound, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, speaker->sound, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
static void speaker_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
|
|
|
@ -144,7 +144,7 @@ static void texture_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
/* nodetree **are owned by IDs**, treat them as mere sub-data and not real ID! */
|
||||
BKE_library_foreach_ID_embedded(data, (ID **)&texture->nodetree);
|
||||
}
|
||||
BKE_LIB_FOREACHID_PROCESS(data, texture->ima, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, texture->ima, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
static void texture_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
|
@ -233,8 +233,8 @@ IDTypeInfo IDType_ID_TE = {
|
|||
/* Utils for all IDs using those texture slots. */
|
||||
void BKE_texture_mtex_foreach_id(LibraryForeachIDData *data, MTex *mtex)
|
||||
{
|
||||
BKE_LIB_FOREACHID_PROCESS(data, mtex->object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS(data, mtex->tex, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, mtex->object, IDWALK_CB_NOP);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, mtex->tex, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
/* ****************** Mapping ******************* */
|
||||
|
|
|
@ -556,7 +556,7 @@ static void volume_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
{
|
||||
Volume *volume = (Volume *)id;
|
||||
for (int i = 0; i < volume->totcol; i++) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, volume->mat[i], IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, volume->mat[i], IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ static void workspace_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
WorkSpace *workspace = (WorkSpace *)id;
|
||||
|
||||
LISTBASE_FOREACH (WorkSpaceLayout *, layout, &workspace->layouts) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, layout->screen, IDWALK_CB_USER);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, layout->screen, IDWALK_CB_USER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ static void window_manager_foreach_id(ID *id, LibraryForeachIDData *data)
|
|||
wmWindowManager *wm = (wmWindowManager *)id;
|
||||
|
||||
LISTBASE_FOREACH (wmWindow *, win, &wm->windows) {
|
||||
BKE_LIB_FOREACHID_PROCESS(data, win->scene, IDWALK_CB_USER_ONE);
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, win->scene, IDWALK_CB_USER_ONE);
|
||||
|
||||
/* This pointer can be NULL during old files reading, better be safe than sorry. */
|
||||
if (win->workspace_hook != NULL) {
|
||||
|
|
Loading…
Reference in New Issue