mkxp-z/subprojects/packagefiles/openal-soft-ps3.patch
2025-06-04 10:18:53 -04:00

24 lines
1.2 KiB
Diff

# The PlayStation 3 toolchain appears to be missing some functions from the C++ standard library. This replaces the missing functions with other ones that are available.
--- a/alc/effects/reverb.cpp
+++ b/alc/effects/reverb.cpp
@@ -931,7 +931,7 @@ void EarlyReflections::updateLines(const float density_mult, const float diffusi
/* Calculate the gain (coefficient) for the secondary reflections based on
* the average delay and decay time.
*/
- const auto length = std::reduce(EARLY_LINE_LENGTHS.begin(), EARLY_LINE_LENGTHS.end(), 0.0f)
+ const auto length = std::accumulate(EARLY_LINE_LENGTHS.begin(), EARLY_LINE_LENGTHS.end(), 0.0f)
/ float{EARLY_LINE_LENGTHS.size()} * density_mult;
Coeff = CalcDecayCoeff(length, decayTime);
--- a/common/albit.h
+++ b/common/albit.h
@@ -30,7 +30,7 @@ template<typename T>
std::enable_if_t<std::is_integral_v<T>,
T> byteswap(T value) noexcept
{
- static_assert(std::has_unique_object_representations_v<T>);
+ static_assert(std::has_unique_object_representations<T>::value);
auto bytes = al::bit_cast<std::array<std::byte,sizeof(T)>>(value);
std::reverse(bytes.begin(), bytes.end());
return al::bit_cast<T>(bytes);