[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41311] branches/bmesh/blender: svn merge -r41287:41310 ^/trunk/blender note, mirror modifier had slow, per vertex name flipping, replaced with flip_map from trunk

Campbell Barton ideasman42 at gmail.com
Thu Oct 27 11:42:04 CEST 2011


Revision: 41311
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41311
Author:   campbellbarton
Date:     2011-10-27 09:42:03 +0000 (Thu, 27 Oct 2011)
Log Message:
-----------
svn merge -r41287:41310 ^/trunk/blender note, mirror modifier had slow, per vertex name flipping, replaced with flip_map from trunk

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41287

Modified Paths:
--------------
    branches/bmesh/blender/build_files/cmake/macros.cmake
    branches/bmesh/blender/intern/opennl/CMakeLists.txt
    branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_image.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_library.h
    branches/bmesh/blender/source/blender/blenkernel/intern/action.c
    branches/bmesh/blender/source/blender/blenkernel/intern/armature.c
    branches/bmesh/blender/source/blender/blenkernel/intern/blender.c
    branches/bmesh/blender/source/blender/blenkernel/intern/brush.c
    branches/bmesh/blender/source/blender/blenkernel/intern/curve.c
    branches/bmesh/blender/source/blender/blenkernel/intern/deform.c
    branches/bmesh/blender/source/blender/blenkernel/intern/image.c
    branches/bmesh/blender/source/blender/blenkernel/intern/key.c
    branches/bmesh/blender/source/blender/blenkernel/intern/lattice.c
    branches/bmesh/blender/source/blender/blenkernel/intern/library.c
    branches/bmesh/blender/source/blender/blenkernel/intern/material.c
    branches/bmesh/blender/source/blender/blenkernel/intern/mball.c
    branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/node.c
    branches/bmesh/blender/source/blender/blenkernel/intern/object.c
    branches/bmesh/blender/source/blender/blenkernel/intern/particle.c
    branches/bmesh/blender/source/blender/blenkernel/intern/particle_system.c
    branches/bmesh/blender/source/blender/blenkernel/intern/speaker.c
    branches/bmesh/blender/source/blender/blenkernel/intern/texture.c
    branches/bmesh/blender/source/blender/blenkernel/intern/world.c
    branches/bmesh/blender/source/blender/blenlib/BLI_bpath.h
    branches/bmesh/blender/source/blender/blenlib/intern/bpath.c
    branches/bmesh/blender/source/blender/blenloader/intern/readfile.c
    branches/bmesh/blender/source/blender/blenpluginapi/intern/pluginapi.c
    branches/bmesh/blender/source/blender/editors/animation/keyframes_general.c
    branches/bmesh/blender/source/blender/editors/gpencil/gpencil_paint.c
    branches/bmesh/blender/source/blender/editors/interface/interface_icons.c
    branches/bmesh/blender/source/blender/editors/object/object_vgroup.c
    branches/bmesh/blender/source/blender/editors/render/render_internal.c
    branches/bmesh/blender/source/blender/editors/space_action/action_edit.c
    branches/bmesh/blender/source/blender/editors/space_file/filelist.c
    branches/bmesh/blender/source/blender/editors/space_graph/graph_edit.c
    branches/bmesh/blender/source/blender/editors/space_info/info_ops.c
    branches/bmesh/blender/source/blender/editors/space_outliner/outliner_draw.c
    branches/bmesh/blender/source/blender/editors/space_outliner/outliner_tools.c
    branches/bmesh/blender/source/blender/editors/space_sequencer/sequencer_draw.c
    branches/bmesh/blender/source/blender/editors/space_view3d/view3d_buttons.c
    branches/bmesh/blender/source/blender/imbuf/IMB_imbuf.h
    branches/bmesh/blender/source/blender/imbuf/intern/allocimbuf.c
    branches/bmesh/blender/source/blender/imbuf/intern/anim_movie.c
    branches/bmesh/blender/source/blender/imbuf/intern/readimage.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_action.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_context.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_fluidsim.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_key.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_scene.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_sequencer.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_wm.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_mirror.c
    branches/bmesh/blender/source/blender/python/intern/bpy.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_event_system.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_operators.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_window.c

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/
    branches/bmesh/blender/source/blender/editors/space_outliner/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender:39992-41287
   + /trunk/blender:39992-41310

Modified: branches/bmesh/blender/build_files/cmake/macros.cmake
===================================================================
--- branches/bmesh/blender/build_files/cmake/macros.cmake	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/build_files/cmake/macros.cmake	2011-10-27 09:42:03 UTC (rev 41311)
@@ -377,7 +377,7 @@
 # needs to be removed for some external libs which we dont maintain.
 
 # utility macro
