From 14a04020ff6aa9c5314b2695583029fce5f04a1c Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 8 Mar 2014 22:34:07 -0800 Subject: [PATCH] Improve int-to-float and uint-to-float conversions --- OpenAL32/sample_cvt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAL32/sample_cvt.c b/OpenAL32/sample_cvt.c index 0c0ba6dd..a276d454 100644 --- a/OpenAL32/sample_cvt.c +++ b/OpenAL32/sample_cvt.c @@ -748,9 +748,9 @@ static inline ALfloat Conv_ALfloat_ALshort(ALshort val) static inline ALfloat Conv_ALfloat_ALushort(ALushort val) { return (val-32768) * (1.0f/32767.0f); } static inline ALfloat Conv_ALfloat_ALint(ALint val) -{ return (ALfloat)(val * (1.0/2147483647.0)); } +{ return (ALfloat)(val>>7) * (1.0f/16777215.0f); } static inline ALfloat Conv_ALfloat_ALuint(ALuint val) -{ return (ALfloat)((ALint)(val-2147483648u) * (1.0/2147483647.0)); } +{ return (ALfloat)((ALint)(val>>7)-16777216) * (1.0f/16777215.0f); } static inline ALfloat Conv_ALfloat_ALfloat(ALfloat val) { return (val==val) ? val : 0.0f; } static inline ALfloat Conv_ALfloat_ALdouble(ALdouble val) -- 2.11.4.GIT