From f02a9935c65efbad9a0387b288df008a7f1ebf91 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Fri, 26 Oct 2012 15:31:14 -0700 Subject: Avoid branching when clamping and converting float samples to integer --- Alc/ALu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Alc/ALu.c') diff --git a/Alc/ALu.c b/Alc/ALu.c index 1ab58de6..4dd4c7dc 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -908,8 +908,8 @@ static __inline ALfloat aluF2F(ALfloat val) { return val; } static __inline ALint aluF2I(ALfloat val) { - if(val > 1.0f) return 2147483647; - if(val < -1.0f) return -2147483647-1; + val = val+1.0f - fabsf(val-1.0f); + val = (val-2.0f + fabsf(val+2.0f)) * 0.25; return fastf2i((ALfloat)(val*2147483647.0)); } static __inline ALuint aluF2UI(ALfloat val) -- cgit v1.2.3