[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27896] trunk/blender/source/blender: svn merge https://svn.blender.org/svnroot/bf-blender/branches/ render25 -r27875:27895

Campbell Barton ideasman42 at gmail.com
Wed Mar 31 09:22:18 CEST 2010


Revision: 27896
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27896
Author:   campbellbarton
Date:     2010-03-31 09:22:18 +0200 (Wed, 31 Mar 2010)

Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r27875:27895

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/include/ED_mesh.h
    trunk/blender/source/blender/editors/mesh/editmesh.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
    trunk/blender/source/blender/editors/util/ed_util.c
    trunk/blender/source/blender/makesdna/DNA_modifier_types.h
    trunk/blender/source/blender/makesrna/intern/rna_curve.c

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -1236,11 +1236,17 @@
 
 #define LIBTAG(a)	if(a && a->id.lib) {a->id.flag &=~LIB_INDIRECT; a->id.flag |= LIB_EXTERN;}
 
-static void lib_indirect_test_id(ID *id)
+static void lib_indirect_test_id(ID *id, Library *lib)
 {
 	
-	if(id->lib)
+	if(id->lib) {
+		/* datablocks that were indirectly related are now direct links
+		 * without this, appending data that has a link to other data will fail to write */
+		if(lib && id->lib->parent == lib) {
+			id_lib_extern(id);
+		}
 		return;
+	}
 	
 	if(GS(id->name)==ID_OB) {		
 		Object *ob= (Object *)id;
@@ -1336,7 +1342,7 @@
 	a= set_listbasepointers(G.main, lbarray);
 	while(a--) {
 		for(id= lbarray[a]->first; id; id=id->next)
-			lib_indirect_test_id(id);
+			lib_indirect_test_id(id, lib);
 	}
 }
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -12130,8 +12130,8 @@
 				if(fd==NULL) {
 
 					/* printf and reports for now... its important users know this */
-					printf("read library: %s\n", mainptr->curlib->name);
-					BKE_reportf(basefd->reports, RPT_INFO, "read library: '%s'\n", mainptr->curlib->name);
+					printf("read library: '%s', '%s'\n", mainptr->curlib->filename, mainptr->curlib->name);
+					BKE_reportf(basefd->reports, RPT_INFO, "read library:  '%s', '%s'\n", mainptr->curlib->filename, mainptr->curlib->name);
 
 					fd= blo_openblenderfile(mainptr->curlib->filename, basefd->reports);
 

Modified: trunk/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mesh.h	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/include/ED_mesh.h	2010-03-31 07:22:18 UTC (rev 27896)
@@ -78,6 +78,8 @@
 /* meshtools.c */
 
 intptr_t	mesh_octree_table(struct Object *ob, struct EditMesh *em, float *co, char mode);
+long		mesh_mirrtopo_table(struct Object *ob, char mode);
+
 struct EditVert   *editmesh_get_x_mirror_vert(struct Object *ob, struct EditMesh *em, struct EditVert *eve, float *co, int index);
 int			mesh_get_x_mirror_vert(struct Object *ob, int index);
 int			*mesh_get_x_mirror_faces(struct Object *ob, struct EditMesh *em);

Modified: trunk/blender/source/blender/editors/mesh/editmesh.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/mesh/editmesh.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -563,7 +563,8 @@
 	em->allfaces= em->curface= NULL;
 	
 	mesh_octree_table(NULL, NULL, NULL, 'e');
-	
+	mesh_mirrtopo_table(NULL, 'e');
+
 	em->totvert= em->totedge= em->totface= 0;
 
 // XXX	if(em->retopo_paint_data) retopo_free_paint_data(em->retopo_paint_data);

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -261,8 +261,10 @@
 			me->edit_mesh= NULL;
 		}
 		
-		if(obedit->restore_mode & OB_MODE_WEIGHT_PAINT)
-			mesh_octree_table(obedit, NULL, NULL, 'e');
+		if(obedit->restore_mode & OB_MODE_WEIGHT_PAINT) {
+			mesh_octree_table(NULL, NULL, NULL, 'e');
+			mesh_mirrtopo_table(NULL, 'e');
+		}
 	}
 	else if (obedit->type==OB_ARMATURE) {	
 		ED_armature_from_edit(obedit);

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -1111,7 +1111,8 @@
 		}
 	}
 	else {
-		mesh_octree_table(ob, NULL, NULL, 'e');
+		mesh_octree_table(NULL, NULL, NULL, 'e');
+		mesh_mirrtopo_table(NULL, 'e');
 	}
 	
 	WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene);

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -374,6 +374,24 @@
 			}
 		}
 		SEQ_END
