[Bf-blender-cvs] [ad4e9ef9563] greasepencil-object: Move bGPdata runtime data to bGPdata_runtime struct

Antonio Vazquez noreply at git.blender.org
Sat May 12 19:11:12 CEST 2018


Commit: ad4e9ef95632f3e7de7c31cf46dbf59b7d7cc05d
Author: Antonio Vazquez
Date:   Sat May 12 19:11:06 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBad4e9ef95632f3e7de7c31cf46dbf59b7d7cc05d

Move bGPdata runtime data to bGPdata_runtime struct

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

M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/draw/engines/gpencil/gpencil_cache_utils.c
M	source/blender/makesdna/DNA_gpencil_types.h

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

diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index 9cc28ee709e..b507fa095a4 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -452,7 +452,7 @@ bGPdata *BKE_gpencil_data_addnew(Main *bmain, const char name[])
 	ARRAY_SET_ITEMS(gpd->line_color, 0.6f, 0.6f, 0.6f, 0.5f);
 	
 	gpd->xray_mode = GP_XRAY_3DSPACE;
-	gpd->batch_cache_data = NULL;
+	gpd->runtime.batch_cache_data = NULL;
 	gpd->pixfactor = GP_DEFAULT_PIX_FACTOR;
 	
 	/* onion-skinning settings (datablock level) */
