[Bf-blender-cvs] [d05a85c] fracture_modifier: compile fixes due to merge

Martin Felke noreply at git.blender.org
Thu Aug 6 18:01:59 CEST 2015


Commit: d05a85cd7f2c4072e1605df1ab74493a2ea55496
Author: Martin Felke
Date:   Thu Aug 6 14:23:10 2015 +0200
Branches: fracture_modifier
https://developer.blender.org/rBd05a85cd7f2c4072e1605df1ab74493a2ea55496

compile fixes due to merge

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

M	build_files/cmake/macros.cmake
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/intern/fracture.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/rigidbody.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/editors/object/object_modifier.c
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/intern/MOD_fracture.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c
M	source/gameengine/Converter/KX_BlenderSceneConverter.cpp

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

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 77c6d81..a155723 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -689,10 +689,10 @@ function(SETUP_BLENDER_SORTED_LIBS)
 
 	if(WITH_VORO)
 		list(APPEND BLENDER_SORTED_LIBS extern_voro)
+	endif()
 		
 	if(WITH_OPENSUBDIV)
 		list(APPEND BLENDER_SORTED_LIBS bf_intern_opensubdiv)
-		
 	endif()
 
 	foreach(SORTLIB ${BLENDER_SORTED_LIBS})
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 3de59f5..1355b70 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -508,6 +508,8 @@ if(WITH_VORO)
 		../../../extern/voro++
 		../../../extern/carve
 	)