-macro(remove_flag
+macro(remove_cc_flag
 	flag)
 
 	string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
@@ -394,16 +394,27 @@
 
 endmacro()
 
+macro(add_cc_flag
+	flag)
+
+	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+endmacro()
+
 macro(remove_strict_flags)
 
 	if(CMAKE_COMPILER_IS_GNUCC)
-		remove_flag("-Wstrict-prototypes")
-		remove_flag("-Wunused-parameter")
-		remove_flag("-Wwrite-strings")
-		remove_flag("-Wundef")
-		remove_flag("-Wshadow")
-		remove_flag("-Werror=[^ ]+")
-		remove_flag("-Werror")
+		remove_cc_flag("-Wstrict-prototypes")
+		remove_cc_flag("-Wunused-parameter")
+		remove_cc_flag("-Wwrite-strings")
+		remove_cc_flag("-Wundef")
+		remove_cc_flag("-Wshadow")
+		remove_cc_flag("-Werror=[^ ]+")
+		remove_cc_flag("-Werror")
+
+		# negate flags implied by '-Wall'
+		add_cc_flag("-Wno-unused-parameter")
+		add_cc_flag("-Wno-unused-but-set-variable")
 	endif()
 
 	if(MSVC)

Modified: branches/bmesh/blender/intern/opennl/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/opennl/CMakeLists.txt	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/intern/opennl/CMakeLists.txt	2011-10-27 09:42:03 UTC (rev 41311)
@@ -28,7 +28,7 @@
 
 # remove debug flag here since this is not a blender maintained library
 # and debug gives a lot of prints on UV unwrapping. developers can enable if they need to.
-remove_flag("-DDEBUG")
+remove_cc_flag("-DDEBUG")
 
 
 # quiet compiler warnings about undefined defines


Property changes on: branches/bmesh/blender/release
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender/release:31524-41287
   + /trunk/blender/release:31524-41310

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h	2011-10-27 09:42:03 UTC (rev 41311)
@@ -44,7 +44,7 @@
 struct bDeformGroup *defgroup_duplicate(struct bDeformGroup *ingroup);
 struct bDeformGroup *defgroup_find_name(struct Object *ob, const char *name);
 int					 defgroup_find_index(struct Object *ob, struct bDeformGroup *dg);
-int					*defgroup_flip_map(struct Object *ob, int use_default);
+int					*defgroup_flip_map(struct Object *ob, int *flip_map_len, int use_default);
 int					 defgroup_flip_index(struct Object *ob, int index, int use_default);
 int					 defgroup_name_index(struct Object *ob, const char *name);
 void				 defgroup_unique_name(struct bDeformGroup *dg, struct Object *ob);
@@ -57,9 +57,9 @@
 
 void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
 void defvert_sync(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int use_verify);
-void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, const int *flip_map, int use_verify);
+void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, const int *flip_map, const int flip_map_len, int use_verify);
 void defvert_remap (struct MDeformVert *dvert, int *map);
-void defvert_flip(struct MDeformVert *dvert, const int *flip_map);
+void defvert_flip(struct MDeformVert *dvert, const int *flip_map, const int flip_map_len);
 void defvert_normalize(struct MDeformVert *dvert);
 
 /* utility function, note that 32 chars is the maximum string length since its only

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_image.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_image.h	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_image.h	2011-10-27 09:42:03 UTC (rev 41311)
@@ -61,7 +61,9 @@
 struct anim *openanim(char * name, int flags, int streamindex);
 
 void	image_de_interlace(struct Image *ima, int odd);
-	
+
+void	make_local_image(struct Image *ima);
+
 void	tag_image_time(struct Image *ima);
 void	free_old_images(void);
 

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_library.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_library.h	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_library.h	2011-10-27 09:42:03 UTC (rev 41311)
@@ -59,6 +59,7 @@
 int id_unlink(struct ID *id, int test);
 
 int new_id(struct ListBase *lb, struct ID *id, const char *name);
+void id_clear_lib_data(struct Main *bmain, struct ID *id);
 
 struct ListBase *which_libbase(struct Main *mainlib, short type);
 

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/action.c	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/action.c	2011-10-27 09:42:03 UTC (rev 41311)
@@ -43,6 +43,7 @@
 #include "DNA_object_types.h"
 
 #include "BLI_blenlib.h"
+#include "BLI_bpath.h"
 #include "BLI_math.h"
 #include "BLI_utildefines.h"
 #include "BLI_ghash.h"
@@ -94,8 +95,8 @@
 	bAction *act;    /* original action */
 	bAction *actn;   /* new action */
 	
-	int lib;         /* some action users were libraries */
-	int local;       /* some action users were not libraries */
+	int is_lib;         /* some action users were libraries */
+	int is_local;       /* some action users were not libraries */
 } tMakeLocalActionContext;
 
 /* helper function for make_local_action() - local/lib init step */
@@ -104,10 +105,8 @@
 	tMakeLocalActionContext *mlac = (tMakeLocalActionContext *)mlac_ptr;
 	
 	if (adt->action == mlac->act) {
-		if (id->lib) 
-			mlac->lib = 1;
-		else 
-			mlac->local = 1;
+		if (id->lib) mlac->is_lib= TRUE;
+		else mlac->is_local= TRUE;
 	}
 }
 
