diff options
| author | Daniel Borca <dborca@users.sourceforge.net> | 2004-01-07 12:50:30 +0000 | 
|---|---|---|
| committer | Daniel Borca <dborca@users.sourceforge.net> | 2004-01-07 12:50:30 +0000 | 
| commit | 63f025c5adba242c760fc3156b4aa92ee6f29f76 (patch) | |
| tree | 26d90748fc4bf1440b9bd44abc3052234e1437a2 | |
| parent | e1ecdc337e2047873e8dad63c7c0388348d1d5b7 (diff) | |
teensy bit of optimization in interp code
| -rw-r--r-- | src/mesa/drivers/glide/fxvbtmp.h | 68 | 
1 files changed, 18 insertions, 50 deletions
diff --git a/src/mesa/drivers/glide/fxvbtmp.h b/src/mesa/drivers/glide/fxvbtmp.h index 4e1b10f1d0..9e46f75595 100644 --- a/src/mesa/drivers/glide/fxvbtmp.h +++ b/src/mesa/drivers/glide/fxvbtmp.h @@ -214,8 +214,8 @@ static void TAG(interp)( GLcontext *ctx,     GrVertex *dst = (GrVertex *) (fxverts + edst);     const GrVertex *out = (const GrVertex *) (fxverts + eout);     const GrVertex *in = (const GrVertex *) (fxverts + ein); -   const GLfloat wout = 1.0F / out->oow; -   const GLfloat win = 1.0F / in->oow; +   const GLfloat wout = oow / out->oow; +   const GLfloat win = oow / in->oow;     VIEWPORT_X(dst->x,   dstclip[0] * oow);     VIEWPORT_Y(dst->y,   dstclip[1] * oow); @@ -248,68 +248,36 @@ static void TAG(interp)( GLcontext *ctx,     }     if (IND & SETUP_TMU0) { +      INTERP_F( t,  +		dst->tmuvtx[0].sow,  +		out->tmuvtx[0].sow * wout,  +		in->tmuvtx[0].sow * win ); +      INTERP_F( t, +		dst->tmuvtx[0].tow, +		out->tmuvtx[0].tow * wout,  +		in->tmuvtx[0].tow * win );        if (IND & SETUP_PTEX) {  	 INTERP_F( t,  -		   dst->tmuvtx[0].sow,  -		   out->tmuvtx[0].sow * wout,  -		   in->tmuvtx[0].sow * win ); -	 INTERP_F( t, -		   dst->tmuvtx[0].tow, -		   out->tmuvtx[0].tow * wout,  -		   in->tmuvtx[0].tow * win ); -	 INTERP_F( t,   		   dst->tmuvtx[0].oow,   		   out->tmuvtx[0].oow * wout,   		   in->tmuvtx[0].oow * win ); - -	 dst->tmuvtx[0].sow *= oow; -	 dst->tmuvtx[0].tow *= oow; -	 dst->tmuvtx[0].oow *= oow; -      } else { -	 INTERP_F( t,  -		   dst->tmuvtx[0].sow,  -		   out->tmuvtx[0].sow * wout,  -		   in->tmuvtx[0].sow * win ); -	 INTERP_F( t, -		   dst->tmuvtx[0].tow, -		   out->tmuvtx[0].tow * wout,  -		   in->tmuvtx[0].tow * win ); - -	 dst->tmuvtx[0].sow *= oow; -	 dst->tmuvtx[0].tow *= oow;        }     }     if (IND & SETUP_TMU1) { +      INTERP_F( t,  +		dst->tmuvtx[1].sow,  +		out->tmuvtx[1].sow * wout,  +		in->tmuvtx[1].sow * win ); +      INTERP_F( t, +		dst->tmuvtx[1].tow, +		out->tmuvtx[1].tow * wout,  +		in->tmuvtx[1].tow * win );        if (IND & SETUP_PTEX) {  	 INTERP_F( t,  -		   dst->tmuvtx[1].sow,  -		   out->tmuvtx[1].sow * wout,  -		   in->tmuvtx[1].sow * win ); -	 INTERP_F( t, -		   dst->tmuvtx[1].tow, -		   out->tmuvtx[1].tow * wout,  -		   in->tmuvtx[1].tow * win ); -	 INTERP_F( t,   		   dst->tmuvtx[1].oow,   		   out->tmuvtx[1].oow * wout,   		   in->tmuvtx[1].oow * win ); - -	 dst->tmuvtx[1].sow *= oow; -	 dst->tmuvtx[1].tow *= oow; -	 dst->tmuvtx[1].oow *= oow; -      } else { -	 INTERP_F( t,  -		   dst->tmuvtx[1].sow,  -		   out->tmuvtx[1].sow * wout,  -		   in->tmuvtx[1].sow * win ); -	 INTERP_F( t, -		   dst->tmuvtx[1].tow, -		   out->tmuvtx[1].tow * wout,  -		   in->tmuvtx[1].tow * win ); - -	 dst->tmuvtx[1].sow *= oow; -	 dst->tmuvtx[1].tow *= oow;        }     }  }  | 