+endif()
+
 if(WITH_OPENSUBDIV)
 	add_definitions(-DWITH_OPENSUBDIV)
 	list(APPEND INC_SYS
diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index 70f8b4c..9cbf336 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -636,18 +636,18 @@ static void do_prepare_cells(FracMesh *fm, cell *cells, int expected_shards, int
 	    algorithm == MOD_FRACTURE_BISECT_FAST_FILL ||
 	    algorithm == MOD_FRACTURE_BOOLEAN_FRACTAL)
 	{
-		fill_vn_i(deletemap, fm->shard_count, 1);
+		copy_vn_i(deletemap, fm->shard_count, 1);
 	}
 
 	if (fm->last_shard_tree)
 	{
 		if (expected_shards <= fm->last_expected_shards)
 		{
-			fill_vn_i(deletemap, fm->shard_count, 1);
+			copy_vn_i(deletemap, fm->shard_count, 1);
 		}
 		else
 		{
-			fill_vn_i(skipmap, expected_shards, 1);
+			copy_vn_i(skipmap, expected_shards, 1);
 		}
 
 		for (i = 0; i < expected_shards; i++)
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 4ef0731..19aa5c3 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1054,43 +1054,11 @@ Object *BKE_object_add_only_object(Main *bmain, int type, const char *name)
 
 /* general add: to scene, with layer from area and default name */
 /* creates minimum required data, but without vertices etc. */
-Object *BKE_object_add_named(Main *bmain, Scene *scene, int type, char *custname)
+Object *BKE_object_add(Main *bmain, Scene *scene, int type, const char *name)
 {
 	Object *ob;
 	Base *base;
-	char name[MAX_ID_NAME];
 
-	if (custname) {
-		BLI_strncpy(name, custname, sizeof(name));
-		MEM_freeN(custname);
-	}
-	else {
-		BLI_strncpy(name, get_obdata_defname(type), sizeof(name));
-	}
-
-	ob = BKE_object_add_only_object(bmain, type, name);
-
-	ob->data = BKE_object_obdata_add_from_type(bmain, type);
-
-	ob->lay = scene->lay;
-
-	base = BKE_scene_base_add(scene, ob);
-	BKE_scene_base_deselect_all(scene);
-	BKE_scene_base_select(scene, base);
-	DAG_id_tag_update_ex(bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
-
-	return ob;
-}
-
-/* general add: to scene, with layer from area and default name */
-/* creates minimum required data, but without vertices etc. */
-Object *BKE_object_add(Main *bmain, Scene *scene, int type)
-{
-	Object *ob;
-	Base *base;
-	char name[MAX_ID_NAME];
-
-	BLI_strncpy(name, get_obdata_defname(type), sizeof(name));
 	ob = BKE_object_add_only_object(bmain, type, name);
 
 	ob->data = BKE_object_obdata_add_from_type(bmain, type, name);
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 152c310..1115355 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -1040,7 +1040,7 @@ void BKE_rigidbody_validate_sim_shard_shape(MeshIsland *mi, Object *ob, short re
 	float hull_margin = 0.0f;
 	bool can_embed = true;
 	bool has_volume;
-	float min[3], max[3];
+	float min[3], max[3], volume;
 	
 	/* sanity check */
 	if (rbo == NULL)
@@ -1149,6 +1149,7 @@ void BKE_rigidbody_validate_sim_shard_shape(MeshIsland *mi, Object *ob, short re
 				volume = size[0] * size[1] * size[2];
 			}
 			break;
+		}
 	}
 	/* assign new collision shape if creation was successful */
 	if (new_shape) {
@@ -1168,7 +1169,6 @@ void BKE_rigidbody_validate_sim_shard_shape(MeshIsland *mi, Object *ob, short re
 			volume = 0.0f;
 			break;
 #endif
-
 /* --------------------- */
 
 /* Create physics sim representation of shard given RigidBody settings
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index b9c6c51..75a735a 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5378,6 +5378,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb, Object *ob)
 		else if (md->type == eModifierType_Fracture) {
 			FractureModifierData *fmd = (FractureModifierData *)md;
 			load_fracture_modifier(fd, fmd, ob);
+		}
 		else if (md->type == eModifierType_CorrectiveSmooth) {
 			CorrectiveSmoothModifierData *csmd = (CorrectiveSmoothModifierData*)md;
 
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index bf9bfc9..817c884 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -658,6 +658,9 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 				fmd->cluster_constraint_type = RBC_TYPE_FIXED;
 				fmd->constraint_target = MOD_FRACTURE_CENTROID;
 				fmd->use_breaking = true;
+			}
+		}
+	}
 				
 	if (!MAIN_VERSION_ATLEAST(main, 274, 1)) {
 		/* particle systems need to be forced to redistribute for jitter mode fix */
@@ -686,7 +689,6 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 			Scene *scene;
 			for (scene = main->scene.first; scene; scene = scene->id.next) {
 				scene->gm.scehysteresis = 10;
->>>>>>> refs/remotes/origin/master
 			}
 		}
 	}
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 91efa91..9b7dcca 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1502,21 +1502,41 @@ static void write_defgroups(WriteData *wd, ListBase *defbase)
 }
 
 /* need a prototype of that here...*/
-static void write_customdata(WriteData *wd, ID *id, int count, CustomData *data, int partial_type, int partial_count);
+static void write_customdata(WriteData *wd, ID *id, int count, CustomData *data, CustomDataLayer* layers, int partial_type, int partial_count);
 
 static void write_shard(WriteData* wd, Shard* s)
 {
+	CustomDataLayer *vlayers = NULL, vlayers_buff[CD_TEMP_CHUNK_SIZE];
+	CustomDataLayer *llayers = NULL, llayers_buff[CD_TEMP_CHUNK_SIZE];
+	CustomDataLayer *players = NULL, players_buff[CD_TEMP_CHUNK_SIZE];
+
 	writestruct(wd, DATA, "Shard", 1, s);
 	writestruct(wd, DATA, "MVert", s->totvert, s->mvert);
 	writestruct(wd, DATA, "MPoly", s->totpoly, s->mpoly);
 	writestruct(wd, DATA, "MLoop", s->totloop, s->mloop);
 
-	write_customdata(wd, NULL, s->totvert, &s->vertData, -1, s->totvert);
-	write_customdata(wd, NULL, s->totloop, &s->loopData, -1, s->totloop);
-	write_customdata(wd, NULL, s->totpoly, &s->polyData, -1, s->totpoly);
+	CustomData_file_write_prepare(&s->vertData, &vlayers, vlayers_buff, ARRAY_SIZE(vlayers_buff));
+	CustomData_file_write_prepare(&s->loopData, &llayers, llayers_buff, ARRAY_SIZE(llayers_buff));
+	CustomData_file_write_prepare(&s->polyData, &players, players_buff, ARRAY_SIZE(players_buff));
+
+	write_customdata(wd, NULL, s->totvert, &s->vertData, vlayers, -1, s->totvert);
+	write_customdata(wd, NULL, s->totloop, &s->loopData, llayers, -1, s->totloop);
+	write_customdata(wd, NULL, s->totpoly, &s->polyData, players, -1, s->totpoly);
 
 	writedata(wd, DATA, sizeof(int)*s->neighbor_count, s->neighbor_ids);
 	writedata(wd, DATA, sizeof(int), s->cluster_colors);
+
+	if (vlayers && vlayers != vlayers_buff) {
+		MEM_freeN(vlayers);
+	}
+
+	if (llayers && llayers != llayers_buff) {
+		MEM_freeN(llayers);
+	}
+
+	if (players && players != players_buff) {
+		MEM_freeN(players);
+	}
 }
 
 static void write_meshIsland(WriteData* wd, MeshIsland* mi)
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 4994967..01278ca 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2667,7 +2667,7 @@ static Object* do_convert_meshisland_to_object(MeshIsland *mi, Scene* scene, Gro
 	else {
 #endif
 
-	ob_new = BKE_object_add_named(G.main, scene, OB_MESH, name);
+	ob_new = BKE_object_add(G.main, scene, OB_MESH, name);
 	/*set by BKE_object_add ! */
 	*base = scene->basact;
 
@@ -2721,7 +2721,7 @@ static Object* do_convert_meshisland_to_object(MeshIsland *mi, Scene* scene, Gro
 	me = (Mesh*)ob_new->data;
 	me->edit_btmesh = NULL;
 
-	DM_to_mesh(mi->physics_mesh, me, ob_new, CD_MASK_MESH);
+	DM_to_mesh(mi->physics_mesh, me, ob_new, CD_MASK_MESH, false);
 
 	/*set origin to centroid*/
 	copy_v3_v3(cent, mi->centroid);
@@ -2800,7 +2800,7 @@ static Object* do_convert_constraints(FractureModifierData *fmd, RigidBodyShardC
 	Object* ob1 = objs[index1];
 	Object* ob2 = objs[index2];
 	char *name = BLI_strdupcat(ob->id.name + 2, "_con");
-	Object* rbcon = BKE_object_add_named(G.main, scene, OB_EMPTY, name);
+	Object* rbcon = BKE_object_add(G.main, scene, OB_EMPTY, name);
 	int iterations;
 
 	*base = scene->basact;
@@ -3037,7 +3037,7 @@ static Object* do_convert_meshIsland(FractureModifierData* fmd, MeshIsland *mi,
 		return NULL;
 	}
 
-	ob_new = BKE_object_add_named(G.main, scene, OB_MESH, name);
+	ob_new = BKE_object_add(G.main, scene, OB_MESH, name);
 	*base = scene->basact;
 
 	//MEM_freeN((void*)name);
@@ -3057,7 +3057,7 @@ static Object* do_convert_meshIsland(FractureModifierData* fmd, MeshIsland *mi,
 	me = (Mesh*)ob_new->data;
 	me->edit_btmesh = NULL;
 
-	DM_to_mesh(mi->physics_mesh, me, ob_new, CD_MASK_MESH);
+	DM_to_mesh(mi->physics_mesh, me, ob_new, CD_MASK_MESH, false);
 
 	ED_rigidbody_object_add(scene, ob_new, RBO_TYPE_ACTIVE, NULL);
 	ob_new->rigidbody_object->flag |= RBO_FLAG_KINEMATIC;
@@ -3184,7 +3184,7 @@ static bool convert_modifier_to_keyframes(

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list