Commit: 1d9a8be5132fa08973e928212010ac9ec21664b5
Author: Joshua Leung
Date:   Mon Oct 30 16:41:30 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB1d9a8be5132fa08973e928212010ac9ec21664b5

Fix "Apply Modifier" operator to use the new callbacks

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

M       source/blender/editors/object/object_modifier.c

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

diff --git a/source/blender/editors/object/object_modifier.c 
b/source/blender/editors/object/object_modifier.c
index cf47813da92..e439550245e 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -667,23 +667,12 @@ static int modifier_apply_obdata(ReportList *reports, 
const bContext *C, Scene *
 
                DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        }
-       else if (ELEM(ob->type, OB_GPENCIL)) {
-#if 0 // FIXME: This code uses all the wrong callbacks! To be recoded!
-               /* some modifier need to have bContext */
-               if (md->type == eModifierType_GpencilArray) {
-                       GpencilArrayModifierData *mmd = 
(GpencilArrayModifierData *)md;
-                       mmd->C = (void *) C;
-               }
-               if (md->type == eModifierType_GpencilLattice) {
-                       GpencilLatticeModifierData *mmd = 
(GpencilLatticeModifierData *)md;
-                       mmd->C = (void *)C;
-               }
-               mti->applyModifier(md, &eval_ctx, ob, NULL, 0);
-               if (ob->data) {
-                       BKE_gpencil_batch_cache_dirty(ob->data);
-               }
-               return 1;
-#endif
+       else if (ob->type == OB_GPENCIL) {
+               if (mti->bakeModifierGP == NULL)
+                       return 0;
+               
+               mti->bakeModifierGP(C, &eval_ctx, md, ob);
+               DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        }
        else {
                BKE_report(reports, RPT_ERROR, "Cannot apply modifier for this 
object type");
@@ -725,13 +714,6 @@ int ED_object_modifier_apply(ReportList *reports, const 
bContext *C, Scene *scen
                        BKE_report(reports, RPT_ERROR, "Modifiers cannot be 
applied to multi-user data");
                        return 0;
                }
-
-               // XXX: Review this!
-               modifier_apply_obdata(reports, C, scene, ob, md);
-               BLI_remlink(&ob->modifiers, md);
-               modifier_free(md);
-               BKE_object_free_derived_caches(ob);
-               return 1;
        }
        else if (((ID *) ob->data)->us > 1) {
                BKE_report(reports, RPT_ERROR, "Modifiers cannot be applied to 
multi-user data");

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

Reply via email to