MCPcopy Create free account
hub / github.com/DentonW/DevIL / GetBitsFromMask

Function GetBitsFromMask

DevIL/src-IL/src/il_dds.cpp:1870–1894  ·  view source on GitHub ↗

@TODO: Look at using the BSF/BSR operands for inline ASM here.

Source from the content-addressed store, hash-verified

1868
1869// @TODO: Look at using the BSF/BSR operands for inline ASM here.
1870void GetBitsFromMask(ILuint Mask, ILuint *ShiftLeft, ILuint *ShiftRight)
1871{
1872 ILuint Temp, i;
1873
1874 if (Mask == 0) {
1875 *ShiftLeft = *ShiftRight = 0;
1876 return;
1877 }
1878
1879 Temp = Mask;
1880 for (i = 0; i < 32; i++, Temp >>= 1) {
1881 if (Temp & 1)
1882 break;
1883 }
1884 *ShiftRight = i;
1885
1886 // Temp is preserved, so use it again:
1887 for (i = 0; i < 8; i++, Temp >>= 1) {
1888 if (!(Temp & 1))
1889 break;
1890 }
1891 *ShiftLeft = 8 - i;
1892
1893 return;
1894}
1895
1896
1897//

Callers 2

DecompressARGBFunction · 0.85
DecompressARGB16Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected