[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28958] branches/render25: Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r28949 :28957

Campbell Barton ideasman42 at gmail.com
Mon May 24 14:58:33 CEST 2010


Revision: 28958
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28958
Author:   campbellbarton
Date:     2010-05-24 14:58:33 +0200 (Mon, 24 May 2010)

Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r28949:28957

Modified Paths:
--------------
    branches/render25/SConstruct
    branches/render25/config/linuxcross-config.py
    branches/render25/config/win32-mingw-config.py
    branches/render25/release/scripts/modules/bpy_types.py
    branches/render25/release/scripts/op/uvcalc_follow_active.py
    branches/render25/source/blender/editors/object/object_edit.c
    branches/render25/source/blender/editors/render/render_internal.c
    branches/render25/source/blender/imbuf/intern/anim.c
    branches/render25/source/blender/makesrna/intern/rna_sensor.c
    branches/render25/source/blender/render/intern/source/pipeline.c
    branches/render25/source/creator/creator.c

Modified: branches/render25/SConstruct
===================================================================
--- branches/render25/SConstruct	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/SConstruct	2010-05-24 12:58:33 UTC (rev 28958)
@@ -572,7 +572,9 @@
 		dllsources += ['${BF_PNG_LIBPATH}/libpng.dll',
 				'${BF_ZLIB_LIBPATH}/zlib.dll']
 
-	dllsources += ['${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll']
+	# Used when linking to libtiff was dynamic
+	# keep it here until compilation on all platform would be ok
+	# dllsources += ['${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll']
 
 	if env['OURPLATFORM'] != 'linuxcross':
 		# pthreads library is already added

Modified: branches/render25/config/linuxcross-config.py
===================================================================
--- branches/render25/config/linuxcross-config.py	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/config/linuxcross-config.py	2010-05-24 12:58:33 UTC (rev 28958)
@@ -75,7 +75,7 @@
 BF_PNG_LIBPATH = '${BF_PNG}/lib'
 
 WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
+BF_TIFF = LIBDIR + '/gcc/tiff'
 BF_TIFF_INC = '${BF_TIFF}/include'
 BF_TIFF_LIB = 'libtiff'
 BF_TIFF_LIBPATH = '${BF_TIFF}/lib'

Modified: branches/render25/config/win32-mingw-config.py
===================================================================
--- branches/render25/config/win32-mingw-config.py	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/config/win32-mingw-config.py	2010-05-24 12:58:33 UTC (rev 28958)
@@ -74,7 +74,7 @@
 BF_PNG_LIBPATH = '${BF_PNG}/lib'
 
 WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
+BF_TIFF = LIBDIR + '/gcc/tiff'
 BF_TIFF_INC = '${BF_TIFF}/include'
 BF_TIFF_LIB = 'libtiff'
 BF_TIFF_LIBPATH = '${BF_TIFF}/lib'

Modified: branches/render25/release/scripts/modules/bpy_types.py
===================================================================
--- branches/render25/release/scripts/modules/bpy_types.py	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/release/scripts/modules/bpy_types.py	2010-05-24 12:58:33 UTC (rev 28958)
@@ -303,7 +303,7 @@
         edge_face_count_dict = self.edge_face_count_dict
         return [edge_face_count_dict.get(ed.key, 0) for ed in self.edges]
 
-    def edge_loops(self, faces=None, seams=()):
+    def edge_loops_from_faces(self, faces=None, seams=()):
         """
         Edge loops defined by faces
 
@@ -314,7 +314,7 @@
         return a list of edge key lists
         [ [(0,1), (4, 8), (3,8)], ...]
 
-        optionaly, seams are edge keys that will be removed
+        return a list of edge vertex index lists
         """
 
         OTHER_INDEX = 2, 3, 0, 1 # opposite face index
@@ -379,7 +379,72 @@
 
         return edge_loops
 
