[Bf-blender-cvs] [2c9e27f209a] master: Fix T75144 Grease Pencil: Python generated strokes flicker and crash

Clément Foucault noreply at git.blender.org
Mon Mar 30 18:38:17 CEST 2020


Commit: 2c9e27f209a94867fa3d156564f5e8e6ade2278e
Author: Clément Foucault
Date:   Mon Mar 30 18:37:48 2020 +0200
Branches: master
https://developer.blender.org/rB2c9e27f209a94867fa3d156564f5e8e6ade2278e

Fix T75144 Grease Pencil: Python generated strokes flicker and crash

This was caused by a flag not being reset in time, causing discard of
batches already queued to be drawn.

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

M	source/blender/draw/intern/draw_cache_impl_gpencil.c

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

diff --git a/source/blender/draw/intern/draw_cache_impl_gpencil.c b/source/blender/draw/intern/draw_cache_impl_gpencil.c
index 4a474768226..8d6d8c593f0 100644
--- a/source/blender/draw/intern/draw_cache_impl_gpencil.c
+++ b/source/blender/draw/intern/draw_cache_impl_gpencil.c
@@ -71,6 +71,13 @@ typedef struct GpencilBatchCache {
 static bool gpencil_batch_cache_valid(GpencilBatchCache *cache, bGPdata *gpd, int cfra)
 {
   bool valid = true;
+
+  /* Needs to be first to consume the flag. */
+  if (gpd->flag & GP_DATA_PYTHON_UPDATED) {
+    gpd->flag &= ~GP_DATA_PYTHON_UPDATED;
+    valid = false;
+  }
+
   if (cache == NULL) {
     return false;
   }
@@ -82,10 +89,6 @@ static bool gpencil_batch_cache_valid(GpencilBatchCache *cache, bGPdata *gpd, in
   else if (gpd->flag & GP_DATA_CACHE_IS_DIRTY) {
     valid = false;
   }
-  else if (gpd->flag & GP_DATA_PYTHON_UPDATED) {
-    gpd->flag &= ~GP_DATA_PYTHON_UPDATED;
-    valid = false;
-  }
   else if (cache->is_dirty) {
     valid = false;
   }



More information about the Bf-blender-cvs mailing list