@@ -652,7 +652,7 @@ bGPDlayer *BKE_gpencil_layer_duplicate(const bGPDlayer *gpl_src)
 void BKE_gpencil_copy_data(Main *UNUSED(bmain), bGPdata *gpd_dst, const bGPdata *gpd_src, const int UNUSED(flag))
 {
 	/* cache data is not duplicated */
-	gpd_dst->batch_cache_data = NULL;
+	gpd_dst->runtime.batch_cache_data = NULL;
 
 	/* duplicate material array */
 	if (gpd_src->mat) {
@@ -699,7 +699,7 @@ bGPdata *BKE_gpencil_data_duplicate(Main *bmain, const bGPdata *gpd_src, bool in
 	else {
 		/* make a copy when others use this */
 		gpd_dst = BKE_libblock_copy(bmain, &gpd_src->id);
-		gpd_dst->batch_cache_data = NULL;
+		gpd_dst->runtime.batch_cache_data = NULL;
 	}
 	
 	/* Copy internal data (layers, etc.) */
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index fdb2533db13..bd5c2f3905c 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6331,7 +6331,7 @@ static void direct_link_gpencil(FileData *fd, bGPdata *gpd)
 	}
 
 	/* clear drawing cache */
-	gpd->batch_cache_data = NULL;
+	gpd->runtime.batch_cache_data = NULL;
 
 	/* materials */
 	gpd->mat = newdataadr(fd, gpd->mat);
diff --git a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
index 422b03b7ffa..abfd62bd8d4 100644
--- a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
@@ -111,12 +111,12 @@ void gpencil_object_cache_add(tGPencilObjectCache *cache_array, Object *ob, bool
 static GpencilBatchCache *gpencil_batch_get_element(Object *ob)
 {
 	bGPdata *gpd = ob->data;
-	if (gpd->batch_cache_data == NULL) {
-		gpd->batch_cache_data = BLI_ghash_str_new("GP batch cache data");
+	if (gpd->runtime.batch_cache_data == NULL) {
+		gpd->runtime.batch_cache_data = BLI_ghash_str_new("GP batch cache data");
 		return NULL;
 	}
 
-	return (GpencilBatchCache *) BLI_ghash_lookup(gpd->batch_cache_data, ob->id.name);
+	return (GpencilBatchCache *) BLI_ghash_lookup(gpd->runtime.batch_cache_data, ob->id.name);
 }
 
 /* verify if cache is valid */
@@ -183,7 +183,7 @@ static void gpencil_batch_cache_init(Object *ob, int cfra)
 
 	if (!cache) {
 		cache = MEM_callocN(sizeof(*cache), __func__);
-		BLI_ghash_insert(gpd->batch_cache_data, ob->id.name, cache);
+		BLI_ghash_insert(gpd->runtime.batch_cache_data, ob->id.name, cache);
 	}
 	else {
 		memset(cache, 0, sizeof(*cache));
@@ -247,7 +247,7 @@ GpencilBatchCache *gpencil_batch_cache_get(Object *ob, int cfra)
 		GpencilBatchCache *cache = gpencil_batch_get_element(ob);
 		if (cache) {
 			gpencil_batch_cache_clear(cache, gpd);
-			BLI_ghash_remove(gpd->batch_cache_data, ob->id.name, NULL, NULL);
+			BLI_ghash_remove(gpd->runtime.batch_cache_data, ob->id.name, NULL, NULL);
 		}
 		gpencil_batch_cache_init(ob, cfra);
 	}
@@ -258,11 +258,11 @@ GpencilBatchCache *gpencil_batch_cache_get(Object *ob, int cfra)
 /* set cache as dirty */
 void DRW_gpencil_batch_cache_dirty(bGPdata *gpd)
 {
-	if (gpd->batch_cache_data == NULL) {
+	if (gpd->runtime.batch_cache_data == NULL) {
 		return;
 	}
 
-	GHashIterator *ihash = BLI_ghashIterator_new(gpd->batch_cache_data);
+	GHashIterator *ihash = BLI_ghashIterator_new(gpd->runtime.batch_cache_data);
 	while (!BLI_ghashIterator_done(ihash)) {
 		GpencilBatchCache *cache = (GpencilBatchCache *)BLI_ghashIterator_getValue(ihash);
 		if (cache) {
@@ -276,11 +276,11 @@ void DRW_gpencil_batch_cache_dirty(bGPdata *gpd)
 /* free batch cache */
 void DRW_gpencil_batch_cache_free(bGPdata *gpd)
 {
-	if (gpd->batch_cache_data == NULL) {
+	if (gpd->runtime.batch_cache_data == NULL) {
 		return;
 	}
 
-	GHashIterator *ihash = BLI_ghashIterator_new(gpd->batch_cache_data);
+	GHashIterator *ihash = BLI_ghashIterator_new(gpd->runtime.batch_cache_data);
 	while (!BLI_ghashIterator_done(ihash)) {
 		GpencilBatchCache *cache = (GpencilBatchCache *)BLI_ghashIterator_getValue(ihash);
 		if (cache) {
@@ -291,8 +291,8 @@ void DRW_gpencil_batch_cache_free(bGPdata *gpd)
 	BLI_ghashIterator_free(ihash);
 
 	/* free hash */
-	if (gpd->batch_cache_data) {
-		BLI_ghash_free(gpd->batch_cache_data, NULL, NULL);
-		gpd->batch_cache_data = NULL;
+	if (gpd->runtime.batch_cache_data) {
+		BLI_ghash_free(gpd->runtime.batch_cache_data, NULL, NULL);
+		gpd->runtime.batch_cache_data = NULL;
 	}
 }
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 30f5019b5ba..ee7c4c96d11 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -327,6 +327,10 @@ typedef enum eGPDlayer_OnionFlag {
 /* GP Datablock */
 
 /* Grease-Pencil Annotations - 'DataBlock' */
+typedef struct bGPdata_runtime {
+	/* Runtime Only - Drawing Manager cache */
+	struct GHash *batch_cache_data;
+} bGPdata_runtime;
 typedef struct bGPdata {
 	ID id;					/* Grease Pencil data is a datablock */
 	struct AnimData *adt;   /* animation data - for animating draw settings */
@@ -353,10 +357,8 @@ typedef struct bGPdata {
 	/* Palettes */
 	ListBase palettes DNA_DEPRECATED;    /* list of bGPDpalette's   - Deprecated (2.78 - 2.79 only) */
 	
-	/* Runtime Only - Drawing Manager cache */
-	struct GHash *batch_cache_data;
-	
-	
+	bGPdata_runtime runtime;
+
 	/* 3D Viewport/Appearance Settings */
 	float pixfactor;            /* factor to define pixel size conversion */
 	float line_color[4];        /* color for edit line */



More information about the Bf-blender-cvs mailing list