Fix build errors/warnings.
This commit is contained in:
parent
f0d9497e1f
commit
9de43e7757
4
extern/poshlib/posh.h
vendored
4
extern/poshlib/posh.h
vendored
@ -692,8 +692,8 @@ typedef unsigned long posh_u64_t;
|
|||||||
# define POSH_64BIT_INTEGER 1
|
# define POSH_64BIT_INTEGER 1
|
||||||
typedef __int64 posh_i64_t;
|
typedef __int64 posh_i64_t;
|
||||||
typedef unsigned __int64 posh_u64_t;
|
typedef unsigned __int64 posh_u64_t;
|
||||||
# define POSH_I64( x ) ((posh_i64_t)x)
|
# define POSH_I64( x ) ((posh_i64_t)(x##i64))
|
||||||
# define POSH_U64( x ) ((posh_u64_t)x)
|
# define POSH_U64( x ) ((posh_u64_t)(x##ui64))
|
||||||
# define POSH_I64_PRINTF_PREFIX "I64"
|
# define POSH_I64_PRINTF_PREFIX "I64"
|
||||||
#elif defined __GNUC__ || defined __MWERKS__ || defined __SUNPRO_C || defined __SUNPRO_CC || defined __APPLE_CC__ || defined POSH_OS_IRIX || defined _LONG_LONG || defined _CRAYC
|
#elif defined __GNUC__ || defined __MWERKS__ || defined __SUNPRO_C || defined __SUNPRO_CC || defined __APPLE_CC__ || defined POSH_OS_IRIX || defined _LONG_LONG || defined _CRAYC
|
||||||
# define POSH_64BIT_INTEGER 1
|
# define POSH_64BIT_INTEGER 1
|
||||||
|
@ -238,15 +238,17 @@ namespace nv
|
|||||||
// I'm always confused about which quantizer to use. I think we should choose a quantizer based on how the values are expanded later and this is generally using the 'exact endpoints' rule.
|
// I'm always confused about which quantizer to use. I think we should choose a quantizer based on how the values are expanded later and this is generally using the 'exact endpoints' rule.
|
||||||
|
|
||||||
// Quantize a [0, 1] full precision float, using exact endpoints.
|
// Quantize a [0, 1] full precision float, using exact endpoints.
|
||||||
inline float quantizeFloat(float f, int bits) {
|
inline float quantizeFloat(float f, uint bits) {
|
||||||
float scale = (1 << bits) - 1;
|
nvDebugCheck(bits <= 16);
|
||||||
|
float scale = float((1 << bits) - 1);
|
||||||
float offset = 0.0f;
|
float offset = 0.0f;
|
||||||
return floor(saturate(f) * scale + offset) / scale;
|
return floor(saturate(f) * scale + offset) / scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quantize a [0, 1] full precision float, using uniform bins.
|
// Quantize a [0, 1] full precision float, using uniform bins.
|
||||||
/*inline float quantizeFloat(float f, int bits) {
|
/*inline float quantizeFloat(float f, uint bits) {
|
||||||
float scale = (1 << bits);
|
nvDebugCheck(bits <= 16);
|
||||||
|
float scale = float(1 << bits);
|
||||||
float offset = 0.5f;
|
float offset = 0.5f;
|
||||||
return floor(saturate(f) * scale + offset) / scale;
|
return floor(saturate(f) * scale + offset) / scale;
|
||||||
}*/
|
}*/
|
||||||
|
@ -1469,10 +1469,10 @@ void Surface::toRGBE(int mantissaBits, int exponentBits)
|
|||||||
int E = max(- exponentBias - 1, floatExponent(M)) + 1 + exponentBias;
|
int E = max(- exponentBias - 1, floatExponent(M)) + 1 + exponentBias;
|
||||||
nvDebugCheck(E >= 0 && E < (1 << exponentBits));
|
nvDebugCheck(E >= 0 && E < (1 << exponentBits));
|
||||||
|
|
||||||
double denom = pow(2, E - exponentBias - mantissaBits);
|
double denom = pow(2.0, double(E - exponentBias - mantissaBits));
|
||||||
|
|
||||||
// Refine exponent:
|
// Refine exponent:
|
||||||
int m = iround(M / denom);
|
int m = iround(float(M / denom));
|
||||||
nvDebugCheck(m <= (1 << mantissaBits));
|
nvDebugCheck(m <= (1 << mantissaBits));
|
||||||
|
|
||||||
if (m == (1 << mantissaBits)) {
|
if (m == (1 << mantissaBits)) {
|
||||||
@ -1481,9 +1481,9 @@ void Surface::toRGBE(int mantissaBits, int exponentBits)
|
|||||||
nvDebugCheck(E < (1 << exponentBits));
|
nvDebugCheck(E < (1 << exponentBits));
|
||||||
}
|
}
|
||||||
|
|
||||||
R = floatRound(R / denom);
|
R = floatRound(float(R / denom));
|
||||||
G = floatRound(G / denom);
|
G = floatRound(float(G / denom));
|
||||||
B = floatRound(B / denom);
|
B = floatRound(float(B / denom));
|
||||||
|
|
||||||
nvDebugCheck(R >= 0 && R < (1 << mantissaBits));
|
nvDebugCheck(R >= 0 && R < (1 << mantissaBits));
|
||||||
nvDebugCheck(G >= 0 && G < (1 << mantissaBits));
|
nvDebugCheck(G >= 0 && G < (1 << mantissaBits));
|
||||||
@ -1493,7 +1493,7 @@ void Surface::toRGBE(int mantissaBits, int exponentBits)
|
|||||||
r[i] = R / ((1 << mantissaBits) - 1);
|
r[i] = R / ((1 << mantissaBits) - 1);
|
||||||
g[i] = G / ((1 << mantissaBits) - 1);
|
g[i] = G / ((1 << mantissaBits) - 1);
|
||||||
b[i] = B / ((1 << mantissaBits) - 1);
|
b[i] = B / ((1 << mantissaBits) - 1);
|
||||||
a[i] = E / ((1 << exponentBits) - 1);
|
a[i] = float(E) / ((1 << exponentBits) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1529,7 +1529,7 @@ void Surface::fromRGBE(int mantissaBits, int exponentBits)
|
|||||||
detach();
|
detach();
|
||||||
|
|
||||||
// exponent bias: 5 -> 15, 8 -> 127
|
// exponent bias: 5 -> 15, 8 -> 127
|
||||||
const float exponentBias = (1 << (exponentBits - 1)) - 1;
|
const int exponentBias = (1 << (exponentBits - 1)) - 1;
|
||||||
|
|
||||||
FloatImage * img = m->image;
|
FloatImage * img = m->image;
|
||||||
float * r = img->channel(0);
|
float * r = img->channel(0);
|
||||||
@ -1545,7 +1545,7 @@ void Surface::fromRGBE(int mantissaBits, int exponentBits)
|
|||||||
int B = iround(b[i] * ((1 << mantissaBits) - 1));
|
int B = iround(b[i] * ((1 << mantissaBits) - 1));
|
||||||
int E = iround(a[i] * ((1 << exponentBits) - 1));
|
int E = iround(a[i] * ((1 << exponentBits) - 1));
|
||||||
|
|
||||||
float scale = powf(2, E - exponentBias - mantissaBits);
|
float scale = powf(2, float(E - exponentBias - mantissaBits));
|
||||||
|
|
||||||
r[i] = R * scale;
|
r[i] = R * scale;
|
||||||
g[i] = G * scale;
|
g[i] = G * scale;
|
||||||
|
Loading…
Reference in New Issue
Block a user