[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