diff options
Diffstat (limited to 'src')
| -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;        }     }  }  | 