+    def edge_loops_from_edges(self, edges=None):
+        """
+        Edge loops defined by edges
 
+        Takes me.edges or a list of edges and returns the edge loops
+
+        return a list of vertex indices.
+        [ [1, 6, 7, 2], ...]
+
+        closed loops have matching start and end values.
+        """
+        line_polys = []
+        
+        # Get edges not used by a face
+        if edges is None:
+            edges = self.edges
+
+        if not hasattr(edges, "pop"):
+            edges = edges[:]
+
+        edge_dict= dict((ed.key, ed) for ed in self.edges if ed.selected)
+        
+        while edges:
+            current_edge= edges.pop()
+            vert_end, vert_start = current_edge.verts[:]
+            line_poly = [vert_start, vert_end]
+
+            ok = True
+            while ok:
+                ok = False
+                #for i, ed in enumerate(edges):
+                i = len(edges)
+                while i:
+                    i -= 1
+                    ed = edges[i]
+                    v1, v2 = ed.verts
+                    if v1 == vert_end:
+                        line_poly.append(v2)
+                        vert_end = line_poly[-1]
+                        ok = 1
+                        del edges[i]
+                        #break
+                    elif v2 == vert_end:
+                        line_poly.append(v1)
+                        vert_end = line_poly[-1]
+                        ok = 1
+                        del edges[i]
+                        #break
+                    elif v1 == vert_start:
+                        line_poly.insert(0, v2)
+                        vert_start = line_poly[0]
+                        ok = 1
+                        del edges[i]
+                        #break    
+                    elif v2 == vert_start:
+                        line_poly.insert(0, v1)
+                        vert_start = line_poly[0]
+                        ok = 1
+                        del edges[i]
+                        #break
+            line_polys.append(line_poly)
+
+        return line_polys
+
+
+
 class MeshEdge(StructRNA):
     __slots__ = ()
 

Modified: branches/render25/release/scripts/op/uvcalc_follow_active.py
===================================================================
--- branches/render25/release/scripts/op/uvcalc_follow_active.py	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/release/scripts/op/uvcalc_follow_active.py	2010-05-24 12:58:33 UTC (rev 28958)
@@ -180,7 +180,7 @@
     #SEAM = me.edges.seam
 
     if EXTEND_MODE == 'LENGTH':
-        edge_loops = me.edge_loops(face_sel, [ed.key for ed in me.edges if ed.seam])
+        edge_loops = me.edge_loops_from_faces(face_sel, [ed.key for ed in me.edges if ed.seam])
         me_verts = me.verts
         for loop in edge_loops:
             looplen = [0.0]

Modified: branches/render25/source/blender/editors/object/object_edit.c
===================================================================
--- branches/render25/source/blender/editors/object/object_edit.c	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/source/blender/editors/object/object_edit.c	2010-05-24 12:58:33 UTC (rev 28958)
@@ -2239,15 +2239,7 @@
 	else {
 		uiItemEnumO(menu, "OBJECT_OT_game_property_copy", NULL, 0, "type", 1);//REPLACE);
 		uiItemEnumO(menu, "OBJECT_OT_game_property_copy", NULL, 0, "type", 2);//MERGE);
-
-		//Menu Separator
-		uiItemL(menu, "Copy a Property", 0);
-
-		prop= ob->prop.first;
-		while(prop) {
-			uiItemStringO(menu, prop->name, 0, "OBJECT_OT_game_property_copy", "property", prop->name);
-			prop= prop->next;
-		}
+		uiItemMenuEnumO(menu, "OBJECT_OT_game_property_copy", "property", "Copy Property", 0);//COPY
 	}
 	uiPupMenuEnd(C, pup);
 
@@ -2255,15 +2247,51 @@
 	return OPERATOR_CANCELLED;
 }
 
