[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