[Bf-blender-cvs] [3f26e92d0fd] greasepencil-object: Remove CACHE_REUSE

Antonio Vazquez noreply at git.blender.org
Wed Jul 26 16:30:24 CEST 2017


Commit: 3f26e92d0fd1de49e8fd648296d57a62ab67c688
Author: Antonio Vazquez
Date:   Wed Jul 26 13:55:13 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB3f26e92d0fd1de49e8fd648296d57a62ab67c688

Remove CACHE_REUSE

If we use a different area by object, the cache never can be reused

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

M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/makesdna/DNA_gpencil_types.h

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index b73fdcdf4a9..be01981f7eb 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -119,10 +119,6 @@ static bool gpencil_batch_cache_valid(Object *ob, bGPdata *gpd, int cfra)
 		return false;
 	}
 
-	if (gpd->flag & GP_DATA_CACHE_REUSE) {
-		return true;
-	}
-
 	if (gpd->flag & GP_DATA_CACHE_IS_DIRTY) {
 		return false;
 	}
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 5ee0f04e4f5..ddd4e5488cd 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -238,36 +238,13 @@ static void GPENCIL_cache_finish(void *vedata)
 	Scene *scene = draw_ctx->scene;
 	ToolSettings *ts = scene->toolsettings;
 
-	stl->g_data->gpd_in_cache = BLI_ghash_str_new("GP datablock");
-
 	/* Draw all pending objects */
 	if (stl->g_data->gp_cache_used > 0) {
 		for (int i = 0; i < stl->g_data->gp_cache_used; ++i) {
 			Object *ob = stl->g_data->gp_object_cache[i].ob;
 			/* save init shading group */
 			stl->g_data->gp_object_cache[i].init_grp = stl->storage->shgroup_id;
-			
-#if 0
-			/* if use modifiers in several objects, always dirty */
-			if ((ob->modifiers.first) && (((ID *)ob->gpd)->us > 1)) {
-				ob->gpd->flag |= GP_DATA_CACHE_IS_DIRTY;
-				ob->gpd->flag &= ~GP_DATA_CACHE_REUSE;
-			}
-			else {
-				/* add to hash to avoid duplicate geometry cache*/
-				if (!BLI_ghash_lookup(stl->g_data->gpd_in_cache, ob->gpd->id.name)) {
-					BLI_ghash_insert(stl->g_data->gpd_in_cache, ob->gpd->id.name, ob->gpd);
-					if (ob->gpd->flag & (GP_DATA_STROKE_EDITMODE | GP_DATA_STROKE_SCULPTMODE)) {
-						ob->gpd->flag |= GP_DATA_CACHE_IS_DIRTY;
-						ob->gpd->flag &= ~GP_DATA_CACHE_REUSE;
-					}
-				}
-				else {
-					ob->gpd->flag &= ~GP_DATA_CACHE_IS_DIRTY;
-					ob->gpd->flag |= GP_DATA_CACHE_REUSE;
-				}
-			}
-#endif
+
 			/* fill shading groups */
 			DRW_gpencil_populate_datablock(&e_data, vedata, scene, ob, ts, ob->gpd);
 
@@ -279,13 +256,6 @@ static void GPENCIL_cache_finish(void *vedata)
 			}
 		}
 	}
-
-	/* free hash buffer */
-	if (stl->g_data->gpd_in_cache) {
-		BLI_ghash_free(stl->g_data->gpd_in_cache, NULL, NULL);
-		stl->g_data->gpd_in_cache = NULL;
-	}
-	MEM_SAFE_FREE(stl->g_data->gpd_in_cache);
 }
 
 /* helper function to sort inverse gpencil objects using qsort */
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 8e38f4ee762..59e85903140 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -117,8 +117,6 @@ typedef struct g_data {
 	int gp_cache_used;
 	int gp_cache_size;
 	struct tGPencilObjectCache *gp_object_cache;
-
-	struct GHash *gpd_in_cache;
 } g_data; /* Transient data */
 
 typedef struct GPENCIL_e_data {
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 81bb207ea18..5813419868b 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -375,9 +375,6 @@ typedef enum eGPdata_Flag {
 	GP_DATA_STROKE_SCULPTMODE = (1 << 13),
 	/* keep stroke thickness unchanged when zoom change */
 	GP_DATA_STROKE_KEEPTHICKNESS = (1 << 14),
-	/* Batch drawing cache can be reused */
-	GP_DATA_CACHE_REUSE = (1 << 15)
-
 } eGPdata_Flag;
 
 #endif /*  __DNA_GPENCIL_TYPES_H__ */




More information about the Bf-blender-cvs mailing list