diff options
Diffstat (limited to 'source/blender/render/intern/source/zbuf.c')
-rw-r--r-- | source/blender/render/intern/source/zbuf.c | 1327 |
1 files changed, 667 insertions, 660 deletions
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 46520001d2d..e3068d12265 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -101,9 +101,9 @@ void zbuf_alloc_span(ZSpan *zspan, int rectx, int recty, float clipcrop) void zbuf_free_span(ZSpan *zspan) { - if(zspan) { - if(zspan->span1) MEM_freeN(zspan->span1); - if(zspan->span2) MEM_freeN(zspan->span2); + if (zspan) { + if (zspan->span1) MEM_freeN(zspan->span1); + if (zspan->span2) MEM_freeN(zspan->span2); zspan->span1= zspan->span2= NULL; } } @@ -122,7 +122,7 @@ static void zbuf_add_to_span(ZSpan *zspan, float *v1, float *v2) float xx1, dx0, xs0; int y, my0, my2; - if(v1[1]<v2[1]) { + if (v1[1]<v2[1]) { minv= v1; maxv= v2; } else { @@ -132,18 +132,18 @@ static void zbuf_add_to_span(ZSpan *zspan, float *v1, float *v2) my0= ceil(minv[1]); my2= floor(maxv[1]); - if(my2<0 || my0>= zspan->recty) return; + if (my2<0 || my0>= zspan->recty) return; /* clip top */ - if(my2>=zspan->recty) my2= zspan->recty-1; + if (my2>=zspan->recty) my2= zspan->recty-1; /* clip bottom */ - if(my0<0) my0= 0; + if (my0<0) my0= 0; - if(my0>my2) return; + if (my0>my2) return; /* if(my0>my2) should still fill in, that way we get spans that skip nicely */ xx1= maxv[1]-minv[1]; - if(xx1>FLT_EPSILON) { + if (xx1>FLT_EPSILON) { dx0= (minv[0]-maxv[0])/xx1; xs0= dx0*(minv[1]-my2) + minv[0]; } @@ -153,11 +153,11 @@ static void zbuf_add_to_span(ZSpan *zspan, float *v1, float *v2) } /* empty span */ - if(zspan->maxp1 == NULL) { + if (zspan->maxp1 == NULL) { span= zspan->span1; } else { /* does it complete left span? */ - if( maxv == zspan->minp1 || minv==zspan->maxp1) { + if ( maxv == zspan->minp1 || minv==zspan->maxp1) { span= zspan->span1; } else { @@ -165,30 +165,30 @@ static void zbuf_add_to_span(ZSpan *zspan, float *v1, float *v2) } } - if(span==zspan->span1) { + if (span==zspan->span1) { // printf("left span my0 %d my2 %d\n", my0, my2); - if(zspan->minp1==NULL || zspan->minp1[1] > minv[1] ) { + if (zspan->minp1==NULL || zspan->minp1[1] > minv[1] ) { zspan->minp1= minv; } - if(zspan->maxp1==NULL || zspan->maxp1[1] < maxv[1] ) { + if (zspan->maxp1==NULL || zspan->maxp1[1] < maxv[1] ) { zspan->maxp1= maxv; } - if(my0<zspan->miny1) zspan->miny1= my0; - if(my2>zspan->maxy1) zspan->maxy1= my2; + if (my0<zspan->miny1) zspan->miny1= my0; + if (my2>zspan->maxy1) zspan->maxy1= my2; } else { // printf("right span my0 %d my2 %d\n", my0, my2); - if(zspan->minp2==NULL || zspan->minp2[1] > minv[1] ) { + if (zspan->minp2==NULL || zspan->minp2[1] > minv[1] ) { zspan->minp2= minv; } - if(zspan->maxp2==NULL || zspan->maxp2[1] < maxv[1] ) { + if (zspan->maxp2==NULL || zspan->maxp2[1] < maxv[1] ) { zspan->maxp2= maxv; } - if(my0<zspan->miny2) zspan->miny2= my0; - if(my2>zspan->maxy2) zspan->maxy2= my2; + if (my0<zspan->miny2) zspan->miny2= my0; + if (my2>zspan->maxy2) zspan->maxy2= my2; } - for(y=my2; y>=my0; y--, xs0+= dx0) { + for (y=my2; y>=my0; y--, xs0+= dx0) { /* xs0 is the xcoord! */ span[y]= xs0; } @@ -204,7 +204,7 @@ void fillrect(int *rect, int x, int y, int val) len= x*y; drect= rect; - while(len>0) { + while (len>0) { len--; *drect= val; drect++; @@ -216,24 +216,24 @@ static short cliptestf(float a, float b, float c, float d, float *u1, float *u2) { float p= a + b, q= c + d, r; - if(p<0.0f) { - if(q<p) return 0; - else if(q<0.0f) { + if (p<0.0f) { + if (q<p) return 0; + else if (q<0.0f) { r= q/p; - if(r>*u2) return 0; - else if(r>*u1) *u1=r; + if (r>*u2) return 0; + else if (r>*u1) *u1=r; } } else { - if(p>0.0f) { - if(q<0.0f) return 0; - else if(q<p) { + if (p>0.0f) { + if (q<0.0f) return 0; + else if (q<p) { r= q/p; - if(r<*u1) return 0; - else if(r<*u2) *u2=r; + if (r<*u1) return 0; + else if (r<*u2) *u2=r; } } - else if(q<0.0f) return 0; + else if (q<0.0f) return 0; } return 1; } @@ -247,14 +247,14 @@ int testclip(const float v[4]) * prevents issues with vertices lying exact on borders */ abs4= fabsf(v[3]) + FLT_EPSILON; - if( v[0] < -abs4) c+=1; - else if( v[0] > abs4) c+=2; + if ( v[0] < -abs4) c+=1; + else if ( v[0] > abs4) c+=2; - if( v[1] > abs4) c+=4; - else if( v[1] < -abs4) c+=8; + if ( v[1] > abs4) c+=4; + else if ( v[1] < -abs4) c+=8; - if(v[2] < -abs4) c+=16; /* this used to be " if(v[2]<0) ", see clippz() */ - else if(v[2]> abs4) c+= 32; + if (v[2] < -abs4) c+=16; /* this used to be " if(v[2]<0) ", see clippz() */ + else if (v[2]> abs4) c+= 32; return c; } @@ -279,9 +279,9 @@ void freepsA(ListBase *lb) { APixstrMain *psm, *psmnext; - for(psm= lb->first; psm; psm= psmnext) { + for (psm= lb->first; psm; psm= psmnext) { psmnext= psm->next; - if(psm->ps) + if (psm->ps) MEM_freeN(psm->ps); MEM_freeN(psm); } @@ -290,7 +290,7 @@ void freepsA(ListBase *lb) static APixstr *addpsA(ZSpan *zspan) { /* make new PS */ - if(zspan->apsmcounter==0) { + if (zspan->apsmcounter==0) { zspan->curpstr= addpsmainA(zspan->apsmbase); zspan->apsmcounter= 4095; } @@ -317,7 +317,7 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* set spans */ zbuf_add_to_span(zspan, v1, v2); zbuf_add_to_span(zspan, v2, v3); - if(v4) { + if (v4) { zbuf_add_to_span(zspan, v3, v4); zbuf_add_to_span(zspan, v4, v1); } @@ -325,12 +325,12 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ x1= v1[0]- v2[0]; @@ -343,7 +343,7 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -360,7 +360,7 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -369,16 +369,16 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; - if(sn2>=sn1) { + if (sn2>=sn1) { int intzverg; zverg= (double)sn1*zxd + zy0; @@ -389,23 +389,23 @@ static void zbuffillAc4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, zverg-= zspan->polygon_offset; - while(x>=0) { + while (x>=0) { intzverg= (int)CLAMPIS(zverg, INT_MIN, INT_MAX); - if( intzverg < *rz) { - if(!zspan->rectmask || intzverg > *rm) { + if ( intzverg < *rz) { + if (!zspan->rectmask || intzverg > *rm) { apn= ap; - while(apn) { - if(apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= intzverg; apn->mask[0]= mask; break; } - if(apn->p[0]==zvlnr && apn->obi[0]==obi) {apn->mask[0]|= mask; break; } - if(apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= intzverg; apn->mask[1]= mask; break; } - if(apn->p[1]==zvlnr && apn->obi[1]==obi) {apn->mask[1]|= mask; break; } - if(apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= intzverg; apn->mask[2]= mask; break; } - if(apn->p[2]==zvlnr && apn->obi[2]==obi) {apn->mask[2]|= mask; break; } - if(apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= intzverg; apn->mask[3]= mask; break; } - if(apn->p[3]==zvlnr && apn->obi[3]==obi) {apn->mask[3]|= mask; break; } - if(apn->next==NULL) apn->next= addpsA(zspan); + while (apn) { + if (apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= intzverg; apn->mask[0]= mask; break; } + if (apn->p[0]==zvlnr && apn->obi[0]==obi) {apn->mask[0]|= mask; break; } + if (apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= intzverg; apn->mask[1]= mask; break; } + if (apn->p[1]==zvlnr && apn->obi[1]==obi) {apn->mask[1]|= mask; break; } + if (apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= intzverg; apn->mask[2]= mask; break; } + if (apn->p[2]==zvlnr && apn->obi[2]==obi) {apn->mask[2]|= mask; break; } + if (apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= intzverg; apn->mask[3]= mask; break; } + if (apn->p[3]==zvlnr && apn->obi[3]==obi) {apn->mask[3]|= mask; break; } + if (apn->next==NULL) apn->next= addpsA(zspan); apn= apn->next; } } @@ -441,10 +441,10 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec mask= zspan->mask; - if(fabs(dx) > fabs(dy)) { + if (fabs(dx) > fabs(dy)) { /* all lines from left to right */ - if(vec1[0]<vec2[0]) { + if (vec1[0]<vec2[0]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -456,7 +456,7 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec start= floor(v1[0]); end= start+floor(dx); - if(end>=zspan->rectx) end= zspan->rectx-1; + if (end>=zspan->rectx) end= zspan->rectx-1; oldy= floor(v1[1]); dy/= dx; @@ -464,40 +464,40 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec vergz= v1[2]; vergz-= zspan->polygon_offset; dz= (v2[2]-v1[2])/dx; - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= (int *)(zspan->arectz+zspan->rectx*(oldy) +start); rectmask= (int *)(zspan->rectmask+zspan->rectx*(oldy) +start); ap= (zspan->apixbuf+ zspan->rectx*(oldy) +start); - if(dy<0) ofs= -zspan->rectx; + if (dy<0) ofs= -zspan->rectx; else ofs= zspan->rectx; - for(x= start; x<=end; x++, rectz++, rectmask++, ap++) { + for (x= start; x<=end; x++, rectz++, rectmask++, ap++) { y= floor(v1[1]); - if(y!=oldy) { + if (y!=oldy) { oldy= y; rectz+= ofs; rectmask+= ofs; ap+= ofs; } - if(x>=0 && y>=0 && y<zspan->recty) { - if(vergz<*rectz) { - if(!zspan->rectmask || vergz>*rectmask) { + if (x>=0 && y>=0 && y<zspan->recty) { + if (vergz<*rectz) { + if (!zspan->rectmask || vergz>*rectmask) { apn= ap; - while(apn) { /* loop unrolled */ - if(apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= vergz; apn->mask[0]= mask; break; } - if(apn->p[0]==zvlnr && apn->obi[0]==obi) {apn->mask[0]|= mask; break; } - if(apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= vergz; apn->mask[1]= mask; break; } - if(apn->p[1]==zvlnr && apn->obi[1]==obi) {apn->mask[1]|= mask; break; } - if(apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= vergz; apn->mask[2]= mask; break; } - if(apn->p[2]==zvlnr && apn->obi[2]==obi) {apn->mask[2]|= mask; break; } - if(apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= vergz; apn->mask[3]= mask; break; } - if(apn->p[3]==zvlnr && apn->obi[3]==obi) {apn->mask[3]|= mask; break; } - if(apn->next==0) apn->next= addpsA(zspan); + while (apn) { /* loop unrolled */ + if (apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= vergz; apn->mask[0]= mask; break; } + if (apn->p[0]==zvlnr && apn->obi[0]==obi) {apn->mask[0]|= mask; break; } + if (apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= vergz; apn->mask[1]= mask; break; } + if (apn->p[1]==zvlnr && apn->obi[1]==obi) {apn->mask[1]|= mask; break; } + if (apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= vergz; apn->mask[2]= mask; break; } + if (apn->p[2]==zvlnr && apn->obi[2]==obi) {apn->mask[2]|= mask; break; } + if (apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= vergz; apn->mask[3]= mask; break; } + if (apn->p[3]==zvlnr && apn->obi[3]==obi) {apn->mask[3]|= mask; break; } + if (apn->next==0) apn->next= addpsA(zspan); apn= apn->next; } } @@ -505,14 +505,14 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec } v1[1]+= dy; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; } } else { /* all lines from top to bottom */ - if(vec1[1]<vec2[1]) { + if (vec1[1]<vec2[1]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -525,9 +525,9 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec start= floor(v1[1]); end= start+floor(dy); - if(start>=zspan->recty || end<0) return; + if (start>=zspan->recty || end<0) return; - if(end>=zspan->recty) end= zspan->recty-1; + if (end>=zspan->recty) end= zspan->recty-1; oldx= floor(v1[0]); dx/= dy; @@ -535,40 +535,40 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec vergz= v1[2]; vergz-= zspan->polygon_offset; dz= (v2[2]-v1[2])/dy; - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= (int *)( zspan->arectz+ (start)*zspan->rectx+ oldx ); rectmask= (int *)( zspan->rectmask+ (start)*zspan->rectx+ oldx ); ap= (zspan->apixbuf+ zspan->rectx*(start) +oldx); - if(dx<0) ofs= -1; + if (dx<0) ofs= -1; else ofs= 1; - for(y= start; y<=end; y++, rectz+=zspan->rectx, rectmask+=zspan->rectx, ap+=zspan->rectx) { + for (y= start; y<=end; y++, rectz+=zspan->rectx, rectmask+=zspan->rectx, ap+=zspan->rectx) { x= floor(v1[0]); - if(x!=oldx) { + if (x!=oldx) { oldx= x; rectz+= ofs; rectmask+= ofs; ap+= ofs; } - if(x>=0 && y>=0 && x<zspan->rectx) { - if(vergz<*rectz) { - if(!zspan->rectmask || vergz>*rectmask) { + if (x>=0 && y>=0 && x<zspan->rectx) { + if (vergz<*rectz) { + if (!zspan->rectmask || vergz>*rectmask) { apn= ap; - while(apn) { /* loop unrolled */ - if(apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= vergz; apn->mask[0]= mask; break; } - if(apn->p[0]==zvlnr) {apn->mask[0]|= mask; break; } - if(apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= vergz; apn->mask[1]= mask; break; } - if(apn->p[1]==zvlnr) {apn->mask[1]|= mask; break; } - if(apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= vergz; apn->mask[2]= mask; break; } - if(apn->p[2]==zvlnr) {apn->mask[2]|= mask; break; } - if(apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= vergz; apn->mask[3]= mask; break; } - if(apn->p[3]==zvlnr) {apn->mask[3]|= mask; break; } - if(apn->next==0) apn->next= addpsA(zspan); + while (apn) { /* loop unrolled */ + if (apn->p[0]==0) {apn->obi[0]= obi; apn->p[0]= zvlnr; apn->z[0]= vergz; apn->mask[0]= mask; break; } + if (apn->p[0]==zvlnr) {apn->mask[0]|= mask; break; } + if (apn->p[1]==0) {apn->obi[1]= obi; apn->p[1]= zvlnr; apn->z[1]= vergz; apn->mask[1]= mask; break; } + if (apn->p[1]==zvlnr) {apn->mask[1]|= mask; break; } + if (apn->p[2]==0) {apn->obi[2]= obi; apn->p[2]= zvlnr; apn->z[2]= vergz; apn->mask[2]= mask; break; } + if (apn->p[2]==zvlnr) {apn->mask[2]|= mask; break; } + if (apn->p[3]==0) {apn->obi[3]= obi; apn->p[3]= zvlnr; apn->z[3]= vergz; apn->mask[3]= mask; break; } + if (apn->p[3]==zvlnr) {apn->mask[3]|= mask; break; } + if (apn->next==0) apn->next= addpsA(zspan); apn= apn->next; } } @@ -576,7 +576,7 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec } v1[0]+= dx; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; } } @@ -595,10 +595,10 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) dx= vec2[0]-vec1[0]; dy= vec2[1]-vec1[1]; - if(fabs(dx) > fabs(dy)) { + if (fabs(dx) > fabs(dy)) { /* all lines from left to right */ - if(vec1[0]<vec2[0]) { + if (vec1[0]<vec2[0]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -610,27 +610,27 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) start= floor(v1[0]); end= start+floor(dx); - if(end>=zspan->rectx) end= zspan->rectx-1; + if (end>=zspan->rectx) end= zspan->rectx-1; oldy= floor(v1[1]); dy/= dx; vergz= floor(v1[2]); dz= floor((v2[2]-v1[2])/dx); - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= zspan->rectz + oldy*zspan->rectx+ start; rectp= zspan->rectp + oldy*zspan->rectx+ start; recto= zspan->recto + oldy*zspan->rectx+ start; rectmask= zspan->rectmask + oldy*zspan->rectx+ start; - if(dy<0) ofs= -zspan->rectx; + if (dy<0) ofs= -zspan->rectx; else ofs= zspan->rectx; - for(x= start; x<=end; x++, rectz++, rectp++, recto++, rectmask++) { + for (x= start; x<=end; x++, rectz++, rectp++, recto++, rectmask++) { y= floor(v1[1]); - if(y!=oldy) { + if (y!=oldy) { oldy= y; rectz+= ofs; rectp+= ofs; @@ -638,9 +638,9 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) rectmask+= ofs; } - if(x>=0 && y>=0 && y<zspan->recty) { - if(vergz<*rectz) { - if(!zspan->rectmask || vergz>*rectmask) { + if (x>=0 && y>=0 && y<zspan->recty) { + if (vergz<*rectz) { + if (!zspan->rectmask || vergz>*rectmask) { *recto= obi; *rectz= vergz; *rectp= zvlnr; @@ -650,13 +650,13 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) v1[1]+= dy; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; } } else { /* all lines from top to bottom */ - if(vec1[1]<vec2[1]) { + if (vec1[1]<vec2[1]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -669,27 +669,27 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) start= floor(v1[1]); end= start+floor(dy); - if(end>=zspan->recty) end= zspan->recty-1; + if (end>=zspan->recty) end= zspan->recty-1; oldx= floor(v1[0]); dx/= dy; vergz= floor(v1[2]); dz= floor((v2[2]-v1[2])/dy); - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= zspan->rectz + start*zspan->rectx+ oldx; rectp= zspan->rectp + start*zspan->rectx+ oldx; recto= zspan->recto + start*zspan->rectx+ oldx; rectmask= zspan->rectmask + start*zspan->rectx+ oldx; - if(dx<0) ofs= -1; + if (dx<0) ofs= -1; else ofs= 1; - for(y= start; y<=end; y++, rectz+=zspan->rectx, rectp+=zspan->rectx, recto+=zspan->rectx, rectmask+=zspan->rectx) { + for (y= start; y<=end; y++, rectz+=zspan->rectx, rectp+=zspan->rectx, recto+=zspan->rectx, rectmask+=zspan->rectx) { x= floor(v1[0]); - if(x!=oldx) { + if (x!=oldx) { oldx= x; rectz+= ofs; rectp+= ofs; @@ -697,9 +697,9 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) rectmask+= ofs; } - if(x>=0 && y>=0 && x<zspan->rectx) { - if(vergz<*rectz) { - if(!zspan->rectmask || vergz>*rectmask) { + if (x>=0 && y>=0 && x<zspan->rectx) { + if (vergz<*rectz) { + if (!zspan->rectmask || vergz>*rectmask) { *rectz= vergz; *rectp= zvlnr; *recto= obi; @@ -708,7 +708,7 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) } v1[0]+= dx; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; } } @@ -725,10 +725,10 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), flo dx= vec2[0]-vec1[0]; dy= vec2[1]-vec1[1]; - if(fabs(dx) > fabs(dy)) { + if (fabs(dx) > fabs(dy)) { /* all lines from left to right */ - if(vec1[0]<vec2[0]) { + if (vec1[0]<vec2[0]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -740,51 +740,51 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), flo start= floor(v1[0]); end= start+floor(dx); - if(end>=zspan->rectx) end= zspan->rectx-1; + if (end>=zspan->rectx) end= zspan->rectx-1; oldy= floor(v1[1]); dy/= dx; vergz= floor(v1[2]); dz= floor((v2[2]-v1[2])/dx); - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= zspan->rectz + oldy*zspan->rectx+ start; - if(zspan->rectz1) + if (zspan->rectz1) rectz1= zspan->rectz1 + oldy*zspan->rectx+ start; - if(dy<0) ofs= -zspan->rectx; + if (dy<0) ofs= -zspan->rectx; else ofs= zspan->rectx; - for(x= start; x<=end; x++, rectz++) { + for (x= start; x<=end; x++, rectz++) { y= floor(v1[1]); - if(y!=oldy) { + if (y!=oldy) { oldy= y; rectz+= ofs; - if(rectz1) rectz1+= ofs; + if (rectz1) rectz1+= ofs; } - if(x>=0 && y>=0 && y<zspan->recty) { - if(vergz < *rectz) { - if(rectz1) *rectz1= *rectz; + if (x>=0 && y>=0 && y<zspan->recty) { + if (vergz < *rectz) { + if (rectz1) *rectz1= *rectz; *rectz= vergz; } - else if(rectz1 && vergz < *rectz1) + else if (rectz1 && vergz < *rectz1) *rectz1= vergz; } v1[1]+= dy; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; - if(rectz1) rectz1++; + if (rectz1) rectz1++; } } else { /* all lines from top to bottom */ - if(vec1[1]<vec2[1]) { + if (vec1[1]<vec2[1]) { copy_v3_v3(v1, vec1); copy_v3_v3(v2, vec2); } @@ -797,45 +797,45 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), flo start= floor(v1[1]); end= start+floor(dy); - if(end>=zspan->recty) end= zspan->recty-1; + if (end>=zspan->recty) end= zspan->recty-1; oldx= floor(v1[0]); dx/= dy; vergz= floor(v1[2]); dz= floor((v2[2]-v1[2])/dy); - if(vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow + if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow rectz= zspan->rectz + start*zspan->rectx+ oldx; - if(zspan->rectz1) + if (zspan->rectz1) rectz1= zspan->rectz1 + start*zspan->rectx+ oldx; - if(dx<0) ofs= -1; + if (dx<0) ofs= -1; else ofs= 1; - for(y= start; y<=end; y++, rectz+=zspan->rectx) { + for (y= start; y<=end; y++, rectz+=zspan->rectx) { x= floor(v1[0]); - if(x!=oldx) { + if (x!=oldx) { oldx= x; rectz+= ofs; - if(rectz1) rectz1+= ofs; + if (rectz1) rectz1+= ofs; } - if(x>=0 && y>=0 && x<zspan->rectx) { - if(vergz < *rectz) { - if(rectz1) *rectz1= *rectz; + if (x>=0 && y>=0 && x<zspan->rectx) { + if (vergz < *rectz) { + if (rectz1) *rectz1= *rectz; *rectz= vergz; } - else if(rectz1 && vergz < *rectz1) + else if (rectz1 && vergz < *rectz1) *rectz1= vergz; } v1[0]+= dx; - if(maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; + if (maxtest && (vergz > 0x7FFFFFF0 - dz)) vergz= 0x7FFFFFF0; else vergz+= dz; - if(rectz1) + if (rectz1) rectz1+=zspan->rectx; } } @@ -854,28 +854,28 @@ static int clipline(float v1[4], float v2[4]) /* return 0: do not draw */ * filled in with zbufwire correctly when rendering in parts. otherwise * you see line endings at edges... */ - if(cliptestf(-dz, -dw, v1[3], v1[2], &u1,&u2)) { - if(cliptestf(dz, -dw, v1[3], -v1[2], &u1,&u2)) { + if (cliptestf(-dz, -dw, v1[3], v1[2], &u1,&u2)) { + if (cliptestf(dz, -dw, v1[3], -v1[2], &u1,&u2)) { dx= v2[0]-v1[0]; dz= 1.01f*(v2[3]-v1[3]); v13= 1.01f*v1[3]; - if(cliptestf(-dx, -dz, v1[0], v13, &u1,&u2)) { - if(cliptestf(dx, -dz, v13, -v1[0], &u1,&u2)) { + if (cliptestf(-dx, -dz, v1[0], v13, &u1,&u2)) { + if (cliptestf(dx, -dz, v13, -v1[0], &u1,&u2)) { dy= v2[1]-v1[1]; - if(cliptestf(-dy, -dz, v1[1], v13, &u1,&u2)) { - if(cliptestf(dy, -dz, v13, -v1[1], &u1,&u2)) { + if (cliptestf(-dy, -dz, v1[1], v13, &u1,&u2)) { + if (cliptestf(dy, -dz, v13, -v1[1], &u1,&u2)) { - if(u2<1.0f) { + if (u2<1.0f) { v2[0]= v1[0]+u2*dx; v2[1]= v1[1]+u2*dy; v2[2]= v1[2]+u2*dz; v2[3]= v1[3]+u2*dw; } - if(u1>0.0f) { + if (u1>0.0f) { v1[0]= v1[0]+u1*dx; v1[1]= v1[1]+u1*dy; v1[2]= v1[2]+u1*dz; @@ -908,9 +908,9 @@ void zbufclipwire(ZSpan *zspan, int obi, int zvlnr, int ec, float *ho1, float *h int and, or; /* edgecode: 1= draw */ - if(ec==0) return; + if (ec==0) return; - if(ho4) { + if (ho4) { and= (c1 & c2 & c3 & c4); or= (c1 | c2 | c3 | c4); } @@ -919,44 +919,44 @@ void zbufclipwire(ZSpan *zspan, int obi, int zvlnr, int ec, float *ho1, float *h or= (c1 | c2 | c3); } - if(or) { /* not in the middle */ - if(and) { /* out completely */ + if (or) { /* not in the middle */ + if (and) { /* out completely */ return; } else { /* clipping */ - if(ec & ME_V1V2) { + if (ec & ME_V1V2) { copy_v4_v4(vez, ho1); copy_v4_v4(vez+4, ho2); - if( clipline(vez, vez+4)) { + if ( clipline(vez, vez+4)) { hoco_to_zco(zspan, vez, vez); hoco_to_zco(zspan, vez+4, vez+4); zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); } } - if(ec & ME_V2V3) { + if (ec & ME_V2V3) { copy_v4_v4(vez, ho2); copy_v4_v4(vez+4, ho3); - if( clipline(vez, vez+4)) { + if ( clipline(vez, vez+4)) { hoco_to_zco(zspan, vez, vez); hoco_to_zco(zspan, vez+4, vez+4); zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); } } - if(ho4) { - if(ec & ME_V3V4) { + if (ho4) { + if (ec & ME_V3V4) { copy_v4_v4(vez, ho3); copy_v4_v4(vez+4, ho4); - if( clipline(vez, vez+4)) { + if ( clipline(vez, vez+4)) { hoco_to_zco(zspan, vez, vez); hoco_to_zco(zspan, vez+4, vez+4); zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); } } - if(ec & ME_V4V1) { + if (ec & ME_V4V1) { copy_v4_v4(vez, ho4); copy_v4_v4(vez+4, ho1); - if( clipline(vez, vez+4)) { + if ( clipline(vez, vez+4)) { hoco_to_zco(zspan, vez, vez); hoco_to_zco(zspan, vez+4, vez+4); zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); @@ -964,10 +964,10 @@ void zbufclipwire(ZSpan *zspan, int obi, int zvlnr, int ec, float *ho1, float *h } } else { - if(ec & ME_V3V1) { + if (ec & ME_V3V1) { copy_v4_v4(vez, ho3); copy_v4_v4(vez+4, ho1); - if( clipline(vez, vez+4)) { + if ( clipline(vez, vez+4)) { hoco_to_zco(zspan, vez, vez); hoco_to_zco(zspan, vez+4, vez+4); zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); @@ -982,18 +982,18 @@ void zbufclipwire(ZSpan *zspan, int obi, int zvlnr, int ec, float *ho1, float *h hoco_to_zco(zspan, vez, ho1); hoco_to_zco(zspan, vez+4, ho2); hoco_to_zco(zspan, vez+8, ho3); - if(ho4) { + if (ho4) { hoco_to_zco(zspan, vez+12, ho4); - if(ec & ME_V3V4) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+8, vez+12); - if(ec & ME_V4V1) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+12, vez); + if (ec & ME_V3V4) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+8, vez+12); + if (ec & ME_V4V1) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+12, vez); } else { - if(ec & ME_V3V1) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+8, vez); + if (ec & ME_V3V1) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+8, vez); } - if(ec & ME_V1V2) zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); - if(ec & ME_V2V3) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+4, vez+8); + if (ec & ME_V1V2) zspan->zbuflinefunc(zspan, obi, zvlnr, vez, vez+4); + if (ec & ME_V2V3) zspan->zbuflinefunc(zspan, obi, zvlnr, vez+4, vez+8); } @@ -1005,12 +1005,12 @@ void zbufsinglewire(ZSpan *zspan, int obi, int zvlnr, const float ho1[4], const c1= testclip(ho1); c2= testclip(ho2); - if(c1 | c2) { /* not in the middle */ - if(!(c1 & c2)) { /* not out completely */ + if (c1 | c2) { /* not in the middle */ + if (!(c1 & c2)) { /* not out completely */ copy_v4_v4(f1, ho1); copy_v4_v4(f2, ho2); - if(clipline(f1, f2)) { + if (clipline(f1, f2)) { hoco_to_zco(zspan, f1, f1); hoco_to_zco(zspan, f2, f2); zspan->zbuflinefunc(zspan, obi, zvlnr, f1, f2); @@ -1057,7 +1057,7 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v /* set spans */ zbuf_add_to_span(zspan, v1, v2); zbuf_add_to_span(zspan, v2, v3); - if(v4) { + if (v4) { zbuf_add_to_span(zspan, v3, v4); zbuf_add_to_span(zspan, v4, v1); } @@ -1065,13 +1065,13 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ @@ -1085,7 +1085,7 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1102,7 +1102,7 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -1111,16 +1111,16 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; - if(sn2>=sn1) { + if (sn2>=sn1) { int intzverg; zverg= (double)sn1*zxd + zy0; @@ -1130,11 +1130,11 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v rm= rectmaskofs+sn1; x= sn2-sn1; - while(x>=0) { + while (x>=0) { intzverg= (int)CLAMPIS(zverg, INT_MIN, INT_MAX); - if( intzverg > *rz || *rz==0x7FFFFFFF) { /* UNIQUE LINE: see comment above */ - if(!zspan->rectmask || intzverg > *rm) { + if ( intzverg > *rz || *rz==0x7FFFFFFF) { /* UNIQUE LINE: see comment above */ + if (!zspan->rectmask || intzverg > *rm) { *ro= obi; /* UNIQUE LINE: see comment above (order differs) */ *rz= intzverg; *rp= zvlnr; @@ -1179,7 +1179,7 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* set spans */ zbuf_add_to_span(zspan, v1, v2); zbuf_add_to_span(zspan, v2, v3); - if(v4) { + if (v4) { zbuf_add_to_span(zspan, v3, v4); zbuf_add_to_span(zspan, v4, v1); } @@ -1187,13 +1187,13 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ @@ -1207,7 +1207,7 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1224,7 +1224,7 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -1233,16 +1233,16 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; - if(sn2>=sn1) { + if (sn2>=sn1) { int intzverg; zverg= (double)sn1*zxd + zy0; @@ -1252,11 +1252,11 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, rm= rectmaskofs+sn1; x= sn2-sn1; - while(x>=0) { + while (x>=0) { intzverg= (int)CLAMPIS(zverg, INT_MIN, INT_MAX); - if(intzverg < *rz) { /* ONLY UNIQUE LINE: see comment above */ - if(!zspan->rectmask || intzverg > *rm) { + if (intzverg < *rz) { /* ONLY UNIQUE LINE: see comment above */ + if (!zspan->rectmask || intzverg > *rm) { *rz= intzverg; *rp= zvlnr; *ro= obi; /* UNIQUE LINE: see comment above (order differs) */ @@ -1306,7 +1306,7 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f /* set spans */ zbuf_add_to_span(zspan, v1, v2); zbuf_add_to_span(zspan, v2, v3); - if(v4) { + if (v4) { zbuf_add_to_span(zspan, v3, v4); zbuf_add_to_span(zspan, v4, v1); } @@ -1314,13 +1314,13 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ @@ -1334,7 +1334,7 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1345,12 +1345,12 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f /* start-offset in rect */ rectx= zspan->rectx; rectzofs= (zspan->rectz+rectx*my2); - if(zspan->rectz1) + if (zspan->rectz1) rectzofs1= (zspan->rectz1+rectx*my2); /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -1359,30 +1359,30 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; - if(sn2>=sn1) { + if (sn2>=sn1) { zverg= (double)sn1*zxd + zy0; rz= rectzofs+sn1; rz1= rectzofs1+sn1; x= sn2-sn1; - while(x>=0) { + while (x>=0) { int zvergi= (int)CLAMPIS(zverg, INT_MIN, INT_MAX); /* option: maintain two depth values, closest and 2nd closest */ - if(zvergi < *rz) { - if(rectzofs1) *rz1= *rz; + if (zvergi < *rz) { + if (rectzofs1) *rz1= *rz; *rz= zvergi; } - else if(rectzofs1 && zvergi < *rz1) + else if (rectzofs1 && zvergi < *rz1) *rz1= zvergi; zverg+= zxd; @@ -1395,7 +1395,7 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f zy0-=zyd; rectzofs-= rectx; - if(rectzofs1) rectzofs1-= rectx; + if (rectzofs1) rectzofs1-= rectx; } } @@ -1416,13 +1416,13 @@ void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ x1= v1[0]- v2[0]; @@ -1436,7 +1436,7 @@ void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; zxd= -(double)x0/(double)z0; @@ -1467,7 +1467,7 @@ void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -1476,20 +1476,20 @@ void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; u= (double)sn1*uxd + uy0; v= (double)sn1*vxd + vy0; z= (double)sn1*zxd + zy0; - for(x= sn1; x<=sn2; x++, u+=uxd, v+=vxd, z+=zxd) + for (x= sn1; x<=sn2; x++, u+=uxd, v+=vxd, z+=zxd) func(handle, x, y, u, v, z); uy0 -= uyd; @@ -1516,13 +1516,13 @@ void zspan_scanconvert(ZSpan *zspan, void *handle, float *v1, float *v2, float * zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ x1= v1[0]- v2[0]; @@ -1537,7 +1537,7 @@ void zspan_scanconvert(ZSpan *zspan, void *handle, float *v1, float *v2, float * y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + 1.0f; uxd= -(double)x0/(double)z0; @@ -1557,7 +1557,7 @@ void zspan_scanconvert(ZSpan *zspan, void *handle, float *v1, float *v2, float * /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -1566,19 +1566,19 @@ void zspan_scanconvert(ZSpan *zspan, void *handle, float *v1, float *v2, float * span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; u= (double)sn1*uxd + uy0; v= (double)sn1*vxd + vy0; - for(x= sn1; x<=sn2; x++, u+=uxd, v+=vxd) + for (x= sn1; x<=sn2; x++, u+=uxd, v+=vxd) func(handle, x, y, u, v); uy0 -= uyd; @@ -1612,7 +1612,7 @@ static void clippyra(float *labda, float *v1, float *v2, int *b2, int *b3, int a da= v2[a]-v1[a]; /* prob; we clip slightly larger, osa renders add 2 pixels on edges, should become variable? */ /* or better; increase r.winx/y size, but thats quite a complex one. do it later */ - if(a==2) { + if (a==2) { dw= (v2[3]-v1[3]); v13= v1[3]; } @@ -1627,18 +1627,21 @@ static void clippyra(float *labda, float *v1, float *v2, int *b2, int *b3, int a * who would have thought that of L&B! */ - if(cliptestf(-da, -dw, v13, v1[a], &u1,&u2)) { - if(cliptestf(da, -dw, v13, -v1[a], &u1,&u2)) { + if (cliptestf(-da, -dw, v13, v1[a], &u1,&u2)) { + if (cliptestf(da, -dw, v13, -v1[a], &u1,&u2)) { *b3=1; - if(u2<1.0f) { + if (u2<1.0f) { labda[1]= u2; *b2=1; } else labda[1]=1.0; /* u2 */ - if(u1>0.0f) { - labda[0]= u1; - *b2=1; - } else labda[0]=0.0; + if (u1>0.0f) { + labda[0] = u1; + *b2 = 1; + } + else { + labda[0] = 0.0; + } } } } @@ -1665,8 +1668,8 @@ static void makevertpyra(float *vez, float *labda, float **trias, float *v1, flo l1= labda[0]; l2= labda[1]; - if(l1!= -1.0f) { - if(l1!= 0.0f) { + if (l1!= -1.0f) { + if (l1!= 0.0f) { adr= vez+4*(*clve); trias[*b1]=adr; (*clve)++; @@ -1679,8 +1682,8 @@ static void makevertpyra(float *vez, float *labda, float **trias, float *v1, flo (*b1)++; } - if(l2!= -1.0f) { - if(l2!= 1.0f) { + if (l2!= -1.0f) { + if (l2!= 1.0f) { adr= vez+4*(*clve); trias[*b1]=adr; (*clve)++; @@ -1740,11 +1743,11 @@ static void zbuf_project_cache_clear(ZbufProjectCache *cache, int size) { int i; - if(size > ZBUF_PROJECT_CACHE_SIZE) + if (size > ZBUF_PROJECT_CACHE_SIZE) size= ZBUF_PROJECT_CACHE_SIZE; memset(cache, 0, sizeof(ZbufProjectCache)*size); - for(i=0; i<size; i++) + for (i=0; i<size; i++) cache[i].index= -1; } @@ -1752,7 +1755,7 @@ static int zbuf_shadow_project(ZbufProjectCache *cache, int index, float winmat[ { int cindex= index & 255; - if(cache[cindex].index == index) { + if (cache[cindex].index == index) { copy_v4_v4(ho, cache[cindex].ho); return cache[cindex].clip; } @@ -1782,7 +1785,7 @@ static int zbuf_part_project(ZbufProjectCache *cache, int index, float winmat[][ float vec[3]; int cindex= index & 255; - if(cache[cindex].index == index) { + if (cache[cindex].index == index) { copy_v4_v4(ho, cache[cindex].ho); return cache[cindex].clip; } @@ -1793,10 +1796,10 @@ static int zbuf_part_project(ZbufProjectCache *cache, int index, float winmat[][ projectvert(co, winmat, ho); wco= ho[3]; - if(ho[0] < bounds[0]*wco) clipflag |= 1; - else if(ho[0] > bounds[1]*wco) clipflag |= 2; - if(ho[1] > bounds[3]*wco) clipflag |= 4; - else if(ho[1] < bounds[2]*wco) clipflag |= 8; + if (ho[0] < bounds[0]*wco) clipflag |= 1; + else if (ho[0] > bounds[1]*wco) clipflag |= 2; + if (ho[1] > bounds[3]*wco) clipflag |= 4; + else if (ho[1] < bounds[2]*wco) clipflag |= 8; copy_v4_v4(cache[cindex].ho, ho); cache[cindex].clip= clipflag; @@ -1816,7 +1819,7 @@ void zbuf_render_project(float winmat[][4], const float co[3], float ho[4]) void zbuf_make_winmat(Render *re, float winmat[][4]) { - if(re->r.mode & R_PANORAMA) { + if (re->r.mode & R_PANORAMA) { float panomat[4][4]= MAT4_UNITY; panomat[0][0]= re->panoco; @@ -1837,10 +1840,11 @@ void zbufclip(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3, float *vlzp[32][3], labda[3][2]; float vez[400], *trias[40]; - if(c1 | c2 | c3) { /* not in middle */ - if(c1 & c2 & c3) { /* completely out */ + if (c1 | c2 | c3) { /* not in middle */ + if (c1 & c2 & c3) { /* completely out */ return; - } else { /* clipping */ + } + else { /* clipping */ int arg, v, b, clipflag[3], b1, b2, b3, c4, clve=3, clvlo, clvl=1; vez[0]= f1[0]; vez[1]= f1[1]; vez[2]= f1[2]; vez[3]= f1[3]; @@ -1852,24 +1856,24 @@ void zbufclip(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3, vlzp[0][2]= vez+8; clipflag[0]= ( (c1 & 48) | (c2 & 48) | (c3 & 48) ); - if(clipflag[0]==0) { /* othwerwise it needs to be calculated again, after the first (z) clip */ + if (clipflag[0]==0) { /* othwerwise it needs to be calculated again, after the first (z) clip */ clipflag[1]= ( (c1 & 3) | (c2 & 3) | (c3 & 3) ); clipflag[2]= ( (c1 & 12) | (c2 & 12) | (c3 & 12) ); } else clipflag[1]=clipflag[2]= 0; - for(b=0;b<3;b++) { + for (b=0;b<3;b++) { - if(clipflag[b]) { + if (clipflag[b]) { clvlo= clvl; - for(v=0; v<clvlo; v++) { + for (v=0; v<clvlo; v++) { - if(vlzp[v][0]!=NULL) { /* face is still there */ + if (vlzp[v][0]!=NULL) { /* face is still there */ b2= b3 =0; /* clip flags */ - if(b==0) arg= 2; + if (b==0) arg= 2; else if (b==1) arg= 0; else arg= 1; @@ -1877,27 +1881,29 @@ void zbufclip(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3, clippyra(labda[1], vlzp[v][1],vlzp[v][2], &b2,&b3, arg, zspan->clipcrop); clippyra(labda[2], vlzp[v][2],vlzp[v][0], &b2,&b3, arg, zspan->clipcrop); - if(b2==0 && b3==1) { + if (b2==0 && b3==1) { /* completely 'in', but we copy because of last for() loop in this section */; vlzp[clvl][0]= vlzp[v][0]; vlzp[clvl][1]= vlzp[v][1]; vlzp[clvl][2]= vlzp[v][2]; vlzp[v][0]= NULL; clvl++; - } else if(b3==0) { + } + else if (b3==0) { vlzp[v][0]= NULL; /* completely 'out' */; - } else { + } + else { b1=0; makevertpyra(vez, labda[0], trias, vlzp[v][0],vlzp[v][1], &b1,&clve); makevertpyra(vez, labda[1], trias, vlzp[v][1],vlzp[v][2], &b1,&clve); makevertpyra(vez, labda[2], trias, vlzp[v][2],vlzp[v][0], &b1,&clve); /* after front clip done: now set clip flags */ - if(b==0) { + if (b==0) { clipflag[1]= clipflag[2]= 0; f1= vez; - for(b3=0; b3<clve; b3++) { + for (b3=0; b3<clve; b3++) { c4= testclip(f1); clipflag[1] |= (c4 & 3); clipflag[2] |= (c4 & 12); @@ -1906,8 +1912,8 @@ void zbufclip(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3, } vlzp[v][0]= NULL; - if(b1>2) { - for(b3=3; b3<=b1; b3++) { + if (b1>2) { + for (b3=3; b3<=b1; b3++) { vlzp[clvl][0]= trias[0]; vlzp[clvl][1]= trias[b3-2]; vlzp[clvl][2]= trias[b3-1]; @@ -1921,16 +1927,16 @@ void zbufclip(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3, } /* warning, this should never happen! */ - if(clve>38 || clvl>31) printf("clip overflow: clve clvl %d %d\n",clve,clvl); + if (clve>38 || clvl>31) printf("clip overflow: clve clvl %d %d\n",clve,clvl); /* perspective division */ f1=vez; - for(c1=0;c1<clve;c1++) { + for (c1=0;c1<clve;c1++) { hoco_to_zco(zspan, f1, f1); f1+=4; } - for(b=1;b<clvl;b++) { - if(vlzp[b][0]) { + for (b=1;b<clvl;b++) { + if (vlzp[b][0]) { zspan->zbuffunc(zspan, obi, zvlnr, vlzp[b][0],vlzp[b][1],vlzp[b][2], NULL); } } @@ -1949,10 +1955,11 @@ void zbufclip4(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3 { float vez[16]; - if(c1 | c2 | c3 | c4) { /* not in middle */ - if(c1 & c2 & c3 & c4) { /* completely out */ + if (c1 | c2 | c3 | c4) { /* not in middle */ + if (c1 & c2 & c3 & c4) { /* completely out */ return; - } else { /* clipping */ + } + else { /* clipping */ zbufclip(zspan, obi, zvlnr, f1, f2, f3, c1, c2, c3); zbufclip(zspan, obi, zvlnr, f1, f3, f4, c1, c3, c4); } @@ -1970,7 +1977,7 @@ void zbufclip4(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3 /* ************** ZMASK ******************************** */ -#define EXTEND_PIXEL(a) if(temprectp[a]) {z+= rectz[a]; tot++;} +#define EXTEND_PIXEL(a) if (temprectp[a]) {z+= rectz[a]; tot++;} /* changes the zbuffer to be ready for z-masking: applies an extend-filter, and then clears */ static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg) @@ -1983,21 +1990,21 @@ static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg) /* extend: if pixel is not filled in, we check surrounding pixels and average z value */ - for(y=1; y<=ys; y++) { + for (y=1; y<=ys; y++) { /* setup row indices */ row1= (y-2)*xs; row2= row1 + xs; row3= row2 + xs; - if(y==1) + if (y==1) row1= row2; - else if(y==ys) + else if (y==ys) row3= row2; curp= rectp + (y-1)*xs; curz= rectz + (y-1)*xs; - for(x=0; x<xs; x++, curp++, curz++) { - if(curp[0]==0) { + for (x=0; x<xs; x++, curp++, curz++) { + if (curp[0]==0) { int tot= 0; float z= 0.0f; @@ -2006,19 +2013,19 @@ static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg) EXTEND_PIXEL(row3); EXTEND_PIXEL(row1 + 1); EXTEND_PIXEL(row3 + 1); - if(x!=xs-1) { + if (x!=xs-1) { EXTEND_PIXEL(row1 + 2); EXTEND_PIXEL(row2 + 2); EXTEND_PIXEL(row3 + 2); } - if(tot) { + if (tot) { len++; curz[0]= (int)(z/(float)tot); curp[0]= -1; /* env */ } } - if(x!=0) { + if (x!=0) { row1++; row2++; row3++; } } @@ -2026,11 +2033,11 @@ static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg) MEM_freeN(temprectp); - if(neg); /* z values for negative are already correct */ + if (neg); /* z values for negative are already correct */ else { /* clear not filled z values */ - for(len= xs*ys -1; len>=0; len--) { - if(rectp[len]==0) { + for (len= xs*ys -1; len>=0; len--) { + if (rectp[len]==0) { rectz[len] = -0x7FFFFFFF; rectp[len]= -1; /* env code */ } @@ -2065,7 +2072,7 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, samples= (R.osa? R.osa: 1); samples= MIN2(4, samples-pa->sample); - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; zbuffer_part_bounds(R.winx, R.winy, pa, bounds); @@ -2075,11 +2082,11 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, zspan->zmulx= ((float)R.winx)/2.0f; zspan->zmuly= ((float)R.winy)/2.0f; - if(R.osa) { + if (R.osa) { zspan->zofsx= -pa->disprect.xmin - R.jit[pa->sample+zsample][0]; zspan->zofsy= -pa->disprect.ymin - R.jit[pa->sample+zsample][1]; } - else if(R.i.curblur) { + else if (R.i.curblur) { zspan->zofsx= -pa->disprect.xmin - R.mblur_jit[R.i.curblur-1][0]; zspan->zofsy= -pa->disprect.ymin - R.mblur_jit[R.i.curblur-1][1]; } @@ -2092,11 +2099,11 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, zspan->zofsy -= 0.5f; /* the buffers */ - if(zsample == samples-1) { + if (zsample == samples-1) { zspan->rectp= pa->rectp; zspan->recto= pa->recto; - if(neg_zmask) + if (neg_zmask) zspan->rectz= pa->rectmask; else zspan->rectz= pa->rectz; @@ -2113,17 +2120,17 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, } /* in case zmask we fill Z for objects in lay_zmask first, then clear Z, and then do normal zbuffering */ - if(rl->layflag & SCE_LAY_ZMASK) + if (rl->layflag & SCE_LAY_ZMASK) zmaskpass= 1; - for(; zmaskpass >=0; zmaskpass--) { + for (; zmaskpass >=0; zmaskpass--) { ma= NULL; /* filling methods */ - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; - if(zmaskpass && neg_zmask) + if (zmaskpass && neg_zmask) zspan->zbuffunc= zbuffillGLinv4; else zspan->zbuffunc= zbuffillGL4; @@ -2131,48 +2138,48 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, } /* regular zbuffering loop, does all sample buffers */ - for(i=0, obi=R.instancetable.first; obi; i++, obi=obi->next) { + for (i=0, obi=R.instancetable.first; obi; i++, obi=obi->next) { obr= obi->obr; /* continue happens in 2 different ways... zmaskpass only does lay_zmask stuff */ - if(zmaskpass) { - if((obi->lay & lay_zmask)==0) + if (zmaskpass) { + if ((obi->lay & lay_zmask)==0) continue; } - else if(!all_z && !(obi->lay & (lay|lay_zmask))) + else if (!all_z && !(obi->lay & (lay|lay_zmask))) continue; - if(obi->flag & R_TRANSFORMED) + if (obi->flag & R_TRANSFORMED) mult_m4_m4m4(obwinmat, winmat, obi->mat); else copy_m4_m4(obwinmat, winmat); - if(clip_render_object(obi->obr->boundbox, bounds, obwinmat)) + if (clip_render_object(obi->obr->boundbox, bounds, obwinmat)) continue; zbuf_project_cache_clear(cache, obr->totvert); - for(v=0; v<obr->totvlak; v++) { - if((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak; + for (v=0; v<obr->totvlak; v++) { + if ((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak; else vlr++; /* the cases: visible for render, only z values, zmask, nothing */ - if(obi->lay & lay) { - if(vlr->mat!=ma) { + if (obi->lay & lay) { + if (vlr->mat!=ma) { ma= vlr->mat; nofill= (ma->mode & MA_ONLYCAST) || ((ma->mode & MA_TRANSP) && (ma->mode & MA_ZTRANSP)); env= (ma->mode & MA_ENV); wire= (ma->material_type == MA_TYPE_WIRE); - for(zsample=0; zsample<samples; zsample++) { - if(ma->mode & MA_ZINV || (zmaskpass && neg_zmask)) + for (zsample=0; zsample<samples; zsample++) { + if (ma->mode & MA_ZINV || (zmaskpass && neg_zmask)) zspans[zsample].zbuffunc= zbuffillGLinv4; else zspans[zsample].zbuffunc= zbuffillGL4; } } } - else if(all_z || (obi->lay & lay_zmask)) { + else if (all_z || (obi->lay & lay_zmask)) { env= 1; nofill= 0; ma= NULL; @@ -2182,7 +2189,7 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, ma= NULL; /* otherwise nofill can hang */ } - if(!(vlr->flag & R_HIDDEN) && nofill==0) { + if (!(vlr->flag & R_HIDDEN) && nofill==0) { unsigned short partclip; v1= vlr->v1; @@ -2196,39 +2203,39 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, /* partclipping doesn't need viewplane clipping */ partclip= c1 & c2 & c3; - if(v4) { + if (v4) { c4= zbuf_part_project(cache, v4->index, obwinmat, bounds, v4->co, ho4); partclip &= c4; } - if(partclip==0) { + if (partclip==0) { - if(env) zvlnr= -1; + if (env) zvlnr= -1; else zvlnr= v+1; c1= testclip(ho1); c2= testclip(ho2); c3= testclip(ho3); - if(v4) + if (v4) c4= testclip(ho4); - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; - if(wire) { - if(v4) + if (wire) { + if (v4) zbufclipwire(zspan, i, zvlnr, vlr->ec, ho1, ho2, ho3, ho4, c1, c2, c3, c4); else zbufclipwire(zspan, i, zvlnr, vlr->ec, ho1, ho2, ho3, 0, c1, c2, c3, 0); } else { /* strands allow to be filled in as quad */ - if(v4 && (vlr->flag & R_STRAND)) { + if (v4 && (vlr->flag & R_STRAND)) { zbufclip4(zspan, i, zvlnr, ho1, ho2, ho3, ho4, c1, c2, c3, c4); } else { zbufclip(zspan, i, zvlnr, ho1, ho2, ho3, c1, c2, c3); - if(v4) + if (v4) zbufclip(zspan, i, (env)? zvlnr: zvlnr+RE_QUAD_OFFS, ho1, ho3, ho4, c1, c3, c4); } } @@ -2239,13 +2246,13 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, } /* clear all z to close value, so it works as mask for next passes (ztra+strand) */ - if(zmaskpass) { - for(zsample=0; zsample<samples; zsample++) { + if (zmaskpass) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; - if(neg_zmask) { + if (neg_zmask) { zspan->rectmask= zspan->rectz; - if(zsample == samples-1) + if (zsample == samples-1) zspan->rectz= pa->rectz; else zspan->rectz= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "rectz"); @@ -2259,17 +2266,17 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, } } - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; - if(fillfunc) + if (fillfunc) fillfunc(pa, zspan, pa->sample+zsample, data); - if(zsample != samples-1) { + if (zsample != samples-1) { MEM_freeN(zspan->rectz); MEM_freeN(zspan->rectp); MEM_freeN(zspan->recto); - if(zspan->rectmask) + if (zspan->rectmask) MEM_freeN(zspan->rectmask); } @@ -2292,7 +2299,7 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int float obwinmat[4][4], ho1[4], ho2[4], ho3[4], ho4[4]; int a, b, c, i, c1, c2, c3, c4, ok=1, lay= -1; - if(lar->mode & (LA_LAYER|LA_LAYER_SHADOW)) lay= lar->lay; + if (lar->mode & (LA_LAYER|LA_LAYER_SHADOW)) lay= lar->lay; /* 1.0f for clipping in clippyra()... bad stuff actually */ zbuf_alloc_span(&zspan, size, size, 1.0f); @@ -2305,7 +2312,7 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int /* the buffers */ zspan.rectz= rectz; fillrect(rectz, size, size, 0x7FFFFFFE); - if(lar->buftype==LA_SHADBUF_HALFWAY) { + if (lar->buftype==LA_SHADBUF_HALFWAY) { zspan.rectz1= MEM_mallocN(size*size*sizeof(int), "seconday z buffer"); fillrect(zspan.rectz1, size, size, 0x7FFFFFFE); } @@ -2314,44 +2321,44 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int zspan.zbuflinefunc= zbufline_onlyZ; zspan.zbuffunc= zbuffillGL_onlyZ; - for(i=0, obi=re->instancetable.first; obi; i++, obi=obi->next) { + for (i=0, obi=re->instancetable.first; obi; i++, obi=obi->next) { obr= obi->obr; - if(obr->ob==re->excludeob) + if (obr->ob==re->excludeob) continue; - else if(!(obi->lay & lay)) + else if (!(obi->lay & lay)) continue; - if(obi->flag & R_TRANSFORMED) + if (obi->flag & R_TRANSFORMED) mult_m4_m4m4(obwinmat, winmat, obi->mat); else copy_m4_m4(obwinmat, winmat); - if(clip_render_object(obi->obr->boundbox, NULL, obwinmat)) + if (clip_render_object(obi->obr->boundbox, NULL, obwinmat)) continue; zbuf_project_cache_clear(cache, obr->totvert); /* faces */ - for(a=0; a<obr->totvlak; a++) { + for (a=0; a<obr->totvlak; a++) { - if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; + if ((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++; /* note, these conditions are copied in shadowbuf_autoclip() */ - if(vlr->mat!= ma) { + if (vlr->mat!= ma) { ma= vlr->mat; ok= 1; - if((ma->mode & MA_SHADBUF)==0) ok= 0; + if ((ma->mode & MA_SHADBUF)==0) ok= 0; } - if(ok && (obi->lay & lay) && !(vlr->flag & R_HIDDEN)) { + if (ok && (obi->lay & lay) && !(vlr->flag & R_HIDDEN)) { c1= zbuf_shadow_project(cache, vlr->v1->index, obwinmat, vlr->v1->co, ho1); c2= zbuf_shadow_project(cache, vlr->v2->index, obwinmat, vlr->v2->co, ho2); c3= zbuf_shadow_project(cache, vlr->v3->index, obwinmat, vlr->v3->co, ho3); - if((ma->material_type == MA_TYPE_WIRE) || (vlr->flag & R_STRAND)) { - if(vlr->v4) { + if ((ma->material_type == MA_TYPE_WIRE) || (vlr->flag & R_STRAND)) { + if (vlr->v4) { c4= zbuf_shadow_project(cache, vlr->v4->index, obwinmat, vlr->v4->co, ho4); zbufclipwire(&zspan, 0, a+1, vlr->ec, ho1, ho2, ho3, ho4, c1, c2, c3, c4); } @@ -2359,7 +2366,7 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int zbufclipwire(&zspan, 0, a+1, vlr->ec, ho1, ho2, ho3, 0, c1, c2, c3, 0); } else { - if(vlr->v4) { + if (vlr->v4) { c4= zbuf_shadow_project(cache, vlr->v4->index, obwinmat, vlr->v4->co, ho4); zbufclip4(&zspan, 0, 0, ho1, ho2, ho3, ho4, c1, c2, c3, c4); } @@ -2368,20 +2375,20 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int } } - if((a & 255)==255 && re->test_break(re->tbh)) + if ((a & 255)==255 && re->test_break(re->tbh)) break; } /* strands */ - if(obr->strandbuf) { + if (obr->strandbuf) { /* for each bounding box containing a number of strands */ sbound= obr->strandbuf->bound; - for(c=0; c<obr->strandbuf->totbound; c++, sbound++) { - if(clip_render_object(sbound->boundbox, NULL, obwinmat)) + for (c=0; c<obr->strandbuf->totbound; c++, sbound++) { + if (clip_render_object(sbound->boundbox, NULL, obwinmat)) continue; /* for each strand in this bounding box */ - for(a=sbound->start; a<sbound->end; a++) { + for (a=sbound->start; a<sbound->end; a++) { strand= RE_findOrAddStrand(obr, a); sseg.obi= obi; @@ -2392,16 +2399,16 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int svert= strand->vert; /* note, these conditions are copied in shadowbuf_autoclip() */ - if(sseg.buffer->ma!= ma) { + if (sseg.buffer->ma!= ma) { ma= sseg.buffer->ma; ok= 1; - if((ma->mode & MA_SHADBUF)==0) ok= 0; + if ((ma->mode & MA_SHADBUF)==0) ok= 0; } - if(ok && (sseg.buffer->lay & lay)) { + if (ok && (sseg.buffer->lay & lay)) { zbuf_project_cache_clear(cache, strand->totvert); - for(b=0; b<strand->totvert-1; b++, svert++) { + for (b=0; b<strand->totvert-1; b++, svert++) { sseg.v[0]= (b > 0)? (svert-1): svert; sseg.v[1]= svert; sseg.v[2]= svert+1; @@ -2412,24 +2419,24 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int c3= zbuf_shadow_project(cache, sseg.v[2]-strand->vert, obwinmat, sseg.v[2]->co, ho3); c4= zbuf_shadow_project(cache, sseg.v[3]-strand->vert, obwinmat, sseg.v[3]->co, ho4); - if(!(c1 & c2 & c3 & c4)) + if (!(c1 & c2 & c3 & c4)) render_strand_segment(re, winmat, NULL, &zspan, 1, &sseg); } } - if((a & 255)==255 && re->test_break(re->tbh)) + if ((a & 255)==255 && re->test_break(re->tbh)) break; } } } - if(re->test_break(re->tbh)) + if (re->test_break(re->tbh)) break; } /* merge buffers */ - if(lar->buftype==LA_SHADBUF_HALFWAY) { - for(a=size*size -1; a>=0; a--) + if (lar->buftype==LA_SHADBUF_HALFWAY) { + for (a=size*size -1; a>=0; a--) rectz[a]= (rectz[a]>>1) + (zspan.rectz1[a]>>1); MEM_freeN(zspan.rectz1); @@ -2449,7 +2456,7 @@ static void zbuffill_sss(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* set spans */ zbuf_add_to_span(zspan, v1, v2); zbuf_add_to_span(zspan, v2, v3); - if(v4) { + if (v4) { zbuf_add_to_span(zspan, v3, v4); zbuf_add_to_span(zspan, v4, v1); } @@ -2457,12 +2464,12 @@ static void zbuffill_sss(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, zbuf_add_to_span(zspan, v3, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ x1= v1[0]- v2[0]; @@ -2476,7 +2483,7 @@ static void zbuffill_sss(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; zxd= -(double)x0/(double)z0; @@ -2485,7 +2492,7 @@ static void zbuffill_sss(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -2494,17 +2501,17 @@ static void zbuffill_sss(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; z= (double)sn1*zxd + zy0; - for(x= sn1; x<=sn2; x++, z+=zxd) + for (x= sn1; x<=sn2; x++, z+=zxd) zspan->sss_func(zspan->sss_handle, obi, zvlnr, x, y, z); zy0 -= zyd; @@ -2544,41 +2551,41 @@ void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(vo zspan.zbuffunc= zbuffill_sss; /* fill front and back zbuffer */ - if(pa->rectz) { + if (pa->rectz) { fillrect(pa->recto, pa->rectx, pa->recty, 0); fillrect(pa->rectp, pa->rectx, pa->recty, 0); fillrect(pa->rectz, pa->rectx, pa->recty, 0x7FFFFFFF); } - if(pa->rectbackz) { + if (pa->rectbackz) { fillrect(pa->rectbacko, pa->rectx, pa->recty, 0); fillrect(pa->rectbackp, pa->rectx, pa->recty, 0); fillrect(pa->rectbackz, pa->rectx, pa->recty, -0x7FFFFFFF); } - for(i=0, obi=R.instancetable.first; obi; i++, obi=obi->next) { + for (i=0, obi=R.instancetable.first; obi; i++, obi=obi->next) { obr= obi->obr; - if(!(obi->lay & lay)) + if (!(obi->lay & lay)) continue; - if(obi->flag & R_TRANSFORMED) + if (obi->flag & R_TRANSFORMED) mult_m4_m4m4(obwinmat, winmat, obi->mat); else copy_m4_m4(obwinmat, winmat); - if(clip_render_object(obi->obr->boundbox, bounds, obwinmat)) + if (clip_render_object(obi->obr->boundbox, bounds, obwinmat)) continue; zbuf_project_cache_clear(cache, obr->totvert); - for(v=0; v<obr->totvlak; v++) { - if((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak; + for (v=0; v<obr->totvlak; v++) { + if ((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak; else vlr++; - if(material_in_material(vlr->mat, sss_ma)) { + if (material_in_material(vlr->mat, sss_ma)) { /* three cases, visible for render, only z values and nothing */ - if(obi->lay & lay) { - if(vlr->mat!=ma) { + if (obi->lay & lay) { + if (vlr->mat!=ma) { ma= vlr->mat; nofill= ma->mode & MA_ONLYCAST; env= (ma->mode & MA_ENV); @@ -2590,7 +2597,7 @@ void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(vo ma= NULL; /* otherwise nofill can hang */ } - if(nofill==0 && wire==0 && env==0) { + if (nofill==0 && wire==0 && env==0) { unsigned short partclip; v1= vlr->v1; @@ -2604,19 +2611,19 @@ void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(vo /* partclipping doesn't need viewplane clipping */ partclip= c1 & c2 & c3; - if(v4) { + if (v4) { c4= zbuf_part_project(cache, v4->index, obwinmat, bounds, v4->co, ho4); partclip &= c4; } - if(partclip==0) { + if (partclip==0) { c1= testclip(ho1); c2= testclip(ho2); c3= testclip(ho3); zvlnr= v+1; zbufclip(&zspan, i, zvlnr, ho1, ho2, ho3, c1, c2, c3); - if(v4) { + if (v4) { c4= testclip(ho4); zbufclip(&zspan, i, zvlnr+RE_QUAD_OFFS, ho1, ho3, ho4, c1, c3, c4); } @@ -2658,13 +2665,13 @@ static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float zbuf_add_to_span(zspan, v4, v1); /* clipped */ - if(zspan->minp2==NULL || zspan->maxp2==NULL) return; + if (zspan->minp2==NULL || zspan->maxp2==NULL) return; - if(zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; - if(zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; + if (zspan->miny1 < zspan->miny2) my0= zspan->miny2; else my0= zspan->miny1; + if (zspan->maxy1 > zspan->maxy2) my2= zspan->maxy2; else my2= zspan->maxy1; // printf("my %d %d\n", my0, my2); - if(my2<my0) return; + if (my2<my0) return; /* ZBUF DX DY, in floats still */ x1= v1[0]- v2[0]; @@ -2677,7 +2684,7 @@ static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0f) return; + if (z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -2692,7 +2699,7 @@ static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float /* correct span */ sn1= (my0 + my2)/2; - if(zspan->span1[sn1] < zspan->span2[sn1]) { + if (zspan->span1[sn1] < zspan->span2[sn1]) { span1= zspan->span1+my2; span2= zspan->span2+my2; } @@ -2701,23 +2708,23 @@ static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float span2= zspan->span1+my2; } - for(y=my2; y>=my0; y--, span1--, span2--) { + for (y=my2; y>=my0; y--, span1--, span2--) { sn1= floor(*span1); sn2= floor(*span2); sn1++; - if(sn2>=rectx) sn2= rectx-1; - if(sn1<0) sn1= 0; + if (sn2>=rectx) sn2= rectx-1; + if (sn1<0) sn1= 0; - if(sn2>=sn1) { + if (sn2>=sn1) { zverg= (double)sn1*zxd + zy0; rz= rectzofs+sn1; rp= rectpofs+sn1; x= sn2-sn1; - while(x>=0) { - if( zverg < *rz) { + while (x>=0) { + if ( zverg < *rz) { *rz= zverg; *rp= *col; } @@ -2743,14 +2750,14 @@ void antialias_tagbuf(int xsize, int ysize, char *rectmove) int a, x, y, step; /* 1: tag pixels to be candidate for AA */ - for(y=2; y<ysize; y++) { + for (y=2; y<ysize; y++) { /* setup rows */ row1= rectmove + (y-2)*xsize; row2= row1 + xsize; row3= row2 + xsize; - for(x=2; x<xsize; x++, row1++, row2++, row3++) { - if(row2[1]) { - if(row2[0]==0 || row2[2]==0 || row1[1]==0 || row3[1]==0) + for (x=2; x<xsize; x++, row1++, row2++, row3++) { + if (row2[1]) { + if (row2[0]==0 || row2[2]==0 || row1[1]==0 || row3[1]==0) row2[1]= 128; } } @@ -2758,22 +2765,22 @@ void antialias_tagbuf(int xsize, int ysize, char *rectmove) /* 2: evaluate horizontal scanlines and calculate alphas */ row1= rectmove; - for(y=0; y<ysize; y++) { + for (y=0; y<ysize; y++) { row1++; - for(x=1; x<xsize; x++, row1++) { - if(row1[0]==128 && row1[1]==128) { + for (x=1; x<xsize; x++, row1++) { + if (row1[0]==128 && row1[1]==128) { /* find previous color and next color and amount of steps to blend */ prev= row1[-1]; step= 1; - while(x+step<xsize && row1[step]==128) + while (x+step<xsize && row1[step]==128) step++; - if(x+step!=xsize) { + if (x+step!=xsize) { /* now we can blend values */ next= row1[step]; /* note, prev value can be next value, but we do this loop to clear 128 then */ - for(a=0; a<step; a++) { + for (a=0; a<step; a++) { int fac, mfac; fac= ((a+1)<<8)/(step+1); @@ -2788,22 +2795,22 @@ void antialias_tagbuf(int xsize, int ysize, char *rectmove) /* 3: evaluate vertical scanlines and calculate alphas */ /* use for reading a copy of the original tagged buffer */ - for(x=0; x<xsize; x++) { + for (x=0; x<xsize; x++) { row1= rectmove + x+xsize; - for(y=1; y<ysize; y++, row1+=xsize) { - if(row1[0]==128 && row1[xsize]==128) { + for (y=1; y<ysize; y++, row1+=xsize) { + if (row1[0]==128 && row1[xsize]==128) { /* find previous color and next color and amount of steps to blend */ prev= row1[-xsize]; step= 1; - while(y+step<ysize && row1[step*xsize]==128) + while (y+step<ysize && row1[step*xsize]==128) step++; - if(y+step!=ysize) { + if (y+step!=ysize) { /* now we can blend values */ next= row1[step*xsize]; /* note, prev value can be next value, but we do this loop to clear 128 then */ - for(a=0; a<step; a++) { + for (a=0; a<step; a++) { int fac, mfac; fac= ((a+1)<<8)/(step+1); @@ -2817,14 +2824,14 @@ void antialias_tagbuf(int xsize, int ysize, char *rectmove) } /* last: pixels with 0 we fill in zbuffer, with 1 we skip for mask */ - for(y=2; y<ysize; y++) { + for (y=2; y<ysize; y++) { /* setup rows */ row1= rectmove + (y-2)*xsize; row2= row1 + xsize; row3= row2 + xsize; - for(x=2; x<xsize; x++, row1++, row2++, row3++) { - if(row2[1]==0) { - if(row2[0]>1 || row2[2]>1 || row1[1]>1 || row3[1]>1) + for (x=2; x<xsize; x++, row1++, row2++, row3++) { + if (row2[1]==0) { + if (row2[0]>1 || row2[2]>1 || row1[1]>1 || row3[1]>1) row2[1]= 1; } } @@ -2895,16 +2902,16 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* debug... check if PASS_VECTOR_MAX still is in buffers */ dvec1= vecbufrect; - for(x= 4*xsize*ysize; x>0; x--, dvec1++) { - if(dvec1[0]==PASS_VECTOR_MAX) { + for (x= 4*xsize*ysize; x>0; x--, dvec1++) { + if (dvec1[0]==PASS_VECTOR_MAX) { dvec1[0]= 0.0f; tsktsk= 1; } } - if(tsktsk) printf("Found uninitialized speed in vector buffer... fixed.\n"); + if (tsktsk) printf("Found uninitialized speed in vector buffer... fixed.\n"); /* min speed? then copy speedbuffer to recalculate speed vectors */ - if(nbd->minspeed) { + if (nbd->minspeed) { float minspeed= (float)nbd->minspeed; float minspeedsq= minspeed*minspeed; @@ -2912,14 +2919,14 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * dvec1= vecbufrect; dvec2= minvecbufrect; - for(x= 2*xsize*ysize; x>0; x--, dvec1+=2, dvec2+=2) { - if(dvec1[0]==0.0f && dvec1[1]==0.0f) { + for (x= 2*xsize*ysize; x>0; x--, dvec1+=2, dvec2+=2) { + if (dvec1[0]==0.0f && dvec1[1]==0.0f) { dvec2[0]= dvec1[0]; dvec2[1]= dvec1[1]; } else { float speedsq= dvec1[0]*dvec1[0] + dvec1[1]*dvec1[1]; - if(speedsq <= minspeedsq) { + if (speedsq <= minspeedsq) { dvec2[0]= 0.0f; dvec2[1]= 0.0f; } @@ -2936,70 +2943,70 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* make vertex buffer with averaged speed and zvalues */ rectvz= MEM_mapallocN(4*sizeof(float)*(xsize+1)*(ysize+1), "vertices"); dvz= rectvz; - for(y=0; y<=ysize; y++) { + for (y=0; y<=ysize; y++) { - if(y==0) + if (y==0) dvec1= vecbufrect + 4*y*xsize; else dvec1= vecbufrect + 4*(y-1)*xsize; - if(y==ysize) + if (y==ysize) dvec2= vecbufrect + 4*(y-1)*xsize; else dvec2= vecbufrect + 4*y*xsize; - for(x=0; x<=xsize; x++) { + for (x=0; x<=xsize; x++) { /* two vectors, so a step loop */ - for(step=0; step<2; step++, dvec1+=2, dvec2+=2, dvz+=2) { + for (step=0; step<2; step++, dvec1+=2, dvec2+=2, dvz+=2) { /* average on minimal speed */ int div= 0; - if(x!=0) { - if(dvec1[-4]!=0.0f || dvec1[-3]!=0.0f) { + if (x!=0) { + if (dvec1[-4]!=0.0f || dvec1[-3]!=0.0f) { dvz[0]= dvec1[-4]; dvz[1]= dvec1[-3]; div++; } - if(dvec2[-4]!=0.0f || dvec2[-3]!=0.0f) { - if(div==0) { + if (dvec2[-4]!=0.0f || dvec2[-3]!=0.0f) { + if (div==0) { dvz[0]= dvec2[-4]; dvz[1]= dvec2[-3]; div++; } - else if( (ABS(dvec2[-4]) + ABS(dvec2[-3]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { + else if ( (ABS(dvec2[-4]) + ABS(dvec2[-3]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { dvz[0]= dvec2[-4]; dvz[1]= dvec2[-3]; } } } - if(x!=xsize) { - if(dvec1[0]!=0.0f || dvec1[1]!=0.0f) { - if(div==0) { + if (x!=xsize) { + if (dvec1[0]!=0.0f || dvec1[1]!=0.0f) { + if (div==0) { dvz[0]= dvec1[0]; dvz[1]= dvec1[1]; div++; } - else if( (ABS(dvec1[0]) + ABS(dvec1[1]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { + else if ( (ABS(dvec1[0]) + ABS(dvec1[1]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { dvz[0]= dvec1[0]; dvz[1]= dvec1[1]; } } - if(dvec2[0]!=0.0f || dvec2[1]!=0.0f) { - if(div==0) { + if (dvec2[0]!=0.0f || dvec2[1]!=0.0f) { + if (div==0) { dvz[0]= dvec2[0]; dvz[1]= dvec2[1]; } - else if( (ABS(dvec2[0]) + ABS(dvec2[1]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { + else if ( (ABS(dvec2[0]) + ABS(dvec2[1]))< (ABS(dvz[0]) + ABS(dvz[1])) ) { dvz[0]= dvec2[0]; dvz[1]= dvec2[1]; } } } - if(maxspeed) { + if (maxspeed) { float speedsq= dvz[0]*dvz[0] + dvz[1]*dvz[1]; - if(speedsq > maxspeedsq) { + if (speedsq > maxspeedsq) { speedsq= (float)maxspeed/sqrt(speedsq); dvz[0]*= speedsq; dvz[1]*= speedsq; @@ -3012,7 +3019,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* set border speeds to keep border speeds on border */ dz1= rectvz; dz2= rectvz+4*(ysize)*(xsize+1); - for(x=0; x<=xsize; x++, dz1+=4, dz2+=4) { + for (x=0; x<=xsize; x++, dz1+=4, dz2+=4) { dz1[1]= 0.0f; dz2[1]= 0.0f; dz1[3]= 0.0f; @@ -3020,7 +3027,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * } dz1= rectvz; dz2= rectvz+4*(xsize); - for(y=0; y<=ysize; y++, dz1+=4*(xsize+1), dz2+=4*(xsize+1)) { + for (y=0; y<=ysize; y++, dz1+=4*(xsize+1), dz2+=4*(xsize+1)) { dz1[0]= 0.0f; dz2[0]= 0.0f; dz1[2]= 0.0f; @@ -3030,15 +3037,15 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* tag moving pixels, only these faces we draw */ dm= rectmove; dvec1= vecbufrect; - for(x=xsize*ysize; x>0; x--, dm++, dvec1+=4) { - if((dvec1[0]!=0.0f || dvec1[1]!=0.0f || dvec1[2]!=0.0f || dvec1[3]!=0.0f)) + for (x=xsize*ysize; x>0; x--, dm++, dvec1+=4) { + if ((dvec1[0]!=0.0f || dvec1[1]!=0.0f || dvec1[2]!=0.0f || dvec1[3]!=0.0f)) *dm= 255; } antialias_tagbuf(xsize, ysize, rectmove); /* has to become static, the init-jit calls a random-seed, screwing up texture noise node */ - if(firsttime) { + if (firsttime) { firsttime= 0; BLI_initjit(jit[0], 256); } @@ -3047,26 +3054,26 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* accumulate */ samples/= 2; - for(step= 1; step<=samples; step++) { + for (step= 1; step<=samples; step++) { float speedfac= 0.5f*nbd->fac*(float)step/(float)(samples+1); int side; - for(side=0; side<2; side++) { + for (side=0; side<2; side++) { float blendfac, ipodata[4]; /* clear zbuf, if we draw future we fill in not moving pixels */ - if(0) - for(x= xsize*ysize-1; x>=0; x--) rectz[x]= 10e16; + if (0) + for (x= xsize*ysize-1; x>=0; x--) rectz[x]= 10e16; else - for(x= xsize*ysize-1; x>=0; x--) { - if(rectmove[x]==0) + for (x= xsize*ysize-1; x>=0; x--) { + if (rectmove[x]==0) rectz[x]= zbufrect[x]; else rectz[x]= 10e16; } /* clear drawing buffer */ - for(x= xsize*ysize-1; x>=0; x--) rectdraw[x].colpoin= NULL; + for (x= xsize*ysize-1; x>=0; x--) rectdraw[x].colpoin= NULL; dimg= imgrect; dm= rectmove; @@ -3074,8 +3081,8 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * dz1= rectvz; dz2= rectvz + 4*(xsize + 1); - if(side) { - if(nbd->curved==0) { + if (side) { + if (nbd->curved==0) { dz1+= 2; dz2+= 2; } @@ -3084,15 +3091,15 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * set_quad_bezier_ipo(0.5f + 0.5f*speedfac, ipodata); - for(fy= -0.5f+jit[step & 255][0], y=0; y<ysize; y++, fy+=1.0f) { - for(fx= -0.5f+jit[step & 255][1], x=0; x<xsize; x++, fx+=1.0f, dimg+=4, dz1+=4, dz2+=4, dm++, dz++) { - if(*dm>1) { + for (fy= -0.5f+jit[step & 255][0], y=0; y<ysize; y++, fy+=1.0f) { + for (fx= -0.5f+jit[step & 255][1], x=0; x<xsize; x++, fx+=1.0f, dimg+=4, dz1+=4, dz2+=4, dm++, dz++) { + if (*dm>1) { float jfx = fx + 0.5f; float jfy = fy + 0.5f; DrawBufPixel col; /* make vertices */ - if(nbd->curved) { /* curved */ + if (nbd->curved) { /* curved */ quad_bezier_2d(v1, dz1, dz1+2, ipodata); v1[0]+= jfx; v1[1]+= jfy; v1[2]= *dz; @@ -3111,8 +3118,8 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * v3[0]= speedfac*dz2[4]+jfx+1.0f; v3[1]= speedfac*dz2[5]+jfy+1.0f; v3[2]= *dz; v4[0]= speedfac*dz2[0]+jfx; v4[1]= speedfac*dz2[1]+jfy+1.0f; v4[2]= *dz; } - if(*dm==255) col.alpha= 1.0f; - else if(*dm<2) col.alpha= 0.0f; + if (*dm==255) col.alpha= 1.0f; + else if (*dm<2) col.alpha= 0.0f; else col.alpha= ((float)*dm)/255.0f; col.colpoin= dimg; @@ -3137,8 +3144,8 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * /* accum */ rw= rectweight; rm= rectmax; - for(dr= rectdraw, dz2=newrect, x= xsize*ysize-1; x>=0; x--, dr++, dz2+=4, rw++, rm++) { - if(dr->colpoin) { + for (dr= rectdraw, dz2=newrect, x= xsize*ysize-1; x>=0; x--, dr++, dz2+=4, rw++, rm++) { + if (dr->colpoin) { float bfac= dr->alpha*blendfac; dz2[0] += bfac*dr->colpoin[0]; @@ -3158,7 +3165,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * rm= rectmax; ro= imgrect; dm= rectmove; - for(dz2=newrect, x= xsize*ysize-1; x>=0; x--, dz2+=4, ro+=4, rw++, rm++, dm++) { + for (dz2=newrect, x= xsize*ysize-1; x>=0; x--, dz2+=4, ro+=4, rw++, rm++, dm++) { float mfac = *rm; float fac = (*rw == 0.0f)? 0.0f: mfac/(*rw); float nfac = 1.0f - mfac; @@ -3175,7 +3182,7 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * MEM_freeN(rectvz); MEM_freeN(rectweight); MEM_freeN(rectmax); - if(minvecbufrect) MEM_freeN(vecbufrect); /* rects were swapped! */ + if (minvecbufrect) MEM_freeN(vecbufrect); /* rects were swapped! */ zbuf_free_span(&zspan); } @@ -3191,18 +3198,18 @@ static void copyto_abufz(RenderPart *pa, int *arectz, int *rectmask, int sample) int x, y, *rza, *rma; intptr_t *rd; - if(R.osa==0) { - if(!pa->rectz) + if (R.osa==0) { + if (!pa->rectz) fillrect(arectz, pa->rectx, pa->recty, 0x7FFFFFFE); else memcpy(arectz, pa->rectz, sizeof(int)*pa->rectx*pa->recty); - if(rectmask && pa->rectmask) + if (rectmask && pa->rectmask) memcpy(rectmask, pa->rectmask, sizeof(int)*pa->rectx*pa->recty); return; } - else if(!pa->rectdaps) { + else if (!pa->rectdaps) { fillrect(arectz, pa->rectx, pa->recty, 0x7FFFFFFE); return; } @@ -3213,17 +3220,17 @@ static void copyto_abufz(RenderPart *pa, int *arectz, int *rectmask, int sample) sample= (1<<sample); - for(y=0; y<pa->recty; y++) { - for(x=0; x<pa->rectx; x++) { + for (y=0; y<pa->recty; y++) { + for (x=0; x<pa->rectx; x++) { *rza= 0x7FFFFFFF; - if(rectmask) *rma= 0x7FFFFFFF; - if(*rd) { + if (rectmask) *rma= 0x7FFFFFFF; + if (*rd) { /* when there's a sky pixstruct, fill in sky-Z, otherwise solid Z */ - for(ps= (PixStr *)(*rd); ps; ps= ps->next) { - if(sample & ps->mask) { + for (ps= (PixStr *)(*rd); ps; ps= ps->next) { + if (sample & ps->mask) { *rza= ps->z; - if(rectmask) *rma= ps->maskz; + if (rectmask) *rma= ps->maskz; break; } } @@ -3257,7 +3264,7 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * zbuffer_part_bounds(winx, winy, pa, bounds); - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; zbuf_alloc_span(zspan, pa->rectx, pa->recty, re->clipcrop); @@ -3271,7 +3278,7 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * zspan->apixbuf= APixbuf; zspan->apsmbase= apsmbase; - if(negzmask) + if (negzmask) zspan->rectmask= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "Arectmask"); /* filling methods */ @@ -3281,7 +3288,7 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * copyto_abufz(pa, zspan->arectz, zspan->rectmask, zsample); /* init zbuffer */ zspan->mask= 1<<zsample; - if(jit) { + if (jit) { zspan->zofsx= -pa->disprect.xmin - jit[zsample][0]; zspan->zofsy= -pa->disprect.ymin - jit[zsample][1]; } @@ -3298,37 +3305,37 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * /* we use this to test if nothing was filled in */ zvlnr= 0; - for(i=0, obi=re->instancetable.first; obi; i++, obi=obi->next) { + for (i=0, obi=re->instancetable.first; obi; i++, obi=obi->next) { obr= obi->obr; - if(!(obi->lay & lay)) + if (!(obi->lay & lay)) continue; - if(obi->flag & R_TRANSFORMED) + if (obi->flag & R_TRANSFORMED) mult_m4_m4m4(obwinmat, winmat, obi->mat); else copy_m4_m4(obwinmat, winmat); - if(clip_render_object(obi->obr->boundbox, bounds, obwinmat)) + if (clip_render_object(obi->obr->boundbox, bounds, obwinmat)) continue; zbuf_project_cache_clear(cache, obr->totvert); - for(v=0; v<obr->totvlak; v++) { - if((v & 255)==0) + for (v=0; v<obr->totvlak; v++) { + if ((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak; else vlr++; - if(vlr->mat!=ma) { + if (vlr->mat!=ma) { ma= vlr->mat; - if(shadow) + if (shadow) dofill= (ma->mode & MA_SHADBUF); else dofill= (((ma->mode & MA_TRANSP) && (ma->mode & MA_ZTRANSP)) && !(ma->mode & MA_ONLYCAST)); } - if(dofill) { - if(!(vlr->flag & R_HIDDEN) && (obi->lay & lay)) { + if (dofill) { + if (!(vlr->flag & R_HIDDEN) && (obi->lay & lay)) { unsigned short partclip; v1= vlr->v1; @@ -3342,14 +3349,14 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * /* partclipping doesn't need viewplane clipping */ partclip= c1 & c2 & c3; - if(v4) { + if (v4) { c4= zbuf_part_project(cache, v4->index, obwinmat, bounds, v4->co, ho4); partclip &= c4; } - if(partclip==0) { + if (partclip==0) { /* a little advantage for transp rendering (a z offset) */ - if(!shadow && ma->zoffs != 0.0f) { + if (!shadow && ma->zoffs != 0.0f) { mul= 0x7FFFFFFF; zval= mul*(1.0f+ho1[2]/ho1[3]); @@ -3368,45 +3375,45 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * c1= testclip(ho1); c2= testclip(ho2); c3= testclip(ho3); - if(v4) + if (v4) c4= testclip(ho4); - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; zspan->polygon_offset= polygon_offset; - if(ma->material_type == MA_TYPE_WIRE) { - if(v4) + if (ma->material_type == MA_TYPE_WIRE) { + if (v4) zbufclipwire(zspan, i, zvlnr, vlr->ec, ho1, ho2, ho3, ho4, c1, c2, c3, c4); else zbufclipwire(zspan, i, zvlnr, vlr->ec, ho1, ho2, ho3, 0, c1, c2, c3, 0); } else { - if(v4 && (vlr->flag & R_STRAND)) { + if (v4 && (vlr->flag & R_STRAND)) { zbufclip4(zspan, i, zvlnr, ho1, ho2, ho3, ho4, c1, c2, c3, c4); } else { zbufclip(zspan, i, zvlnr, ho1, ho2, ho3, c1, c2, c3); - if(v4) + if (v4) zbufclip(zspan, i, zvlnr+RE_QUAD_OFFS, ho1, ho3, ho4, c1, c3, c4); } } } } - if((v & 255)==255) - if(re->test_break(re->tbh)) + if ((v & 255)==255) + if (re->test_break(re->tbh)) break; } } } - if(re->test_break(re->tbh)) break; + if (re->test_break(re->tbh)) break; } - for(zsample=0; zsample<samples; zsample++) { + for (zsample=0; zsample<samples; zsample++) { zspan= &zspans[zsample]; MEM_freeN(zspan->arectz); - if(zspan->rectmask) + if (zspan->rectmask) MEM_freeN(zspan->rectmask); zbuf_free_span(zspan); } @@ -3422,18 +3429,18 @@ static int zbuffer_abuf_render(RenderPart *pa, APixstr *APixbuf, APixstrand *APi samples= (R.osa)? R.osa: 1; negzmask= ((rl->layflag & SCE_LAY_ZMASK) && (rl->layflag & SCE_LAY_NEG_ZMASK)); - if(R.osa) + if (R.osa) jit= R.jit; - else if(R.i.curblur) + else if (R.i.curblur) jit= &R.mblur_jit[R.i.curblur-1]; else jit= NULL; zbuf_make_winmat(&R, winmat); - if(rl->layflag & SCE_LAY_ZTRA) + if (rl->layflag & SCE_LAY_ZTRA) doztra+= zbuffer_abuf(&R, pa, APixbuf, apsmbase, rl->lay, negzmask, winmat, R.winx, R.winy, samples, jit, R.clipcrop, 0); - if((rl->layflag & SCE_LAY_STRAND) && APixbufstrand) + if ((rl->layflag & SCE_LAY_STRAND) && APixbufstrand) doztra+= zbuffer_strands_abuf(&R, pa, APixbufstrand, apsmbase, rl->lay, negzmask, winmat, R.winx, R.winy, samples, jit, R.clipcrop, 0, sscache); return doztra; @@ -3444,7 +3451,7 @@ void zbuffer_abuf_shadow(Render *re, LampRen *lar, float winmat[][4], APixstr *A RenderPart pa; int lay= -1; - if(lar->mode & LA_LAYER) lay= lar->lay; + if (lar->mode & LA_LAYER) lay= lar->lay; memset(&pa, 0, sizeof(RenderPart)); pa.rectx= size; @@ -3455,7 +3462,7 @@ void zbuffer_abuf_shadow(Render *re, LampRen *lar, float winmat[][4], APixstr *A pa.disprect.ymax = size; zbuffer_abuf(re, &pa, APixbuf, apsmbase, lay, 0, winmat, size, size, samples, jit, 1.0f, 1); - if(APixbufstrand) + if (APixbufstrand) zbuffer_strands_abuf(re, &pa, APixbufstrand, apsmbase, lay, 0, winmat, size, size, samples, jit, 1.0f, 1, NULL); } @@ -3467,27 +3474,27 @@ void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, in { RenderPass *rpass; - for(rpass= rl->passes.first; rpass; rpass= rpass->next) { - if(rpass->passtype==SCE_PASS_VECTOR) { + for (rpass= rl->passes.first; rpass; rpass= rpass->next) { + if (rpass->passtype==SCE_PASS_VECTOR) { float *fp= rpass->rect + 4*offset; - if(speed==NULL) { + if (speed==NULL) { /* clear */ - if(fp[0]==PASS_VECTOR_MAX) fp[0]= 0.0f; - if(fp[1]==PASS_VECTOR_MAX) fp[1]= 0.0f; - if(fp[2]==PASS_VECTOR_MAX) fp[2]= 0.0f; - if(fp[3]==PASS_VECTOR_MAX) fp[3]= 0.0f; + if (fp[0]==PASS_VECTOR_MAX) fp[0]= 0.0f; + if (fp[1]==PASS_VECTOR_MAX) fp[1]= 0.0f; + if (fp[2]==PASS_VECTOR_MAX) fp[2]= 0.0f; + if (fp[3]==PASS_VECTOR_MAX) fp[3]= 0.0f; } - else if(rdrect==NULL || rdrect[offset]==0 || alpha>0.95f) { + else if (rdrect==NULL || rdrect[offset]==0 || alpha>0.95f) { copy_v4_v4(fp, speed); } else { /* add minimum speed in pixel */ - if( (ABS(speed[0]) + ABS(speed[1]))< (ABS(fp[0]) + ABS(fp[1])) ) { + 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])) ) { + if ( (ABS(speed[2]) + ABS(speed[3]))< (ABS(fp[2]) + ABS(fp[3])) ) { fp[2]= speed[2]; fp[3]= speed[3]; } @@ -3501,8 +3508,8 @@ static void add_transp_obindex(RenderLayer *rl, int offset, Object *ob) { RenderPass *rpass; - for(rpass= rl->passes.first; rpass; rpass= rpass->next) { - if(rpass->passtype == SCE_PASS_INDEXOB||rpass->passtype == SCE_PASS_INDEXMA) { + for (rpass= rl->passes.first; rpass; rpass= rpass->next) { + if (rpass->passtype == SCE_PASS_INDEXOB||rpass->passtype == SCE_PASS_INDEXMA) { float *fp= rpass->rect + offset; *fp= (float)ob->index; break; @@ -3518,7 +3525,7 @@ void merge_transp_passes(RenderLayer *rl, ShadeResult *shr) float weight= 1.0f/((float)R.osa); int delta= sizeof(ShadeResult)/4; - for(rpass= rl->passes.first; rpass; rpass= rpass->next) { + for (rpass= rl->passes.first; rpass; rpass= rpass->next) { float *col= NULL; int pixsize= 3; @@ -3573,16 +3580,16 @@ void merge_transp_passes(RenderLayer *rl, ShadeResult *shr) int samp; /* add minimum speed in pixel */ - for(samp= 1; samp<R.osa; samp++, shr_t++) { + for (samp= 1; samp<R.osa; samp++, shr_t++) { - if(shr_t->combined[3] > 0.0f) { + 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])) ) { + 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])) ) { + if ( (ABS(speed[2]) + ABS(speed[3]))< (ABS(fp[2]) + ABS(fp[3])) ) { fp[2]= speed[2]; fp[3]= speed[3]; } @@ -3591,23 +3598,23 @@ void merge_transp_passes(RenderLayer *rl, ShadeResult *shr) } break; } - if(col) { + if (col) { float *fp= col+delta; int samp; - for(samp= 1; samp<R.osa; samp++, fp+=delta) { + for (samp= 1; samp<R.osa; samp++, fp+=delta) { col[0]+= fp[0]; - if(pixsize>1) { + if (pixsize>1) { col[1]+= fp[1]; col[2]+= fp[2]; - if(pixsize==4) col[3]+= fp[3]; + if (pixsize==4) col[3]+= fp[3]; } } col[0]*= weight; - if(pixsize>1) { + if (pixsize>1) { col[1]*= weight; col[2]*= weight; - if(pixsize==4) col[3]*= weight; + if (pixsize==4) col[3]*= weight; } } } @@ -3618,14 +3625,14 @@ void add_transp_passes(RenderLayer *rl, int offset, ShadeResult *shr, float alph { RenderPass *rpass; - for(rpass= rl->passes.first; rpass; rpass= rpass->next) { + for (rpass= rl->passes.first; rpass; rpass= rpass->next) { float *fp, *col= NULL; int pixsize= 3; switch(rpass->passtype) { case SCE_PASS_Z: fp= rpass->rect + offset; - if(shr->z < *fp) + if (shr->z < *fp) *fp= shr->z; break; case SCE_PASS_RGBA: @@ -3667,11 +3674,11 @@ void add_transp_passes(RenderLayer *rl, int offset, ShadeResult *shr, float alph pixsize= 1; break; } - if(col) { + if (col) { fp= rpass->rect + pixsize*offset; fp[0]= col[0] + (1.0f-alpha)*fp[0]; - if(pixsize==3) { + if (pixsize==3) { fp[1]= col[1] + (1.0f-alpha)*fp[1]; fp[2]= col[2] + (1.0f-alpha)*fp[2]; } @@ -3692,8 +3699,8 @@ static int vergzvlak(const void *a1, const void *a2) { const ZTranspRow *r1 = a1, *r2 = a2; - if(r1->z < r2->z) return 1; - else if(r1->z > r2->z) return -1; + if (r1->z < r2->z) return 1; + else if (r1->z > r2->z) return -1; return 0; } @@ -3732,10 +3739,10 @@ static void unref_strand_samples(StrandShadeCache *cache, ZTranspRow *row, int t /* remove references to samples that are not being rendered, but we still * need to remove them so that the reference count of strand vertex shade * samples correctly drops to zero */ - while(totface > 0) { + while (totface > 0) { totface--; - if(row[totface].segment != -1) { + if (row[totface].segment != -1) { obi= R.objectinstance + row[totface].obi; obr= obi->obr; strand= RE_findOrAddStrand(obr, row[totface].p-1); @@ -3757,18 +3764,18 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int shade_input_set_triangle(shi, obi, facenr, 1); /* officially should always be true... we have no sky info */ - if(shi->vlr) { + if (shi->vlr) { /* full osa is only set for OSA renders */ - if(shi->vlr->flag & R_FULL_OSA) { + if (shi->vlr->flag & R_FULL_OSA) { short shi_inc= 0, samp; - for(samp=0; samp<R.osa; samp++) { - if(curmask & (1<<samp)) { + for (samp=0; samp<R.osa; samp++) { + if (curmask & (1<<samp)) { xs= (float)x + R.jit[samp][0] + 0.5f; /* zbuffer has this inverse corrected, ensures xs,ys are inside pixel */ ys= (float)y + R.jit[samp][1] + 0.5f; - if(shi_inc) { + if (shi_inc) { shade_input_copy_triangle(shi+1, shi); shi++; } @@ -3776,7 +3783,7 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int shi->samplenr= R.shadowsamplenr[shi->thread]++; shade_input_set_viewco(shi, x, y, xs, ys, (float)z); shade_input_set_uv(shi); - if(shi_inc==0) + if (shi_inc==0) shade_input_set_normals(shi); else /* XXX shi->flippednor messes up otherwise */ shade_input_set_vertex_normals(shi); @@ -3786,7 +3793,7 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int } } else { - if(R.osa) { + if (R.osa) { short b= R.samples->centmask[curmask]; xs= (float)x + R.samples->centLut[b & 15] + 0.5f; ys= (float)y + R.samples->centLut[b>>4] + 0.5f; @@ -3809,14 +3816,14 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int static int shade_tra_samples(ShadeSample *ssamp, StrandShadeCache *cache, int x, int y, ZTranspRow *row, int addpassflag) { - if(row->segment != -1) { + if (row->segment != -1) { shade_strand_samples(cache, ssamp, x, y, row, addpassflag); return 1; } shade_tra_samples_fill(ssamp, x, y, row->z, row->obi, row->p, row->mask); - if(ssamp->tot) { + if (ssamp->tot) { ShadeInput *shi= ssamp->shi; ShadeResult *shr= ssamp->shr; int samp; @@ -3825,19 +3832,19 @@ static int shade_tra_samples(ShadeSample *ssamp, StrandShadeCache *cache, int x, shade_samples_do_AO(ssamp); /* if shade (all shadepinputs have same passflag) */ - if(shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { - for(samp=0; samp<ssamp->tot; samp++, shi++, shr++) { + if (shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { + for (samp=0; samp<ssamp->tot; samp++, shi++, shr++) { shade_input_set_shade_texco(shi); shade_input_do_shade(shi, shr); /* include lamphalos for ztra, since halo layer was added already */ - if(R.flag & R_LAMPHALO) - if(shi->layflag & SCE_LAY_HALO) + if (R.flag & R_LAMPHALO) + if (shi->layflag & SCE_LAY_HALO) renderspothalo(shi, shr->combined, shr->combined[3]); } } - else if(shi->passflag & SCE_PASS_Z) { - for(samp=0; samp<ssamp->tot; samp++, shi++, shr++) + else if (shi->passflag & SCE_PASS_Z) { + for (samp=0; samp<ssamp->tot; samp++, shi++, shr++) shr->z= -shi->co[2]; } @@ -3857,66 +3864,66 @@ static int addtosamp_shr(ShadeResult *samp_shr, ShadeSample *ssamp, int addpassf { int a, sample, osa = (R.osa? R.osa: 1), retval = osa; - for(a=0; a < osa; a++, samp_shr++) { + for (a=0; a < osa; a++, samp_shr++) { ShadeInput *shi= ssamp->shi; ShadeResult *shr= ssamp->shr; - for(sample=0; sample<ssamp->tot; sample++, shi++, shr++) { + for (sample=0; sample<ssamp->tot; sample++, shi++, shr++) { - if(shi->mask & (1<<a)) { + if (shi->mask & (1<<a)) { float fac= (1.0f - samp_shr->combined[3])*shr->combined[3]; addAlphaUnderFloat(samp_shr->combined, shr->combined); samp_shr->z= MIN2(samp_shr->z, shr->z); - if(addpassflag & SCE_PASS_VECTOR) { + if (addpassflag & SCE_PASS_VECTOR) { copy_v4_v4(samp_shr->winspeed, shr->winspeed); } /* optim... */ - if(addpassflag & ~(SCE_PASS_VECTOR)) { + if (addpassflag & ~(SCE_PASS_VECTOR)) { - if(addpassflag & SCE_PASS_RGBA) + if (addpassflag & SCE_PASS_RGBA) addAlphaUnderFloat(samp_shr->col, shr->col); - if(addpassflag & SCE_PASS_NORMAL) + if (addpassflag & SCE_PASS_NORMAL) addvecmul(samp_shr->nor, shr->nor, fac); - if(addpassflag & SCE_PASS_EMIT) + if (addpassflag & SCE_PASS_EMIT) addvecmul(samp_shr->emit, shr->emit, fac); - if(addpassflag & SCE_PASS_DIFFUSE) + if (addpassflag & SCE_PASS_DIFFUSE) addvecmul(samp_shr->diff, shr->diff, fac); - if(addpassflag & SCE_PASS_SPEC) + if (addpassflag & SCE_PASS_SPEC) addvecmul(samp_shr->spec, shr->spec, fac); - if(addpassflag & SCE_PASS_SHADOW) + if (addpassflag & SCE_PASS_SHADOW) addvecmul(samp_shr->shad, shr->shad, fac); - if(addpassflag & SCE_PASS_AO) + if (addpassflag & SCE_PASS_AO) addvecmul(samp_shr->ao, shr->ao, fac); - if(addpassflag & SCE_PASS_ENVIRONMENT) + if (addpassflag & SCE_PASS_ENVIRONMENT) addvecmul(samp_shr->env, shr->env, fac); - if(addpassflag & SCE_PASS_INDIRECT) + if (addpassflag & SCE_PASS_INDIRECT) addvecmul(samp_shr->indirect, shr->indirect, fac); - if(addpassflag & SCE_PASS_REFLECT) + if (addpassflag & SCE_PASS_REFLECT) addvecmul(samp_shr->refl, shr->refl, fac); - if(addpassflag & SCE_PASS_REFRACT) + if (addpassflag & SCE_PASS_REFRACT) addvecmul(samp_shr->refr, shr->refr, fac); - if(addpassflag & SCE_PASS_MIST) + if (addpassflag & SCE_PASS_MIST) samp_shr->mist= samp_shr->mist+fac*shr->mist; } } } - if(samp_shr->combined[3]>0.999f) retval--; + if (samp_shr->combined[3]>0.999f) retval--; } return retval; } @@ -3929,11 +3936,11 @@ static void reset_sky_speedvectors(RenderPart *pa, RenderLayer *rl, float *rectf int a; fp= RE_RenderLayerGetPass(rl, SCE_PASS_VECTOR); - if(fp==NULL) return; + if (fp==NULL) return; col= rectf+3; - for(a= 4*pa->rectx*pa->recty -4; a>=0; a-=4) { - if(col[a]==0.0f) { + for (a= 4*pa->rectx*pa->recty -4; a>=0; a-=4) { + if (col[a]==0.0f) { fp[a]= PASS_VECTOR_MAX; fp[a+1]= PASS_VECTOR_MAX; fp[a+2]= PASS_VECTOR_MAX; @@ -3966,17 +3973,17 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas unsigned short *ztramask= NULL, filled; /* looks nicer for calling code */ - if(R.test_break(R.tbh)) + if (R.test_break(R.tbh)) return NULL; - if(R.osa>16) { /* MAX_OSA */ + if (R.osa>16) { /* MAX_OSA */ printf("zbuffer_transp_shade: osa too large\n"); G.afbreek= 1; return NULL; } APixbuf= MEM_callocN(pa->rectx*pa->recty*sizeof(APixstr), "APixbuf"); - if(R.totstrand && (rl->layflag & SCE_LAY_STRAND)) { + if (R.totstrand && (rl->layflag & SCE_LAY_STRAND)) { APixbufstrand= MEM_callocN(pa->rectx*pa->recty*sizeof(APixstrand), "APixbufstrand"); sscache= strand_shade_cache_create(); } @@ -3985,7 +3992,7 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas shade_sample_initialize(&ssamp, pa, rl); addpassflag= rl->passflag & ~(SCE_PASS_COMBINED); - if(R.osa) + if (R.osa) sampalpha= 1.0f/(float)R.osa; else sampalpha= 1.0f; @@ -3993,12 +4000,12 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas /* fill the Apixbuf */ doztra= zbuffer_abuf_render(pa, APixbuf, APixbufstrand, &apsmbase, rl, sscache); - if(doztra == 0) { + if (doztra == 0) { /* nothing filled in */ MEM_freeN(APixbuf); - if(APixbufstrand) + if (APixbufstrand) MEM_freeN(APixbufstrand); - if(sscache) + if (sscache) strand_shade_cache_free(sscache); freepsA(&apsmbase); return NULL; @@ -4012,20 +4019,20 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas totfullsample= get_sample_layers(pa, rl, rlpp); /* irregular shadowb buffer creation */ - if(R.r.mode & R_SHADOW) + if (R.r.mode & R_SHADOW) ISB_create(pa, APixbuf); /* masks, to have correct alpha combine */ - if(R.osa && (rl->layflag & SCE_LAY_SOLID) && pa->fullresult.first==NULL) + if (R.osa && (rl->layflag & SCE_LAY_SOLID) && pa->fullresult.first==NULL) ztramask= MEM_callocN(pa->rectx*pa->recty*sizeof(short), "ztramask"); /* zero alpha pixels get speed vector max again */ - if(addpassflag & SCE_PASS_VECTOR) - if(rl->layflag & SCE_LAY_SOLID) + if (addpassflag & SCE_PASS_VECTOR) + if (rl->layflag & SCE_LAY_SOLID) reset_sky_speedvectors(pa, rl, rl->acolrect?rl->acolrect:rl->rectf); /* if acolrect is set we use it */ /* filtered render, for now we assume only 1 filter size */ - if(pa->crop) { + if (pa->crop) { crop= 1; offs= pa->rectx + 1; passrect+= 4*offs; @@ -4039,35 +4046,35 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas rr->renlay= rl; /* render the tile */ - for(y=pa->disprect.ymin+crop; y<pa->disprect.ymax-crop; y++, rr->renrect.ymax++) { + for (y=pa->disprect.ymin+crop; y<pa->disprect.ymax-crop; y++, rr->renrect.ymax++) { pass= passrect; ap= aprect; apstrand= aprectstrand; od= offs; - if(R.test_break(R.tbh)) + if (R.test_break(R.tbh)) break; - for(x=pa->disprect.xmin+crop; x<pa->disprect.xmax-crop; x++, ap++, apstrand++, pass+=4, od++) { + for (x=pa->disprect.xmin+crop; x<pa->disprect.xmax-crop; x++, ap++, apstrand++, pass+=4, od++) { - if(ap->p[0]==0 && (!APixbufstrand || apstrand->p[0]==0)) { - if(addpassflag & SCE_PASS_VECTOR) + if (ap->p[0]==0 && (!APixbufstrand || apstrand->p[0]==0)) { + if (addpassflag & SCE_PASS_VECTOR) add_transp_speed(rl, od, NULL, 0.0f, rdrect); } else { /* sort in z */ totface= 0; apn= ap; - while(apn) { - for(a=0; a<4; a++) { - if(apn->p[a]) { + while (apn) { + for (a=0; a<4; a++) { + if (apn->p[a]) { zrow[totface].obi= apn->obi[a]; zrow[totface].z= apn->z[a]; zrow[totface].p= apn->p[a]; zrow[totface].mask= apn->mask[a]; zrow[totface].segment= -1; totface++; - if(totface>=MAX_ZROW) totface= MAX_ZROW-1; + if (totface>=MAX_ZROW) totface= MAX_ZROW-1; } else break; } @@ -4075,19 +4082,19 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas } apnstrand= (APixbufstrand)? apstrand: NULL; - while(apnstrand) { - for(a=0; a<4; a++) { - if(apnstrand->p[a]) { + while (apnstrand) { + for (a=0; a<4; a++) { + if (apnstrand->p[a]) { zrow[totface].obi= apnstrand->obi[a]; zrow[totface].z= apnstrand->z[a]; zrow[totface].p= apnstrand->p[a]; zrow[totface].mask= apnstrand->mask[a]; zrow[totface].segment= apnstrand->seg[a]; - if(R.osa) { + if (R.osa) { totsample= 0; - for(b=0; b<R.osa; b++) - if(zrow[totface].mask & (1<<b)) + for (b=0; b<R.osa; b++) + if (zrow[totface].mask & (1<<b)) totsample++; } else @@ -4096,43 +4103,43 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas zrow[totface].u= apnstrand->u[a]/totsample; zrow[totface].v= apnstrand->v[a]/totsample; totface++; - if(totface>=MAX_ZROW) totface= MAX_ZROW-1; + if (totface>=MAX_ZROW) totface= MAX_ZROW-1; } } apnstrand= apnstrand->next; } - if(totface==2) { - if(zrow[0].z < zrow[1].z) { + if (totface==2) { + if (zrow[0].z < zrow[1].z) { SWAP(ZTranspRow, zrow[0], zrow[1]); } } - else if(totface>2) { + else if (totface>2) { qsort(zrow, totface, sizeof(ZTranspRow), vergzvlak); } /* front face does index pass for transparent, no AA or filters, but yes FSA */ - if(addpassflag & SCE_PASS_INDEXOB) { + if (addpassflag & SCE_PASS_INDEXOB) { ObjectRen *obr= R.objectinstance[zrow[totface-1].obi].obr; - if(obr->ob) { - for(a= 0; a<totfullsample; a++) + if (obr->ob) { + for (a= 0; a<totfullsample; a++) add_transp_obindex(rlpp[a], od, obr->ob); } } - if(addpassflag & SCE_PASS_INDEXMA) { + if (addpassflag & SCE_PASS_INDEXMA) { ObjectRen *obr= R.objectinstance[zrow[totface-1].obi].obr; - if(obr->ob) { - for(a= 0; a<totfullsample; a++) + if (obr->ob) { + for (a= 0; a<totfullsample; a++) add_transp_obindex(rlpp[a], od, obr->ob); } } /* for each mask-sample we alpha-under colors. then in end it's added using filter */ memset(samp_shr, 0, sizeof(ShadeResult)*osa); - for(a=0; a<osa; a++) { + for (a=0; a<osa; a++) { samp_shr[a].z= 10e10f; - if(addpassflag & SCE_PASS_VECTOR) { + if (addpassflag & SCE_PASS_VECTOR) { samp_shr[a].winspeed[0]= PASS_VECTOR_MAX; samp_shr[a].winspeed[1]= PASS_VECTOR_MAX; samp_shr[a].winspeed[2]= PASS_VECTOR_MAX; @@ -4140,16 +4147,16 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas } } - if(R.osa==0) { - while(totface>0) { + if (R.osa==0) { + while (totface>0) { totface--; - if(shade_tra_samples(&ssamp, sscache, x, y, &zrow[totface], addpassflag)) { + if (shade_tra_samples(&ssamp, sscache, x, y, &zrow[totface], addpassflag)) { filled= addtosamp_shr(samp_shr, &ssamp, addpassflag); addAlphaUnderFloat(pass, ssamp.shr[0].combined); - if(filled == 0) { - if(sscache) + if (filled == 0) { + if (sscache) unref_strand_samples(sscache, zrow, totface); break; } @@ -4157,25 +4164,25 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas } alpha= samp_shr->combined[3]; - if(alpha!=0.0f) { + if (alpha!=0.0f) { add_transp_passes(rl, od, samp_shr, alpha); - if(addpassflag & SCE_PASS_VECTOR) + if (addpassflag & SCE_PASS_VECTOR) add_transp_speed(rl, od, samp_shr->winspeed, alpha, rdrect); } } else { short *sp= (short *)(ztramask+od); - while(totface>0) { + while (totface>0) { totface--; - if(shade_tra_samples(&ssamp, sscache, x, y, &zrow[totface], addpassflag)) { + if (shade_tra_samples(&ssamp, sscache, x, y, &zrow[totface], addpassflag)) { filled= addtosamp_shr(samp_shr, &ssamp, addpassflag); - if(ztramask) + if (ztramask) *sp |= zrow[totface].mask; - if(filled==0) { - if(sscache) + if (filled==0) { + if (sscache) unref_strand_samples(sscache, zrow, totface); break; } @@ -4183,16 +4190,16 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas } /* multisample buffers or filtered mask filling? */ - if(pa->fullresult.first) { - for(a=0; a<R.osa; a++) { + if (pa->fullresult.first) { + for (a=0; a<R.osa; a++) { alpha= samp_shr[a].combined[3]; - if(alpha!=0.0f) { + if (alpha!=0.0f) { RenderLayer *rl= ssamp.rlpp[a]; addAlphaOverFloat(rl->rectf + 4*od, samp_shr[a].combined); add_transp_passes(rl, od, &samp_shr[a], alpha); - if(addpassflag & SCE_PASS_VECTOR) + if (addpassflag & SCE_PASS_VECTOR) add_transp_speed(rl, od, samp_shr[a].winspeed, alpha, rdrect); } } @@ -4201,19 +4208,19 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas alpha= 0.0f; /* note; cannot use pass[3] for alpha due to filtermask */ - for(a=0; a<R.osa; a++) { + for (a=0; a<R.osa; a++) { add_filt_fmask(1<<a, samp_shr[a].combined, pass, rr->rectx); alpha+= samp_shr[a].combined[3]; } - if(addpassflag) { + if (addpassflag) { alpha*= sampalpha; /* merge all in one, and then add */ merge_transp_passes(rl, samp_shr); add_transp_passes(rl, od, samp_shr, alpha); - if(addpassflag & SCE_PASS_VECTOR) + if (addpassflag & SCE_PASS_VECTOR) add_transp_speed(rl, od, samp_shr[0].winspeed, alpha, rdrect); } } @@ -4231,13 +4238,13 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas rr->renlay= NULL; MEM_freeN(APixbuf); - if(APixbufstrand) + if (APixbufstrand) MEM_freeN(APixbufstrand); - if(sscache) + if (sscache) strand_shade_cache_free(sscache); freepsA(&apsmbase); - if(R.r.mode & R_SHADOW) + if (R.r.mode & R_SHADOW) ISB_free(pa); return ztramask; |