Fix floating point precision loss in renderer [part 2]

Fix floatTime using float precision instead of double using GCC.
Fix R_BindAnimatedImage to be in sync with function table.
Fix vertexDeform bulge, vertexDeform normals, noise wave function
at high level time.

Revert unnecessary float -> double conversions.
This commit is contained in:
Zack Middleton committed 2017-08-03 00:14:22 -05:00
1 parent 30fdd88c9f
commit 59b1262b82
12 files changed
+62 -69

No files matched your search

+2 -5
View File
@@ -66,7 +66,6 @@ R_BindAnimatedImageToTMU
*/
static void R_BindAnimatedImageToTMU( textureBundle_t *bundle, int tmu ) {
int64_t index;
double v;
if ( bundle->isVideoMap ) {
ri.CIN_RunCinematic(bundle->videoMapHandle);
@@ -82,10 +81,8 @@ static void R_BindAnimatedImageToTMU( textureBundle_t *bundle, int tmu ) {
// it is necessary to do this messy calc to make sure animations line up
// exactly with waveforms of the same frequency
//index = ri.ftol(tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE);
//index >>= FUNCTABLE_SIZE2;
v = tess.shaderTime * bundle->imageAnimationSpeed;
index = v;
index = tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE;
index >>= FUNCTABLE_SIZE2;
if ( index < 0 ) {
index = 0; // may happen with shader time offsets