[Bf-blender-cvs] [19ebee657e9] master: GPencil: Cleanup derived frame code
Antonioya
noreply at git.blender.org
Sat Apr 27 12:02:34 CEST 2019
Commit: 19ebee657e965c5aad627156afa3ce62e47a3379
Author: Antonioya
Date: Sat Apr 27 12:02:26 2019 +0200
Branches: master
https://developer.blender.org/rB19ebee657e965c5aad627156afa3ce62e47a3379
GPencil: Cleanup derived frame code
This is a previous step to move away the derived frame logic to be used in edit modes.
===================================================================
M source/blender/draw/engines/gpencil/gpencil_draw_utils.c
===================================================================
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
index 8c2dee66d92..f28c6fa11b5 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
@@ -1909,6 +1909,28 @@ void DRW_gpencil_populate_multiedit(GPENCIL_e_data *e_data,
cache->is_dirty = false;
}
+/* ensure there is a derived frame */
+static void gpencil_ensure_derived_frame(bGPdata *gpd,
+ bGPDlayer *gpl,
+ bGPDframe *gpf,
+ GpencilBatchCache *cache,
+ bGPDframe **derived_gpf)
+{
+ /* create derived frames array data or expand */
+ int derived_idx = BLI_findindex(&gpd->layers, gpl);
+ *derived_gpf = &cache->derived_array[derived_idx];
+
+ /* if no derived frame or dirty cache, create a new one */
+ if ((*derived_gpf == NULL) || (cache->is_dirty)) {
+ if (*derived_gpf != NULL) {
+ /* first clear temp data */
+ BKE_gpencil_free_frame_runtime_data(*derived_gpf);
+ }
+ /* create new data (do not assign new memory)*/
+ gpencil_copy_frame(gpf, *derived_gpf);
+ }
+}
+
/* helper for populate a complete grease pencil datablock */
void DRW_gpencil_populate_datablock(GPENCIL_e_data *e_data,
void *vedata,
@@ -2001,18 +2023,7 @@ void DRW_gpencil_populate_datablock(GPENCIL_e_data *e_data,
}
/* create derived frames array data or expand */
- int derived_idx = BLI_findindex(&gpd->layers, gpl);
- derived_gpf = &cache->derived_array[derived_idx];
-
- /* if no derived frame or dirty cache, create a new one */
- if ((derived_gpf == NULL) || (cache->is_dirty)) {
- if (derived_gpf != NULL) {
- /* first clear temp data */
- BKE_gpencil_free_frame_runtime_data(derived_gpf);
- }
- /* create new data (do not assign new memory)*/
- gpencil_copy_frame(gpf, derived_gpf);
- }
+ gpencil_ensure_derived_frame(gpd, gpl, gpf, cache, &derived_gpf);
/* draw onion skins */
if (!ID_IS_LINKED(&gpd->id)) {
More information about the Bf-blender-cvs
mailing list