+		
+		{
+			SpaceSeq *sseq= CTX_wm_space_seq(C);
+			if (sseq && sseq->flag & SEQ_MARKER_TRANS) {
+				TimeMarker *marker;
+
+				for (marker= scene->markers.first; marker; marker= marker->next) {
+					if(	((x < CFRA) && marker->frame < CFRA) ||
+						((x >= CFRA) && marker->frame >= CFRA)
+					) {
+						marker->flag |= SELECT;
+					}
+					else {
+						marker->flag &= ~SELECT;
+					}
+				}
+			}
+		}
 	} else {
 		// seq= find_nearest_seq(scene, v2d, &hand, mval);
 

Modified: trunk/blender/source/blender/editors/util/ed_util.c
===================================================================
--- trunk/blender/source/blender/editors/util/ed_util.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/editors/util/ed_util.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -64,7 +64,8 @@
 			Object *ob= sce->obedit;
 		
 			/* global in meshtools... */
-			mesh_octree_table(ob, NULL, NULL, 'e');
+			mesh_octree_table(NULL, NULL, NULL, 'e');
+			mesh_mirrtopo_table(NULL, 'e');
 			
 			if(ob) {
 				if(ob->type==OB_MESH) {
@@ -91,8 +92,10 @@
 			Object *ob= sce->basact->object;
 			
 			/* if weight-painting is on, free mesh octree data */
-			if(ob->mode & OB_MODE_WEIGHT_PAINT)
-				mesh_octree_table(ob, NULL, NULL, 'e');
+			if(ob->mode & OB_MODE_WEIGHT_PAINT) {
+				mesh_octree_table(NULL, NULL, NULL, 'e');
+				mesh_mirrtopo_table(NULL, 'e');
+			}
 		}
 	}
 	

Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2010-03-31 07:22:18 UTC (rev 27896)
@@ -687,7 +687,6 @@
 	float crease_outer;
 	float crease_rim;
 	int flag;
-	char pad[4];
 } SolidifyModifierData;
 
 #define MOD_SOLIDIFY_RIM			(1<<0)

Modified: trunk/blender/source/blender/makesrna/intern/rna_curve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-03-31 07:13:54 UTC (rev 27895)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-03-31 07:22:18 UTC (rev 27896)
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 
 #include "RNA_define.h"
+#include "RNA_types.h"
 
 #include "rna_internal.h"
 
@@ -216,58 +217,36 @@
 	rna_Curve_update_data(bmain, scene, ptr);
 }
 
-static PointerRNA rna_Curve_bevelObject_get(PointerRNA *ptr)
+static void rna_Curve_update_taper(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
 	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= cu->bevobj;
+	Object *ob= cu->taperobj;
 
-	if(ob)
-		return rna_pointer_inherit_refine(ptr, &RNA_Object, ob);
-
-	return rna_pointer_inherit_refine(ptr, NULL, NULL);
-}
-
-static void rna_Curve_bevelObject_set(PointerRNA *ptr, PointerRNA value)
-{
-	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= (Object*)value.data;
-
 	if (ob) {
-		/* if bevel object has got the save curve, as object, for which it's */
-		/* set as bevobj, there could be infinity loop in displist calculation */
-		if (ob->type == OB_CURVE && ob->data != cu) {
-			cu->bevobj = ob;
+		/* if taper object has got the save curve, as object, for which it's */
+		/* set as taperobj, there could be infinity loop in displist calculation */
+		if (ob->type != OB_CURVE || ob->data == cu) {
+			cu->taperobj = NULL;
 		}
-	} else {
-		cu->bevobj = NULL;
 	}
-}
 
-static PointerRNA rna_Curve_taperObject_get(PointerRNA *ptr)
-{
-	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= cu->taperobj;
-
-	if(ob)
-		return rna_pointer_inherit_refine(ptr, &RNA_Object, ob);
-
-	return rna_pointer_inherit_refine(ptr, NULL, NULL);
+	rna_Curve_update_deps(bmain, scene, ptr);
 }
 
-static void rna_Curve_taperObject_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Curve_update_bevel(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
 	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= (Object*)value.data;
+	Object *ob= cu->bevobj;
 
 	if (ob) {
-		/* if taper object has got the save curve, as object, for which it's */
+		/* if bevel object has got the save curve, as object, for which it's */
 		/* set as bevobj, there could be infinity loop in displist calculation */
-		if (ob->type == OB_CURVE && ob->data != cu) {
-			cu->taperobj = ob;
+		if (ob->type != OB_CURVE || ob->data == cu) {
+			cu->bevobj = NULL;
 		}
-	} else {
-		cu->taperobj = NULL;
 	}
+
+	rna_Curve_update_deps(bmain, scene, ptr);
 }
 
 static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, PointerRNA *ptr)
@@ -1087,21 +1066,17 @@
 	
 	/* pointers */
 	prop= RNA_def_property(srna, "bevel_object", PROP_POINTER, PROP_NONE);
-	RNA_def_property_struct_type(prop, "Object");
 	RNA_def_property_pointer_sdna(prop, NULL, "bevobj");
 	RNA_def_property_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Bevel Object", "Curve object name that defines the bevel shape");
-	RNA_def_property_update(prop, 0, "rna_Curve_update_deps");
-	RNA_def_property_pointer_funcs(prop, "rna_Curve_bevelObject_get", "rna_Curve_bevelObject_set", NULL);
-
+	RNA_def_property_update(prop, 0, "rna_Curve_update_bevel");
+	
 	prop= RNA_def_property(srna, "taper_object", PROP_POINTER, PROP_NONE);
-	RNA_def_property_struct_type(prop, "Object");
 	RNA_def_property_pointer_sdna(prop, NULL, "taperobj");
 	RNA_def_property_flag(prop, PROP_EDITABLE);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list