MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / ImBitArraySetBitRange

Function ImBitArraySetBitRange

plugins/Cardinal/src/DearImGui/imgui_internal.h:528–539  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

526inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; }
527inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; }
528inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2) // Works on range [n..n2)
529{
530 n2--;
531 while (n <= n2)
532 {
533 int a_mod = (n & 31);
534 int b_mod = (n2 > (n | 31) ? 31 : (n2 & 31)) + 1;
535 ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1);
536 arr[n >> 5] |= mask;
537 n = (n + 32) & ~31;
538 }
539}
540
541// Helper: ImBitArray class (wrapper over ImBitArray functions)
542// Store 1-bit per value.

Callers 1

SetBitRangeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected