Commit: 853da3babc05b4294f603021e74263b99d4fe970
Author: Antonio Vazquez
Date: Thu Jun 21 10:03:33 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rB853da3babc05b4294f603021e74263b99d4fe970
New functions for ID Linking
===================================================================
M source/blender/blenkernel/BKE_gpencil_modifier.h
M source/blender/blenkernel/intern/gpencil_modifier.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h
b/source/blender/blenkernel/BKE_gpencil_modifier.h
index 0013b35901a..c1071b34619 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -237,6 +237,8 @@ struct GpencilModifierData
*BKE_gpencil_modifiers_findByName(struct Object *ob,
void BKE_gpencil_modifier_copyData_generic(const struct GpencilModifierData
*md_src, struct GpencilModifierData *md_dst);
void BKE_gpencil_modifier_copyData(struct GpencilModifierData *md, struct
GpencilModifierData *target);
void BKE_gpencil_modifier_copyData_ex(struct GpencilModifierData *md, struct
GpencilModifierData *target, const int flag);
+void BKE_gpencil_modifiers_foreachIDLink(struct Object *ob,
GreasePencilIDWalkFunc walk, void *userData);
+void BKE_gpencil_modifiers_foreachTexLink(struct Object *ob,
GreasePencilTexWalkFunc walk, void *userData);
bool BKE_gpencil_has_geometry_modifiers(struct Object *ob);
diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c
b/source/blender/blenkernel/intern/gpencil_modifier.c
index a0ad7067ccf..00e6d0784b3 100644
--- a/source/blender/blenkernel/intern/gpencil_modifier.c
+++ b/source/blender/blenkernel/intern/gpencil_modifier.c
@@ -597,6 +597,34 @@ GpencilModifierData
*BKE_gpencil_modifiers_findByType(Object *ob, GpencilModifie
return md;
}
+void BKE_gpencil_modifiers_foreachIDLink(Object *ob, GreasePencilIDWalkFunc
walk, void *userData)
+{
+ GpencilModifierData *md = ob->greasepencil_modifiers.first;
+
+ for (; md; md = md->next) {
+ const GpencilModifierTypeInfo *mti =
BKE_gpencil_modifierType_getInfo(md->type);
+
+ if (mti->foreachIDLink) mti->foreachIDLink(md, ob, walk,
userData);
+ else if (mti->foreachObjectLink) {
+ /* each Object can masquerade as an ID, so this should
be OK */
+ GreasePencilObjectWalkFunc fp =
(GreasePencilObjectWalkFunc)walk;
+ mti->foreachObjectLink(md, ob, fp, userData);
+ }
+ }
+}
+
+void BKE_gpencil_modifiers_foreachTexLink(Object *ob, GreasePencilTexWalkFunc
walk, void *userData)
+{
+ GpencilModifierData *md = ob->greasepencil_modifiers.first;
+
+ for (; md; md = md->next) {
+ const GpencilModifierTypeInfo *mti =
BKE_gpencil_modifierType_getInfo(md->type);
+
+ if (mti->foreachTexLink)
+ mti->foreachTexLink(md, ob, walk, userData);
+ }
+}
+
GpencilModifierData *BKE_gpencil_modifiers_findByName(Object *ob, const char
*name)
{
return BLI_findstring(&(ob->greasepencil_modifiers), name,
offsetof(GpencilModifierData, name));
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs