branches/2-44-stable

Merge from trunk:

revision 10748:10749
    Fix float error in Transform Contraint with planar constraints when the
    plane was perpendicular to the viewport.
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10749

revision 10750:10751
    Coverity bugfix: Dead Code
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10751

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

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

revision 10765:10766 (Bugfix #6739)
    Vector blur error in Ztransp: sometimes black lines (on edges) appeared,
    which didn't get blurred away.                
    Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10766
This commit is contained in:
Diego Borghetti 2007-06-14 20:03:14 +00:00
parent f536d83eb1
commit 0a3ed2c93e
5 changed files with 35 additions and 6 deletions

View File

@ -2916,6 +2916,31 @@ static void merge_transp_passes(RenderLayer *rl, ShadeResult *shr)
case SCE_PASS_NORMAL:
col= shr->nor;
break;
case SCE_PASS_VECTOR:
{
ShadeResult *shr_t= shr+1;
float *fp= shr->winspeed; /* was initialized */
int samp;
/* add minimum speed in pixel */
for(samp= 1; samp<R.osa; samp++, shr_t++) {
if(shr_t->combined[3] > 0.0f) {
float *speed= shr_t->winspeed;
if( (ABS(speed[0]) + ABS(speed[1]))< (ABS(fp[0]) + ABS(fp[1])) ) {
fp[0]= speed[0];
fp[1]= speed[1];
}
if( (ABS(speed[2]) + ABS(speed[3]))< (ABS(fp[2]) + ABS(fp[3])) ) {
fp[2]= speed[2];
fp[3]= speed[3];
}
}
}
}
break;
}
if(col) {
float *fp= col+delta;
@ -3315,7 +3340,11 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas
/* for each mask-sample we alpha-under colors. then in end it's added using filter */
memset(samp_shr, 0, sizeof(ShadeResult)*R.osa);
/* nice this memset, but speed vectors are not initialized OK then. it is sufficient to only clear 1 (see merge_transp_passes) */
if(addpassflag & SCE_PASS_VECTOR)
samp_shr->winspeed[0]= samp_shr->winspeed[1]= samp_shr->winspeed[2]= samp_shr->winspeed[3]= PASS_VECTOR_MAX;
while(totface>0) {
totface--;

View File

@ -1045,7 +1045,7 @@ void draw_tface_mesh(Object *ob, Mesh *me, int dt)
dm->drawFacesTex(dm, draw_tface__set_draw);
/* drawing game engine text hack */
if (!editing && prop && me->tface) {
if (!editing && prop && me->mtface) {
DerivedMesh *ddm = mesh_get_derived_deform(ob, CD_MASK_BAREMESH);
MFace *mface= me->mface;
MTFace *tface= me->mtface;

View File

@ -103,7 +103,7 @@ static void oops_to_select_objects(void)
if(oops->hide==0) {
if(oops->type==ID_OB) {
ob= (Object *)oops->id;
if ((ob->flag & OB_RESTRICT_VIEW)==0) {
if ((ob->restrictflag & OB_RESTRICT_VIEW)==0) {
if(oops->flag & SELECT) ob->flag |= SELECT;
else ob->flag &= ~SELECT;
}

View File

@ -218,7 +218,9 @@ static void planeProjection(TransInfo *t, float in[3], float out[3]) {
VecSubf(vec, out, in);
factor = Inpf(vec, norm);
if (factor == 0.0f) return; /* prevent divide by zero */
if (fabs(factor) <= FLT_EPSILON) {
return; /* prevent divide by zero */
}
factor = Inpf(vec, vec) / factor;
VECCOPY(vec, norm);

View File

@ -935,8 +935,6 @@ static void draw_manipulator_rotate(float mat[][4], int moving, int drawflags, i
if(arcs==0 && moving) {
if(arcs) glEnable(GL_CLIP_PLANE0);
/* Z circle */
if(drawflags & MAN_ROT_Z) {
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z);