aboutsummaryrefslogtreecommitdiff
path: root/vendor/sdl3/sdl3_bits.odin
blob: 8626d07675cc74b4a6425c608af221ae7ce78bd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package sdl3

import "base:intrinsics"
import "core:c"

@(require_results)
MostSignificantBitIndex32 :: #force_inline proc "c" (x: Uint32) -> c.int {
	if x == 0 {
		return -1
	}
	return c.int(31 - intrinsics.count_leading_zeros(x))
}

@(require_results)
HasExactlyOneBitSet32 :: #force_inline proc "c" (x: Uint32) -> bool {
	return x != 0 && (x & (x - 1)) == 0
}