diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_gpencil.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_gpencil_modifier.h | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/gpencil.c | 48 |
3 files changed, 5 insertions, 49 deletions
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index 3b8df66668a..34c61083872 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -65,7 +65,6 @@ bool BKE_gpencil_free_strokes(struct bGPDframe *gpf); void BKE_gpencil_free_frames(struct bGPDlayer *gpl); void BKE_gpencil_free_layers(struct ListBase *list); bool BKE_gpencil_free_frame_runtime_data(struct bGPDframe *derived_gpf); -void BKE_gpencil_free_derived_frames(struct bGPdata *gpd); void BKE_gpencil_free(struct bGPdata *gpd, bool free_all); void BKE_gpencil_batch_cache_dirty_tag(struct bGPdata *gpd); diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h index 91f368613cb..e31f61c909a 100644 --- a/source/blender/blenkernel/BKE_gpencil_modifier.h +++ b/source/blender/blenkernel/BKE_gpencil_modifier.h @@ -232,6 +232,11 @@ typedef struct GpencilModifierTypeInfo { */ void (*foreachTexLink)(struct GpencilModifierData *md, struct Object *ob, GreasePencilTexWalkFunc walk, void *userData); + + /* get the number of times the strokes are duplicated in this modifier. + * This is used to calculate the size of the GPU VBOs + */ + int (*getDuplicationFactor)(struct GpencilModifierData *md); } GpencilModifierTypeInfo; /* Initialize modifier's global data (type info and some common global storages). */ diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index f2225bca3f5..98d255df080 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -211,46 +211,6 @@ void BKE_gpencil_free_layers(ListBase *list) } } -/* clear all runtime derived data */ -static void BKE_gpencil_clear_derived(bGPDlayer *gpl) -{ - if (gpl->runtime.derived_array == NULL) { - return; - } - - for (int i = 0; i < gpl->runtime.len_derived; i++) { - bGPDframe *derived_gpf = &gpl->runtime.derived_array[i]; - BKE_gpencil_free_frame_runtime_data(derived_gpf); - derived_gpf = NULL; - } - gpl->runtime.len_derived = 0; - MEM_SAFE_FREE(gpl->runtime.derived_array); -} - -/* Free all of the gp-layers temp data*/ -static void BKE_gpencil_free_layers_temp_data(ListBase *list) -{ - bGPDlayer *gpl_next; - - /* error checking */ - if (list == NULL) return; - /* delete layers */ - for (bGPDlayer *gpl = list->first; gpl; gpl = gpl_next) { - gpl_next = gpl->next; - BKE_gpencil_clear_derived(gpl); - } -} - -/* Free temp gpf derived frames */ -void BKE_gpencil_free_derived_frames(bGPdata *gpd) -{ - /* error checking */ - if (gpd == NULL) return; - for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { - BKE_gpencil_clear_derived(gpl); - } -} - /** Free (or release) any data used by this grease pencil (does not free the gpencil itself). */ void BKE_gpencil_free(bGPdata *gpd, bool free_all) { @@ -258,9 +218,6 @@ void BKE_gpencil_free(bGPdata *gpd, bool free_all) BKE_animdata_free(&gpd->id, false); /* free layers */ - if (free_all) { - BKE_gpencil_free_layers_temp_data(&gpd->layers); - } BKE_gpencil_free_layers(&gpd->layers); /* materials */ @@ -639,8 +596,6 @@ bGPDlayer *BKE_gpencil_layer_duplicate(const bGPDlayer *gpl_src) /* make a copy of source layer */ gpl_dst = MEM_dupallocN(gpl_src); gpl_dst->prev = gpl_dst->next = NULL; - gpl_dst->runtime.derived_array = NULL; - gpl_dst->runtime.len_derived = 0; /* copy frames */ BLI_listbase_clear(&gpl_dst->frames); @@ -1031,9 +986,6 @@ void BKE_gpencil_layer_delete(bGPdata *gpd, bGPDlayer *gpl) /* free icon providing preview of icon color */ BKE_icon_delete(gpl->runtime.icon_id); - /* free derived data */ - BKE_gpencil_clear_derived(gpl); - BLI_freelinkN(&gpd->layers, gpl); } |