Commit: 96e607f017c7647439225f14dfbbc774a4b1a4ad
Author: Joshua Leung
Date:   Mon Oct 30 14:24:18 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB96e607f017c7647439225f14dfbbc774a4b1a4ad

Cleanup: Eliminate BKE_gpencil_batch_cache_alldirty()

This accessed the global G.main directly, which we're trying to remove

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

M       source/blender/blenkernel/BKE_gpencil.h
M       source/blender/blenkernel/intern/gpencil.c
M       source/blender/draw/engines/gpencil/gpencil_engine.c
M       source/blender/editors/transform/transform_generics.c

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

diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index ec95e20bb9f..5bdeb7598d6 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -73,7 +73,6 @@ void BKE_gpencil_free(struct bGPdata *gpd, bool free_all);
 
 void BKE_gpencil_batch_cache_dirty(struct bGPdata *gpd);
 void BKE_gpencil_batch_cache_free(struct bGPdata *gpd);
-void BKE_gpencil_batch_cache_alldirty(void);
 void BKE_gpencil_batch_cache_alldirty_main(struct Main *bmain);
 
 void BKE_gpencil_stroke_sync_selection(struct bGPDstroke *gps);
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 9d2a21a29b4..7b35295388c 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -83,20 +83,6 @@ void BKE_gpencil_batch_cache_free(bGPdata *gpd)
        }
 }
 
-/* Change draw manager status in all gpd datablocks */
-/* TODO: Remove and deprecate completely */
-void BKE_gpencil_batch_cache_alldirty()
-{
-#if 0 /* XXX: disabled so we can see how much is broken without this */
-       bGPdata *gpd;
-       Main *bmain = G.main; /* XXX: supply as arg? */
-
-       for (gpd = bmain->gpencil.first; gpd; gpd = gpd->id.next) {
-               BKE_gpencil_batch_cache_dirty(gpd);
-       }
-#endif
-}
-
 /* Change draw manager status in all gpd datablocks */
 /* TODO: Remove completely? */
 void BKE_gpencil_batch_cache_alldirty_main(Main *bmain)
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c 
b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 56ec2cf3073..56d5c6da7ff 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -255,17 +255,19 @@ static void GPENCIL_cache_init(void *vedata)
                psl->edit_pass = DRW_pass_create("GPencil Edit Pass", 
DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND);
                
                /* detect if playing animation */
+               // XXX: Why? Can this be done in a simpler way (covering less 
of the main DB)?
                int oldsts = stl->storage->playing;
                stl->storage->playing = 0;
                if (draw_ctx->evil_C) {
+                       struct Main *bmain = CTX_data_main(draw_ctx->evil_C);
                        if 
(ED_screen_animation_playing(CTX_wm_manager(draw_ctx->evil_C))) {
                                stl->storage->playing = 1;
-                               BKE_gpencil_batch_cache_alldirty();
+                               BKE_gpencil_batch_cache_alldirty_main(bmain);
                        }
                        else {
                                /* if change animation status, cache is dirty */
                                if (oldsts != stl->storage->playing) {
-                                       BKE_gpencil_batch_cache_alldirty();
+                                       
BKE_gpencil_batch_cache_alldirty_main(bmain);
                                }
                        }
                }
diff --git a/source/blender/editors/transform/transform_generics.c 
b/source/blender/editors/transform/transform_generics.c
index 4a55003d0d1..ee6e9925562 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -346,12 +346,9 @@ static void recalcData_actedit(TransInfo *t)
        if (ELEM(ac.datatype, ANIMCONT_GPENCIL, ANIMCONT_MASK)) {
                /* flush transform values back to actual coordinates */
                flushTransIntFrameActionData(t);
-               /* refresh gpencil cache */
-               if (ac.datatype == ANIMCONT_GPENCIL) {
-                       BKE_gpencil_batch_cache_alldirty();
-               }
        }
-       else {
+       
+       if (ac.datatype != ANIMCONT_MASK) {
                /* get animdata blocks visible in editor, assuming that these 
will be the ones where things changed */
                filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA);
                ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, 
ac.datatype);

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

Reply via email to