Author: manx
Date: Fri Mar 15 13:13:15 2024
New Revision: 20350
URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20350
Log:
Merged revision(s) 20346 from branches/OpenMPT-1.29:
Merged revision(s) 20330 from trunk/OpenMPT:
[Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up.
........
........
Modified:
branches/OpenMPT-1.28/ (props changed)
branches/OpenMPT-1.28/common/mptBaseUtils.h
Modified: branches/OpenMPT-1.28/common/mptBaseUtils.h
==============================================================================
--- branches/OpenMPT-1.28/common/mptBaseUtils.h Fri Mar 15 13:09:56 2024 (r20349)
+++ branches/OpenMPT-1.28/common/mptBaseUtils.h Fri Mar 15 13:13:15 2024 (r20350)
@@ -701,6 +701,18 @@
return (x / target) * target;
}
+ // rounds x up to multiples of target or saturation of T
+ template <typename T>
+ inline T SaturateAlignUp(T x, T target)
+ {
+ if(x > (std::numeric_limits<T>::max() - (target - 1)))
+ {
+ return std::numeric_limits<T>::max();
+ }
+ T result = ((x + (target - 1)) / target) * target;
+ return result;
+ }
+
} // namespace Util
|