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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to