From: <sv...@op...> - 2024-03-15 11:59:04
|
Author: manx Date: Fri Mar 15 12:58:51 2024 New Revision: 20346 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20346 Log: Merged revision(s) 20330 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/common/mptBaseUtils.h Modified: branches/OpenMPT-1.29/common/mptBaseUtils.h ============================================================================== --- branches/OpenMPT-1.29/common/mptBaseUtils.h Fri Mar 15 12:51:33 2024 (r20345) +++ branches/OpenMPT-1.29/common/mptBaseUtils.h Fri Mar 15 12:58:51 2024 (r20346) @@ -697,6 +697,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 |