Commit: 8b4d22db997b8330fa835b729b58886bbb89e38b
Author: Joshua Leung
Date:   Thu Oct 26 18:51:33 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB8b4d22db997b8330fa835b729b58886bbb89e38b

GP Lattice Modifier - Define updateDepsgraph() callback to add needed relations
and remove manula updates

===================================================================

M       source/blender/blenkernel/intern/lattice.c
M       source/blender/blenkernel/intern/object_update.c
M       source/blender/modifiers/intern/MOD_gpencillattice.c

===================================================================

diff --git a/source/blender/blenkernel/intern/lattice.c 
b/source/blender/blenkernel/intern/lattice.c
index 1fea18b61b5..99223bff789 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -1234,10 +1234,7 @@ void BKE_lattice_translate(Lattice *lt, float offset[3], 
bool do_keys)
 void BKE_lattice_eval_geometry(const struct EvaluationContext 
*UNUSED(eval_ctx),
                                Lattice *UNUSED(latt))
 {
-       /* set grease pencil caches to dirty. Maybe we could verify if the 
lattice is used 
-        * or not, but this is slower than set all as dirty 
-        */
-       BKE_gpencil_batch_cache_alldirty();
+
 }
 
 /* Draw Engine */
diff --git a/source/blender/blenkernel/intern/object_update.c 
b/source/blender/blenkernel/intern/object_update.c
index b07a6de9bab..3bd14ae2079 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -301,15 +301,6 @@ void BKE_object_eval_uber_transform(const 
EvaluationContext *UNUSED(eval_ctx),
        if (ob->data == NULL) {
                ob->recalc &= ~OB_RECALC_DATA;
        }
-
-       /* additional updates */
-       switch (ob->type) {
-               case OB_LATTICE:
-               {
-                       BKE_gpencil_batch_cache_alldirty();
-                       break;
-               }
-       }
 }
 
 void BKE_object_eval_uber_data(const EvaluationContext *eval_ctx,
diff --git a/source/blender/modifiers/intern/MOD_gpencillattice.c 
b/source/blender/modifiers/intern/MOD_gpencillattice.c
index c9135ffed91..68ddf665a22 100644
--- a/source/blender/modifiers/intern/MOD_gpencillattice.c
+++ b/source/blender/modifiers/intern/MOD_gpencillattice.c
@@ -49,6 +49,7 @@
 #include "MOD_modifiertypes.h"
 
 #include "DEG_depsgraph.h"
+#include "DEG_depsgraph_build.h"
 
 static void initData(ModifierData *md)
 {
@@ -129,6 +130,20 @@ static bool isDisabled(ModifierData *md, int 
UNUSED(userRenderParams))
        return !mmd->object;
 }
 
+static void updateDepsgraph(ModifierData *md,
+                            struct Main *UNUSED(bmain),
+                            struct Scene *UNUSED(scene),
+                            Object *object,
+                            struct DepsNodeHandle *node)
+{
+       GpencilLatticeModifierData *lmd = (GpencilLatticeModifierData *)md;
+       if (lmd->object != NULL) {
+               DEG_add_object_relation(node, lmd->object, 
DEG_OB_COMP_GEOMETRY, "Lattice Modifier");
+               DEG_add_object_relation(node, lmd->object, 
DEG_OB_COMP_TRANSFORM, "Lattice Modifier");
+       }
+       DEG_add_object_relation(node, object, DEG_OB_COMP_TRANSFORM, "Lattice 
Modifier");
+}
+
 static void foreachObjectLink(
        ModifierData *md, Object *ob,
        ObjectWalkFunc walk, void *userData)
@@ -156,7 +171,7 @@ ModifierTypeInfo modifierType_GpencilLattice = {
        /* requiredDataMask */  NULL,
        /* freeData */          freeData,
        /* isDisabled */        isDisabled,
-       /* updateDepsgraph */   NULL,
+       /* updateDepsgraph */   updateDepsgraph,
        /* dependsOnTime */     NULL,
        /* dependsOnNormals */  NULL,
        /* foreachObjectLink */ foreachObjectLink,

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to