@@ -129,7 +128,7 @@
 // does copy_fcurve...
 void make_local_action(bAction *act)
 {
-	tMakeLocalActionContext mlac = {act, NULL, 0, 0};
+	tMakeLocalActionContext mlac = {act, NULL, FALSE, FALSE};
 	Main *bmain= G.main;
 	
 	if (act->id.lib==NULL) 
@@ -137,24 +136,24 @@
 	
 	// XXX: double-check this; it used to be just single-user check, but that was when fake-users were still default
 	if ((act->id.flag & LIB_FAKEUSER) && (act->id.us<=1)) {
-		act->id.lib= NULL;
-		act->id.flag= LIB_LOCAL;
-		new_id(&bmain->action, (ID *)act, NULL);
+		id_clear_lib_data(bmain, &act->id);
 		return;
 	}
 	
 	BKE_animdata_main_cb(bmain, make_localact_init_cb, &mlac);
 	
-	if (mlac.local && mlac.lib==0) {
-		act->id.lib= NULL;
-		act->id.flag= LIB_LOCAL;
-		//make_local_action_channels(act);
-		new_id(&bmain->action, (ID *)act, NULL);
+	if (mlac.is_local && mlac.is_lib==FALSE) {
+		id_clear_lib_data(bmain, &act->id);
 	}
-	else if (mlac.local && mlac.lib) {
+	else if (mlac.is_local && mlac.is_lib) {
+		char *bpath_user_data[2]= {bmain->name, act->id.lib->filepath};
+
 		mlac.actn= copy_action(act);
 		mlac.actn->id.us= 0;
-		
+
+		/* Remap paths of new ID using old library as base. */
+		bpath_traverse_id(bmain, &mlac.actn->id, bpath_relocate_visitor, 0, bpath_user_data);
+
 		BKE_animdata_main_cb(bmain, make_localact_apply_cb, &mlac);
 	}
 }

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/armature.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/armature.c	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/armature.c	2011-10-27 09:42:03 UTC (rev 41311)
@@ -37,6 +37,7 @@
 
 #include "MEM_guardedalloc.h"
 
+#include "BLI_bpath.h"
 #include "BLI_math.h"
 #include "BLI_blenlib.h"
 #include "BLI_utildefines.h"
@@ -136,33 +137,33 @@
 void make_local_armature(bArmature *arm)
 {
 	Main *bmain= G.main;
-	int local=0, lib=0;
+	int is_local= FALSE, is_lib= FALSE;
 	Object *ob;
 
 	if (arm->id.lib==NULL) return;
 	if (arm->id.us==1) {
-		arm->id.lib= NULL;
-		arm->id.flag= LIB_LOCAL;
-		new_id(&bmain->armature, (ID*)arm, NULL);
+		id_clear_lib_data(bmain, &arm->id);
 		return;
 	}
 
-	for(ob= bmain->object.first; ob && ELEM(0, lib, local); ob= ob->id.next) {
+	for(ob= bmain->object.first; ob && ELEM(0, is_lib, is_local); ob= ob->id.next) {
 		if(ob->data == arm) {
-			if(ob->id.lib) lib= 1;
-			else local= 1;
+			if(ob->id.lib) is_lib= TRUE;
+			else is_local= TRUE;
 		}
 	}
 
-	if(local && lib==0) {
-		arm->id.lib= NULL;
-		arm->id.flag= LIB_LOCAL;
-		new_id(&bmain->armature, (ID *)arm, NULL);
+	if(is_local && is_lib == FALSE) {
+		id_clear_lib_data(bmain, &arm->id);
 	}
-	else if(local && lib) {
+	else if(is_local && is_lib) {
+		char *bpath_user_data[2]= {bmain->name, arm->id.lib->filepath};
 		bArmature *armn= copy_armature(arm);
 		armn->id.us= 0;
-		
+
+		/* Remap paths of new ID using old library as base. */
+		bpath_traverse_id(bmain, &armn->id, bpath_relocate_visitor, 0, bpath_user_data);
+
 		for(ob= bmain->object.first; ob; ob= ob->id.next) {
 			if(ob->data == arm) {
 				if(ob->id.lib==NULL) {

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/blender.c	2011-10-27 07:54:32 UTC (rev 41310)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/blender.c	2011-10-27 09:42:03 UTC (rev 41311)
@@ -161,23 +161,20 @@
 	G.main= NULL;
 }
 
+static int clean_paths_visit_cb(void *UNUSED(userdata), char *path_dst, const char *path_src)
+{
+	strcpy(path_dst, path_src);
+	BLI_clean(path_dst);
+	return (strcmp(path_dst, path_src) == 0) ? FALSE : TRUE;
+}
+
 /* make sure path names are correct for OS */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list