From 81e3259535acda40d00505fd908b9dbed3b66ef4 Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Sun, 5 Apr 2020 23:04:59 +0200 Subject: [PATCH] Backends/Audio/SoftwareMixer: Optimized `fmod(x, 1.0)` to `x - trunc(x)` Signed-off-by: Gabriel Ravier --- src/Backends/Audio/SoftwareMixer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Backends/Audio/SoftwareMixer.cpp b/src/Backends/Audio/SoftwareMixer.cpp index a7088040..4260eae4 100644 --- a/src/Backends/Audio/SoftwareMixer.cpp +++ b/src/Backends/Audio/SoftwareMixer.cpp @@ -1,6 +1,6 @@ #include "SoftwareMixer.h" -#include +#include #include #include #include @@ -154,7 +154,7 @@ ATTRIBUTE_HOT void Mixer_MixSounds(float *stream, unsigned int frames_total) const float sample2 = (sound->samples[(size_t)sound->position + 1] - 128.0f) / 128.0f; // Perform linear interpolation - const float interpolated_sample = sample1 + ((sample2 - sample1) * fmod(sound->position, 1.0)); + const float interpolated_sample = sample1 + (sample2 - sample1) * (sound->position - std::trunc(sound->position)); *steam_pointer++ += interpolated_sample * sound->volume_l; *steam_pointer++ += interpolated_sample * sound->volume_r; @@ -165,7 +165,7 @@ ATTRIBUTE_HOT void Mixer_MixSounds(float *stream, unsigned int frames_total) { if (sound->looping) { - sound->position = fmod(sound->position, (double)sound->frames); + sound->position = std::fmod(sound->position, (double)sound->frames); } else {