MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / ImBitArraySetBitRange

Function ImBitArraySetBitRange

KBotExt/imgui/imgui_internal.h:549–560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

547inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; }
548inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; }
549inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2) // Works on range [n..n2)
550{
551 n2--;
552 while (n <= n2)
553 {
554 int a_mod = (n & 31);
555 int b_mod = (n2 > (n | 31) ? 31 : (n2 & 31)) + 1;
556 ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1);
557 arr[n >> 5] |= mask;
558 n = (n + 32) & ~31;
559 }
560}
561
562typedef ImU32* ImBitArrayPtr; // Name for use in structs
563

Callers 2

SetBitRangeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected