[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27890] branches/render25/source: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27866 :27889

Campbell Barton ideasman42 at gmail.com
Wed Mar 31 08:52:32 CEST 2010


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

Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27866:27889

Modified Paths:
--------------
    branches/render25/source/blender/blenkernel/intern/curve.c
    branches/render25/source/blender/blenkernel/intern/displist.c
    branches/render25/source/blender/blenkernel/intern/mesh.c
    branches/render25/source/blender/blenkernel/intern/modifier.c
    branches/render25/source/blender/blenkernel/intern/node.c
    branches/render25/source/blender/blenlib/BLI_math_color.h
    branches/render25/source/blender/blenlib/intern/math_color.c
    branches/render25/source/blender/collada/DocumentExporter.cpp
    branches/render25/source/blender/editors/include/ED_object.h
    branches/render25/source/blender/editors/interface/interface_handlers.c
    branches/render25/source/blender/editors/interface/interface_regions.c
    branches/render25/source/blender/editors/object/object_add.c
    branches/render25/source/blender/editors/object/object_constraint.c
    branches/render25/source/blender/editors/object/object_edit.c
    branches/render25/source/blender/editors/object/object_modifier.c
    branches/render25/source/blender/editors/screen/screen_ops.c
    branches/render25/source/blender/makesrna/intern/rna_curve.c
    branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
    branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
    branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c
    branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c
    branches/render25/source/blender/nodes/intern/CMP_util.c
    branches/render25/source/blender/nodes/intern/CMP_util.h
    branches/render25/source/blenderplayer/bad_level_call_stubs/stubs.c
    branches/render25/source/gameengine/PyDoc/how_to_build_win.txt

Property Changed:
----------------
    branches/render25/source/gameengine/PyDoc/how_to_build_win.txt

Modified: branches/render25/source/blender/blenkernel/intern/curve.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/curve.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenkernel/intern/curve.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -1227,49 +1227,47 @@
 	/* if a font object is being edited, then do nothing */
 // XXX	if( ob == obedit && ob->type == OB_FONT ) return;
 
-	if(cu->bevobj && cu->bevobj!=ob) {
-		if(cu->bevobj->type==OB_CURVE) {
-			bevcu= cu->bevobj->data;
-			if(bevcu->ext1==0.0 && bevcu->ext2==0.0) {
-				ListBase bevdisp= {NULL, NULL};
-				facx= cu->bevobj->size[0];
-				facy= cu->bevobj->size[1];
+	if(cu->bevobj) {
+		bevcu= cu->bevobj->data;
+		if(bevcu->ext1==0.0 && bevcu->ext2==0.0) {
+			ListBase bevdisp= {NULL, NULL};
+			facx= cu->bevobj->size[0];
+			facy= cu->bevobj->size[1];
 
-				if (forRender) {
-					makeDispListCurveTypes_forRender(scene, cu->bevobj, &bevdisp, NULL, 0);
-					dl= bevdisp.first;
-				} else {
+			if (forRender) {
+				makeDispListCurveTypes_forRender(scene, cu->bevobj, &bevdisp, NULL, 0);
+				dl= bevdisp.first;
+			} else {
+				dl= bevcu->disp.first;
+				if(dl==0) {
+					makeDispListCurveTypes(scene, cu->bevobj, 0);
 					dl= bevcu->disp.first;
-					if(dl==0) {
-						makeDispListCurveTypes(scene, cu->bevobj, 0);
-						dl= bevcu->disp.first;
-					}
 				}
+			}
 
-				while(dl) {
-					if ELEM(dl->type, DL_POLY, DL_SEGM) {
-						dlnew= MEM_mallocN(sizeof(DispList), "makebevelcurve1");					
-						*dlnew= *dl;
-						dlnew->verts= MEM_mallocN(3*sizeof(float)*dl->parts*dl->nr, "makebevelcurve1");
-						memcpy(dlnew->verts, dl->verts, 3*sizeof(float)*dl->parts*dl->nr);
-						
-						if(dlnew->type==DL_SEGM) dlnew->flag |= (DL_FRONT_CURVE|DL_BACK_CURVE);
-						
-						BLI_addtail(disp, dlnew);
-						fp= dlnew->verts;
-						nr= dlnew->parts*dlnew->nr;
-						while(nr--) {
-							fp[2]= fp[1]*facy;
-							fp[1]= -fp[0]*facx;
-							fp[0]= 0.0;
-							fp+= 3;
-						}
+			while(dl) {
+				if ELEM(dl->type, DL_POLY, DL_SEGM) {
+					dlnew= MEM_mallocN(sizeof(DispList), "makebevelcurve1");
+					*dlnew= *dl;
+					dlnew->verts= MEM_mallocN(3*sizeof(float)*dl->parts*dl->nr, "makebevelcurve1");
+					memcpy(dlnew->verts, dl->verts, 3*sizeof(float)*dl->parts*dl->nr);
+
+					if(dlnew->type==DL_SEGM) dlnew->flag |= (DL_FRONT_CURVE|DL_BACK_CURVE);
+
+					BLI_addtail(disp, dlnew);
+					fp= dlnew->verts;
+					nr= dlnew->parts*dlnew->nr;
+					while(nr--) {
+						fp[2]= fp[1]*facy;
+						fp[1]= -fp[0]*facx;
+						fp[0]= 0.0;
+						fp+= 3;
 					}
-					dl= dl->next;
 				}
-
-				freedisplist(&bevdisp);
+				dl= dl->next;
 			}
+
+			freedisplist(&bevdisp);
 		}
 	}
 	else if(cu->ext1==0.0 && cu->ext2==0.0) {

Modified: branches/render25/source/blender/blenkernel/intern/displist.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/displist.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenkernel/intern/displist.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -1664,6 +1664,15 @@
 		float (*deformedVerts)[3];
 		int numVerts;
 
+		/* Bevel and taper objects should always be curves */
+		if (cu->bevobj && cu->bevobj->type != OB_CURVE) {
+			cu->bevobj = NULL;
+		}
+
+		if (cu->taperobj && cu->taperobj->type != OB_CURVE) {
+			cu->taperobj = NULL;
+		}
+
 		if(cu->editnurb)
 			nubase= cu->editnurb;
 		else

Modified: branches/render25/source/blender/blenkernel/intern/mesh.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/mesh.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenkernel/intern/mesh.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -629,6 +629,12 @@
 			medge->v2= ed->v2;
 			if(old==0 || ed->is_draw) medge->flag= ME_EDGEDRAW|ME_EDGERENDER;
 			if(ed->is_loose) medge->flag|= ME_LOOSEEDGE;
+
+			/* order is swapped so extruding this edge as a surface wont flip face normals
+			 * with cyclic curves */
+			if(ed->v1+1 != ed->v2) {
+				SWAP(int, medge->v1, medge->v2);
+			}
 			medge++;
 		}
 		else {

Modified: branches/render25/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/modifier.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenkernel/intern/modifier.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -5793,7 +5793,8 @@
 #define ADD_EDGE_USER(_v1, _v2, edge_ord) \
 		eidx= GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, _v1, _v2)); \
 		if(edge_users[eidx] == INVALID_UNUSED) { \
-			edge_users[eidx]= (_v1 < _v2) ? i:(i+numFaces); \
+			ed= orig_medge + eidx; \
+			edge_users[eidx]= (_v1 < _v2) == (ed->v1 < ed->v2) ? i:(i+numFaces); \
 			edge_order[eidx]= edge_ord; \
 		} else { \
 			edge_users[eidx]= INVALID_PAIR; \

Modified: branches/render25/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/node.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenkernel/intern/node.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -2573,6 +2573,8 @@
 		for(sock= node->outputs.first; sock; sock= sock->next) {
 			
 			sock->new_sock->ns.data= sock->ns.data;
+			compbuf_set_node(sock->new_sock->ns.data, node->new_node);
+			
 			sock->ns.data= NULL;
 			sock->new_sock->new_sock= sock;
 		}

Modified: branches/render25/source/blender/blenlib/BLI_math_color.h
===================================================================
--- branches/render25/source/blender/blenlib/BLI_math_color.h	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenlib/BLI_math_color.h	2010-03-31 06:52:31 UTC (rev 27890)
@@ -41,20 +41,25 @@
 #define BLI_PR_NONE		0
 #define BLI_PR_SRGB		1
 #define BLI_PR_REC709	2
+
+/* YCbCr */
+#define BLI_YCC_ITU_BT601	0
+#define BLI_YCC_ITU_BT709	1
+#define BLI_YCC_JFIF_0_255	2
 	
 /******************* Conversion to RGB ********************/
 
 void hsv_to_rgb(float h, float s, float v, float *r, float *g, float *b);
 void hex_to_rgb(char *hexcol, float *r, float *g, float *b);
 void yuv_to_rgb(float y, float u, float v, float *lr, float *lg, float *lb);
-void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb);
+void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb, int colorspace);
 void xyz_to_rgb(float x, float y, float z, float *r, float *g, float *b, int colorspace);
 void cpack_to_rgb(unsigned int col, float *r, float *g, float *b);
 
 /***************** Conversion from RGB ********************/
 
 void rgb_to_yuv(float r, float g, float b, float *ly, float *lu, float *lv);
-void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr);
+void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, int colorspace);
 void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv);
 unsigned int rgb_to_cpack(float r, float g, float b);
 unsigned int hsv_to_cpack(float h, float s, float v);

Modified: branches/render25/source/blender/blenlib/intern/math_color.c
===================================================================
--- branches/render25/source/blender/blenlib/intern/math_color.c	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/blenlib/intern/math_color.c	2010-03-31 06:52:31 UTC (rev 27890)
@@ -109,7 +109,9 @@
 	*lb=b;
 }
 
-void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr)
+/* The RGB inputs are supposed gamma corrected and in the range 0 - 1.0f */
+/* Output YCC have a range of 16-235 and 16-240 exepect with JFIF_0_255 where the range is 0-255 */
+void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, int colorspace)
 {
 	float sr,sg, sb;
 	float y, cr, cb;
@@ -118,24 +120,53 @@
 	sg=255.0f*g;
 	sb=255.0f*b;
 	
+	switch (colorspace) {
+	case BLI_YCC_ITU_BT601 :
+		y=(0.257f*sr)+(0.504f*sg)+(0.098f*sb)+16.0f;
+		cb=(-0.148f*sr)-(0.291f*sg)+(0.439f*sb)+128.0f;
+		cr=(0.439f*sr)-(0.368f*sg)-(0.071f*sb)+128.0f;
+		break;
+	case BLI_YCC_ITU_BT709 :
+		y=(0.183f*sr)+(0.614f*sg)+(0.062f*sb)+16.0f;
+		cb=(-0.101f*sr)-(0.338f*sg)+(0.439f*sb)+128.0f;
+		cr=(0.439f*sr)-(0.399f*sg)-(0.040f*sb)+128.0f;
+		break;
+	case BLI_YCC_JFIF_0_255 :
+		y=(0.299f*sr)+(0.587f*sg)+(0.114f*sb)+16.0f;
+		cb=(-0.16874f*sr)-(0.33126f*sg)+(0.5f*sb)+128.0f;
+		cr=(0.5f*sr)-(0.41869f*sg)-(0.08131f*sb)+128.0f;
+		break;
+	}
 	
-	y=(0.257f*sr)+(0.504f*sg)+(0.098f*sb)+16.0f;
-	cb=(-0.148f*sr)-(0.291f*sg)+(0.439f*sb)+128.0f;
-	cr=(0.439f*sr)-(0.368f*sg)-(0.071f*sb)+128.0f;
-	
 	*ly=y;
 	*lcb=cb;
 	*lcr=cr;
 }
 
-void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb)
+
+/* YCC input have a range of 16-235 and 16-240 exepect with JFIF_0_255 where the range is 0-255 */
+/* RGB outputs are in the range 0 - 1.0f */
+void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb, int colorspace)
 {
 	float r,g,b;
 	
-	r=1.164f*(y-16.0f)+1.596f*(cr-128.0f);
-	g=1.164f*(y-16.0f)-0.813f*(cr-128.0f)-0.392f*(cb-128.0f);
-	b=1.164f*(y-16.0f)+2.017f*(cb-128.0f);
-	
+	switch (colorspace) {
+	case BLI_YCC_ITU_BT601 :
+		r=1.164f*(y-16.0f)+1.596f*(cr-128.0f);
+		g=1.164f*(y-16.0f)-0.813f*(cr-128.0f)-0.392f*(cb-128.0f);
+		b=1.164f*(y-16.0f)+2.017f*(cb-128.0f);
+		break;
+	case BLI_YCC_ITU_BT709 :
+		r=1.164f*(y-16.0f)+1.793f*(cr-128.0f);
+		g=1.164f*(y-16.0f)-0.534f*(cr-128.0f)-0.213f*(cb-128.0f);
+		b=1.164f*(y-16.0f)+2.115f*(cb-128.0f);
+		break;
+	case BLI_YCC_JFIF_0_255 :
+		r=y+1.402f*cr - 179.456f;
+		g=y-0.34414f*cb - 0.71414f*cr + 135.45984f;
+		b=y+1.772f*cb - 226.816f;
+		break;
+	}
 	*lr=r/255.0f;
 	*lg=g/255.0f;
 	*lb=b/255.0f;

Modified: branches/render25/source/blender/collada/DocumentExporter.cpp
===================================================================
--- branches/render25/source/blender/collada/DocumentExporter.cpp	2010-03-31 06:49:54 UTC (rev 27889)
+++ branches/render25/source/blender/collada/DocumentExporter.cpp	2010-03-31 06:52:31 UTC (rev 27890)
@@ -1948,7 +1948,7 @@
 		addSampler(sampler);
 
 		std::string target = translate_id(ob_name)
-			+ "/" + get_transform_sid(fcu->rna_path, -1, axis_name);
+			+ "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list