MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / ImBitArraySetBitRange

Function ImBitArraySetBitRange

external/imgui/imgui_internal.h:633–644  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

631inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; }
632inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; }
633inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2) // Works on range [n..n2)
634{
635 n2--;
636 while (n <= n2)
637 {
638 int a_mod = (n & 31);
639 int b_mod = (n2 > (n | 31) ? 31 : (n2 & 31)) + 1;
640 ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1);
641 arr[n >> 5] |= mask;
642 n = (n + 32) & ~31;
643 }
644}
645
646typedef ImU32* ImBitArrayPtr; // Name for use in structs
647

Callers 2

SetBitRangeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected