by CARPEDIEM » Feb 24, 2001 @ 5:36pm 
			
			Here Dan, see if you like it, it's an optimization "A la argentina"<br><br>void D_PolysetCalcGradients (int skinwidth)<br>{<br><br>      int xstepdenominv, ystepdenominv;<br>      int p01_minus_p21, p11_minus_p21, p00_minus_p20, p10_minus_p20, t0, t1;;<br>      p00_minus_p20 = (r_p0[0] - r_p2[0]);<br>      p01_minus_p21 = (r_p0[1] - r_p2[1]);<br>      p10_minus_p20 = (r_p1[0] - r_p2[0]);<br>      p11_minus_p21 = (r_p1[1] - r_p2[1]);<br>      xstepdenominv = (1000 / d_xdenom);<br>      ystepdenominv = -xstepdenominv;<br>      t0 = (r_p0[4] - r_p2[4]);<br>      t1 = (r_p1[4] - r_p2[4]);<br>      r_lstepx = ((t1 * p01_minus_p21 - t0 * p11_minus_p21) * xstepdenominv) / 1000;<br>      r_lstepy = ((t1 * p00_minus_p20 - t0 * p10_minus_p20) * ystepdenominv) / 1000;<br>      t0 = (r_p0[2] - r_p2[2]);<br>      t1 = (r_p1[2] - r_p2[2]);<br>      r_sstepx = ((t1 * p01_minus_p21 - t0 * p11_minus_p21) * xstepdenominv) / 1000;<br>      r_sstepy = ((t1 * p00_minus_p20 - t0* p10_minus_p20) * ystepdenominv) / 1000;<br>      t0 = (r_p0[3] - r_p2[3]);<br>      t1 = (r_p1[3] - r_p2[3]);<br>      r_tstepx = ((t1 * p01_minus_p21 - t0 * p11_minus_p21) * xstepdenominv) / 1000;<br>      r_tstepy = ((t1 * p00_minus_p20 - t0 * p10_minus_p20) * ystepdenominv) / 1000;<br>      t0 = (r_p0[5] - r_p2[5]);<br>      t1 = (r_p1[5] - r_p2[5]);<br>      r_zistepx = ((t1 * p01_minus_p21 - t0 * p11_minus_p21) * xstepdenominv) / 1000;<br>      r_zistepy = ((t1 * p00_minus_p20 - t0 * p10_minus_p20) * ystepdenominv) / 1000;<br>      a_sstepxfrac = r_sstepx & 0xFFFF;<br>      a_tstepxfrac = r_tstepx & 0xFFFF;<br>      a_ststepxwhole = skinwidth * (r_tstepx >> 16) + (r_sstepx >> 16);<br><br>}<br><br>that funcion is found in d_polyse.c Try it and you'll notice a neat increase in performance.<br>about 0.13 fps faster on the timerefresh test and the graphics glitches are not very big, the gun isn't as good as it should when you are shooting but hey. 0.13 is 0.13 right?<br><br>