Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-03-30 19:37:48 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-03-30 19:38:15 +0300
commit2c9e27f209a94867fa3d156564f5e8e6ade2278e (patch)
treed89f3bd103636d6669253a982403b76b15b9fd34
parent100896e080bc6f09177fbf4aa6ad4b587bd95ed5 (diff)
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.
-rw-r--r--source/blender/draw/intern/draw_cache_impl_gpencil.c11
1 files changed, 7 insertions, 4 deletions
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;
}