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

Reply via email to