- got rid of several redundant conversion macros in the GL code. It uses the defaults from the main engine now.

- Update to ZDoom r1991:

- Replaced toint/quickertoint with the portable routines from xs_Float.h. The
  former used fistp, which is not portable across platforms, so cannot be
  used in the play simulation. They were only suitable for the renderer.
  xs_Float.h also has a very fast float->fixed conversion, so FLOAT2FIXED
  uses that now.
  (And I also learned that the FPU's round to nearest is not the rounding I
  learned in grade school but actually Banker's Rounding. I had no idea.)
  (Also, also, the only thing that could have made quickertoint faster than
  toint was that it stored a 32-bit int. I never timed them, and I doubt in
  practice there was any real difference between the two.)


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@632 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2009-11-20 09:47:15 +00:00
parent fe0cde0692
commit 38b5ba87cd
36 changed files with 460 additions and 301 deletions

View file

@ -328,9 +328,7 @@ angle_t R_PointToAngle2 (fixed_t x1, fixed_t y1, fixed_t x, fixed_t y)
else
{
// we have to use the slower but more precise floating point atan2 function here.
// (use quickertoint to speed this up because the CRT's conversion is rather slow and
// this is used in time critical code.)
return quickertoint((float)(atan2f(float(y), float(x)) * (ANGLE_180/M_PI)));
return xs_RoundToUInt(atan2(double(y), double(x)) * (ANGLE_180/M_PI));
}
}