MCPcopy Create free account
hub / github.com/RenderKit/embree / ImBitArraySetBitRange

Function ImBitArraySetBitRange

tutorials/common/imgui/imgui_internal.h:553–564  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

551inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; }
552inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; }
553inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2) // Works on range [n..n2)
554{
555 n2--;
556 while (n <= n2)
557 {
558 int a_mod = (n & 31);
559 int b_mod = (n2 > (n | 31) ? 31 : (n2 & 31)) + 1;
560 ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1);
561 arr[n >> 5] |= mask;
562 n = (n + 32) & ~31;
563 }
564}
565
566// Helper: ImBitArray class (wrapper over ImBitArray functions)
567// Store 1-bit per value.

Callers 1

SetBitRangeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected