[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10961] branches/2-44-stable/blender/ source/blender: branches/2-44-stable

Diego Borghetti (Plumiferos) bdiego at gmail.com
Mon Jun 18 22:22:08 CEST 2007


Revision: 10961
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10961
Author:   bdiego
Date:     2007-06-18 22:22:08 +0200 (Mon, 18 Jun 2007)

Log Message:
-----------
branches/2-44-stable

Merge from trunk:

revision 10862:10863
    Bugfix in SSS
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10863

revision 10863:10864 (Bugfix #6799)
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10864

revision 10866:10867 (Bugfix #6798)
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10867

revision 10870:10871 (Bugfix #6688)
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10871

revision 10872:10873
    When the char panel was displayed it would mess up font size for other panels.
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10873

Revision Links:
--------------
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10862
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10863
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10866
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10870
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10872

Modified Paths:
--------------
    branches/2-44-stable/blender/source/blender/blenkernel/intern/effect.c
    branches/2-44-stable/blender/source/blender/makesdna/DNA_object_types.h
    branches/2-44-stable/blender/source/blender/python/api2_2x/Object.c
    branches/2-44-stable/blender/source/blender/render/intern/source/sss.c
    branches/2-44-stable/blender/source/blender/src/buttons_editing.c
    branches/2-44-stable/blender/source/blender/src/editkey.c
    branches/2-44-stable/blender/source/blender/src/interface_draw.c
    branches/2-44-stable/blender/source/blender/src/sculptmode.c

Modified: branches/2-44-stable/blender/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/2-44-stable/blender/source/blender/blenkernel/intern/effect.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/blenkernel/intern/effect.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -1541,6 +1541,7 @@
 
 
 /* WARN: this function stores data in ob->id.idnew! */
+/* error: this function changes ob->recalc of other objects... */
 static pMatrixCache *cache_object_matrices(Object *ob, int start, int end)
 {
 	pMatrixCache *mcache, *mc;
@@ -1561,16 +1562,17 @@
 	sfo= ob->sf;
 	ob->sf= 0.0f;
 
-	/* clear storage */
-	for(obcopy= G.main->object.first; obcopy; obcopy= obcopy->id.next) 
+	/* clear storage, copy recalc tag (bad loop) */
+	for(obcopy= G.main->object.first; obcopy; obcopy= obcopy->id.next) {
 		obcopy->id.newid= NULL;
+		obcopy->recalco= obcopy->recalc;
+		obcopy->recalc= 0;
+	}
 	
 	/* all objects get tagged recalc that influence this object (does group too) */
-	/* another hack; while transform you cannot call this, it sets own recalc flags */
-	if(G.moving==0) {
-		ob->recalc |= OB_RECALC_OB; /* make sure a recalc gets flushed */
-		DAG_object_update_flags(G.scene, ob, -1);
-	}
+	/* note that recalco has the real recalc tags, set by callers of this function */
+	ob->recalc |= OB_RECALC_OB; /* make sure a recalc gets flushed */
+	DAG_object_update_flags(G.scene, ob, -1);
 	
 	for(G.scene->r.cfra= start; G.scene->r.cfra<=end; G.scene->r.cfra++, mc++) {
 		
@@ -1649,7 +1651,12 @@
 				}
 			}
 		}
-	}	
+	}
+	
+	/* copy recalc tag (bad loop) */
+	for(obcopy= G.main->object.first; obcopy; obcopy= obcopy->id.next)
+		obcopy->recalc= obcopy->recalco;
+	
 	return mcache;
 }
 
@@ -2088,6 +2095,7 @@
 	/* reset deflector cache */
 	for(base= G.scene->base.first; base; base= base->next) {
 		if(base->object->sumohandle) {
+			
 			MEM_freeN(base->object->sumohandle);
 			base->object->sumohandle= NULL;
 		}

Modified: branches/2-44-stable/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- branches/2-44-stable/blender/source/blender/makesdna/DNA_object_types.h	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/makesdna/DNA_object_types.h	2007-06-18 20:22:08 UTC (rev 10961)
@@ -204,7 +204,7 @@
 
 	short shapenr, shapeflag;	/* current shape key for menu or pinned, flag for pinning */
 	float smoothresh;			/* smoothresh is phong interpolation ray_shadow correction in render */
-	int pad4;
+	short recalco, pad4;		/* recalco for temp storage of ob->recalc, bad design warning */
 	
 	struct FluidsimSettings *fluidsimSettings; /* if fluidsim enabled, store additional settings */
   

Modified: branches/2-44-stable/blender/source/blender/python/api2_2x/Object.c
===================================================================
--- branches/2-44-stable/blender/source/blender/python/api2_2x/Object.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/python/api2_2x/Object.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -2970,6 +2970,7 @@
 static PyObject *Object_getDupliObjects( BPy_Object * self )
 {
 	Object *ob= self->object;
+	PyObject *pair;
 	
 	if(ob->transflag & OB_DUPLI) {
 		/* before make duplis, update particle for current frame */

Modified: branches/2-44-stable/blender/source/blender/render/intern/source/sss.c
===================================================================
--- branches/2-44-stable/blender/source/blender/render/intern/source/sss.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/render/intern/source/sss.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -473,7 +473,7 @@
 	for(i=0; i<node->totpoint; i++) {
 		p= &node->points[i];
 
-		rad= p->area*(p->rad[0] + p->rad[1] + p->rad[2]);
+		rad= p->area*fabs(p->rad[0] + p->rad[1] + p->rad[2]);
 		totrad += rad;
 
 		node->co[0] += rad*p->co[0];
@@ -550,8 +550,8 @@
 
 		subnode= node->child[i];
 
-		rad= subnode->area*(subnode->rad[0] + subnode->rad[1] + subnode->rad[2]);
-		rad += subnode->backarea*(subnode->backrad[0] + subnode->backrad[1] + subnode->backrad[2]);
+		rad= subnode->area*fabs(subnode->rad[0] + subnode->rad[1] + subnode->rad[2]);
+		rad += subnode->backarea*fabs(subnode->backrad[0] + subnode->backrad[1] + subnode->backrad[2]);
 		totrad += rad;
 
 		node->co[0] += rad*subnode->co[0];

Modified: branches/2-44-stable/blender/source/blender/src/buttons_editing.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/buttons_editing.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/src/buttons_editing.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -602,11 +602,7 @@
 		break;
 	
 	case B_ADDKEY:
-		if(get_mesh(ob) && get_mesh(ob)->mr) {
-			error("Cannot create shape keys on a multires mesh.");
-		} else {
-			insert_shapekey(ob);
-		}
+		insert_shapekey(ob);
 		break;
 	case B_SETKEY:
 		ob->shapeflag |= OB_SHAPE_TEMPLOCK;

Modified: branches/2-44-stable/blender/source/blender/src/editkey.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/editkey.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/src/editkey.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -67,6 +67,7 @@
 #include "BKE_key.h"
 #include "BKE_library.h"
 #include "BKE_main.h"
+#include "BKE_mesh.h"
 #include "BKE_object.h"
 #include "BKE_utildefines.h"
 
@@ -599,21 +600,26 @@
 
 void insert_shapekey(Object *ob)
 {
-	Key *key;
+	if(get_mesh(ob) && get_mesh(ob)->mr) {
+		error("Cannot create shape keys on a multires mesh.");
+	}
+	else {
+		Key *key;
 	
-	if(ob->type==OB_MESH) insert_meshkey(ob->data, 1);
-	else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(ob->data, 1);
-	else if(ob->type==OB_LATTICE) insert_lattkey(ob->data, 1);
+		if(ob->type==OB_MESH) insert_meshkey(ob->data, 1);
+		else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(ob->data, 1);
+		else if(ob->type==OB_LATTICE) insert_lattkey(ob->data, 1);
 	
-	key= ob_get_key(ob);
-	ob->shapenr= BLI_countlist(&key->block);
+		key= ob_get_key(ob);
+		ob->shapenr= BLI_countlist(&key->block);
 	
-	allspace(REMAKEIPO, 0);
-	allqueue(REDRAWIPO, 0);
-	allqueue(REDRAWACTION, 0);
-	allqueue(REDRAWNLA, 0);
-	allqueue(REDRAWBUTSOBJECT, 0);
-	allqueue(REDRAWBUTSEDIT, 0);
+		allspace(REMAKEIPO, 0);
+		allqueue(REDRAWIPO, 0);
+		allqueue(REDRAWACTION, 0);
+		allqueue(REDRAWNLA, 0);
+		allqueue(REDRAWBUTSOBJECT, 0);
+		allqueue(REDRAWBUTSEDIT, 0);
+	}
 }
 
 void delete_key(Object *ob)

Modified: branches/2-44-stable/blender/source/blender/src/interface_draw.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/interface_draw.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/src/interface_draw.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -1785,7 +1785,7 @@
 	PackedFile *pf;
 	int result = 0;
 	int charmax = G.charmax;
-
+	
 	/* <builtin> font in use. There are TTF <builtin> and non-TTF <builtin> fonts */
 	if(!strcmp(G.selfont->name, "<builtin>"))
 	{
@@ -1947,6 +1947,12 @@
 	{
 		result = FTF_SetFont((unsigned char *) datatoc_bfont_ttf, datatoc_bfont_ttf_size, 11);
 	}
+	
+	/* resets the font size */
+	if(G.ui_international == TRUE)
+	{
+		uiSetCurFont(but->block, UI_HELV);
+	}
 }
 
 #endif // INTERNATIONAL

Modified: branches/2-44-stable/blender/source/blender/src/sculptmode.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/sculptmode.c	2007-06-18 20:03:23 UTC (rev 10960)
+++ branches/2-44-stable/blender/source/blender/src/sculptmode.c	2007-06-18 20:22:08 UTC (rev 10961)
@@ -1096,13 +1096,22 @@
 BrushData *sculptmode_brush(void)
 {
 	SculptData *sd= &G.scene->sculptdata;
-	return (sd->brush_type==DRAW_BRUSH ? &sd->drawbrush :
-		sd->brush_type==SMOOTH_BRUSH ? &sd->smoothbrush :
-		sd->brush_type==PINCH_BRUSH ? &sd->pinchbrush :
-		sd->brush_type==INFLATE_BRUSH ? &sd->inflatebrush :
-		sd->brush_type==GRAB_BRUSH ? &sd->grabbrush :
-		sd->brush_type==LAYER_BRUSH ? &sd->layerbrush :
-		sd->brush_type==FLATTEN_BRUSH ? &sd->flattenbrush : NULL);
+
+	BrushData *bd = 
+		(sd->brush_type==DRAW_BRUSH ? &sd->drawbrush :
+		 sd->brush_type==SMOOTH_BRUSH ? &sd->smoothbrush :
+		 sd->brush_type==PINCH_BRUSH ? &sd->pinchbrush :
+		 sd->brush_type==INFLATE_BRUSH ? &sd->inflatebrush :
+		 sd->brush_type==GRAB_BRUSH ? &sd->grabbrush :
+		 sd->brush_type==LAYER_BRUSH ? &sd->layerbrush :
+		 sd->brush_type==FLATTEN_BRUSH ? &sd->flattenbrush : NULL);
+
+	if(!bd) {
+		sculptmode_init(G.scene);
+		bd = &sd->drawbrush;
+	}
+
+	return bd;
 }
 
 void sculptmode_update_tex()
@@ -1853,8 +1862,8 @@
 	else {
 		G.f |= G_SCULPTMODE;
 
-		if(!sculptmode_brush())
-			sculptmode_init(G.scene);
+		/* Called here to sanity-check the brush */
+		sculptmode_brush();
 
 		sculpt_init_session();
 		





More information about the Bf-blender-cvs mailing list