[Bf-blender-cvs] [4732f90a4f1] master: GP: Use unique names for instance objects

Antonioya noreply at git.blender.org
Wed Feb 27 08:50:36 CET 2019


Commit: 4732f90a4f19954b56f2c2692e8be304359d1ec1
Author: Antonioya
Date:   Wed Feb 27 08:50:29 2019 +0100
Branches: master
https://developer.blender.org/rB4732f90a4f19954b56f2c2692e8be304359d1ec1

GP: Use unique names for instance objects

When instance objects linked, the name could not be unique.

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

M	source/blender/draw/engines/gpencil/gpencil_cache_utils.c
M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
index ab75299ca1e..f57ec5e974f 100644
--- a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
@@ -29,6 +29,7 @@
 #include "DNA_gpencil_types.h"
 #include "DNA_view3d_types.h"
 
+#include "BKE_library.h"
 #include "BKE_gpencil.h"
 
 #include "gpencil_engine.h"
@@ -68,7 +69,7 @@ tGPencilObjectCache *gpencil_object_cache_add(
 
 	cache_elem->ob = ob;
 	cache_elem->gpd = (bGPdata *)ob->data;
-	strcpy(cache_elem->name, ob->id.name);
+	cache_elem->name = BKE_id_to_unique_string_key(&ob->id);
 
 	copy_v3_v3(cache_elem->loc, ob->obmat[3]);
 	copy_m4_m4(cache_elem->obmat, ob->obmat);
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 49c0d5fe8b4..16d90b261bd 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -22,6 +22,7 @@
 #include "DRW_engine.h"
 #include "DRW_render.h"
 
+#include "BKE_library.h"
 #include "BKE_object.h"
 #include "BKE_shader_fx.h"
 
@@ -656,7 +657,8 @@ void GPENCIL_cache_finish(void *vedata)
 			cache_ob = &stl->g_data->gp_object_cache[i];
 			if (!cache_ob->is_dup_ob) {
 				ob = cache_ob->ob;
-				BLI_ghash_insert(gh_objects, ob->id.name, cache_ob->ob);
+				char *name = BKE_id_to_unique_string_key(&ob->id);
+				BLI_ghash_insert(gh_objects, name, cache_ob->ob);
 			}
 		}
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 2922f51e8cb..ed4915651f1 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -69,7 +69,7 @@ typedef struct tGPencilObjectCache {
 	struct Object *ob;
 	struct bGPdata *gpd;
 	int idx;  /*original index, can change after sort */
-	char name[66];
+	char *name;
 
 	/* effects */
 	bool has_fx;



More information about the Bf-blender-cvs mailing list