From: <sv...@op...> - 2024-03-15 12:13:32
|
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 |