diff options
author | Aaron Suen <warr1024@gmail.com> | 2015-03-09 09:32:11 -0400 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2015-04-01 00:01:05 -0400 |
commit | 6d61375cc72bad5c569d25c253adca4e3701dd27 (patch) | |
tree | 790accab0443ebcff77790da83a306d713045b01 /src/util/numeric.h | |
parent | b4247dff2e003dd8c5ea5a1f3ae349d0bfab90bc (diff) | |
download | hax-minetest-server-6d61375cc72bad5c569d25c253adca4e3701dd27.tar.gz hax-minetest-server-6d61375cc72bad5c569d25c253adca4e3701dd27.zip |
Clean scaling pre-filter for formspec/HUD.
Diffstat (limited to 'src/util/numeric.h')
-rw-r--r-- | src/util/numeric.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/util/numeric.h b/src/util/numeric.h index a158a2eae..b4b841918 100644 --- a/src/util/numeric.h +++ b/src/util/numeric.h @@ -411,5 +411,16 @@ inline bool is_power_of_two(u32 n) return n != 0 && (n & (n-1)) == 0; } -#endif +// Compute next-higher power of 2 efficiently, e.g. for power-of-2 texture sizes. +// Public Domain: https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 +inline u32 npot2(u32 orig) { + orig--; + orig |= orig >> 1; + orig |= orig >> 2; + orig |= orig >> 4; + orig |= orig >> 8; + orig |= orig >> 16; + return orig + 1; +} +#endif |