+static EnumPropertyItem gameprops_items[]= {
+	{0, NULL, 0, NULL, NULL}};
+
+static EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *ptr, int *free)
+{	
+	Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+	EnumPropertyItem tmp = {0, "", 0, "", ""};
+	EnumPropertyItem *item= NULL;
+	bProperty *prop;
+	int a, totitem= 0;
+	
+	if(!ob)
+		return gameprops_items;
+
+	for(a=1, prop= ob->prop.first; prop; prop=prop->next, a++) {
+		tmp.value= a;
+		tmp.identifier= prop->name;
+		tmp.name= prop->name;
+		RNA_enum_item_add(&item, &totitem, &tmp);
+	}
+
+	RNA_enum_item_end(&item, &totitem);
+	*free= 1;
+
+	return item;
+}
+
 static int game_property_copy_exec(bContext *C, wmOperator *op)
 {
 	Object *ob=ED_object_active_context(C);
 	bProperty *prop;
-	char prop_name[32];
 
+	int tmp_int; //need an int pointer to pass for the RNA_enum_name
+	EnumPropertyItem *dyn_props= NULL;
+	const char *prop_name= NULL;
+
 	int type = RNA_enum_get(op->ptr, "type");
-	RNA_string_get(op->ptr, "property", prop_name);
+	int propid= RNA_enum_get(op->ptr, "property");
 
+	// recreate the dynamic enum with the properties	
+	dyn_props = gameprops_itemf(C, NULL, &tmp_int);
+
+	if (propid > 0)
+		RNA_enum_name(dyn_props, propid, &prop_name);
+
 	if ( type == 1 || type == 2 || type == 3) {
 		CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
 			if (ob != ob_iter) {
@@ -2279,7 +2307,7 @@
 		}
 		CTX_DATA_END;
 	}
-	else if(strlen(prop_name) > 0) { /* copy */
+	else if(prop_name) { /* copy */
 		prop = (bProperty *) BLI_findstring(&ob->prop, prop_name, offsetof(bProperty, name));
 		
 		if(prop) {
@@ -2296,6 +2324,7 @@
 
 void OBJECT_OT_game_property_copy(wmOperatorType *ot)
 {
+	PropertyRNA *prop;
 	/* identifiers */
 	ot->name= "Copy Game Property";
 	ot->idname= "OBJECT_OT_game_property_copy";
@@ -2309,7 +2338,9 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
 	RNA_def_enum(ot->srna, "type", game_properties_copy_types, 4, "Operation", "");
-	RNA_def_string(ot->srna, "property", "", 32, "Name", "Name of the property to copy");
+	prop=RNA_def_enum(ot->srna, "property", gameprops_items, 0, "Property", "Properties to copy");
+	RNA_def_enum_funcs(prop, gameprops_itemf);
+	ot->prop=prop;
 }
 
 /************************ Copy Logic Bricks ***********************/

Modified: branches/render25/source/blender/editors/render/render_internal.c
===================================================================
--- branches/render25/source/blender/editors/render/render_internal.c	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/source/blender/editors/render/render_internal.c	2010-05-24 12:58:33 UTC (rev 28958)
@@ -479,7 +479,7 @@
 		spos+= sprintf(spos, "Fra:%d  Ve:%d Fa:%d ", (scene->r.cfra), rs->totvert, rs->totface);
 		if(rs->tothalo) spos+= sprintf(spos, "Ha:%d ", rs->tothalo);
 		if(rs->totstrand) spos+= sprintf(spos, "St:%d ", rs->totstrand);
-		spos+= sprintf(spos, "La:%d Mem:%.2fM (%.2fM, combined peak %.2fM) ", rs->totlamp, megs_used_memory, mmap_used_memory, megs_peak_memory);
+		spos+= sprintf(spos, "La:%d Mem:%.2fM (%.2fM, peak %.2fM) ", rs->totlamp, megs_used_memory, mmap_used_memory, megs_peak_memory);
 
 		if(rs->curfield)
 			spos+= sprintf(spos, "Field %d ", rs->curfield);

Modified: branches/render25/source/blender/imbuf/intern/anim.c
===================================================================
--- branches/render25/source/blender/imbuf/intern/anim.c	2010-05-24 12:41:14 UTC (rev 28957)
+++ branches/render25/source/blender/imbuf/intern/anim.c	2010-05-24 12:58:33 UTC (rev 28958)
@@ -62,6 +62,7 @@
 							BLI_countlist BLI_stringdec */
 #include "DNA_userdef_types.h"
 #include "BKE_global.h"
+#include "BKE_depsgraph.h"
 
 #include "imbuf.h"
 

Modified: branches/render25/source/blender/makesrna/intern/rna_sensor.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/rna_sensor.c	2010-05-24 12:41:14 UTC (rev 28957)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list