MyGUI
3.2.1
Main Page
Related Pages
Namespaces
Data Structures
Files
Examples
File List
Globals
mygui
MyGUIEngine
include
MyGUI_Bitwise.h
Go to the documentation of this file.
1
/*
2
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
3
* Distributed under the MIT License
4
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5
*/
6
7
#ifndef __MYGUI_BITWISE_H__
8
#define __MYGUI_BITWISE_H__
9
10
#include "
MyGUI_Prerequest.h
"
11
12
namespace
MyGUI
13
{
14
15
class
Bitwise
16
{
17
public
:
20
template
<
typename
Type>
21
static
MYGUI_FORCEINLINE
Type
firstPO2From
(Type _value)
22
{
23
--_value;
24
_value |= _value >> 16;
25
_value |= _value >> 8;
26
_value |= _value >> 4;
27
_value |= _value >> 2;
28
_value |= _value >> 1;
29
++_value;
30
return
_value;
31
}
32
34
template
<
typename
Type>
35
static
MYGUI_FORCEINLINE
bool
isPO2
(Type _value)
36
{
37
return
(_value & (_value - 1)) == 0;
38
}
39
43
template
<
typename
Type>
44
static
MYGUI_FORCEINLINE
size_t
getBitShift
(Type _mask)
45
{
46
if
(_mask == 0)
47
return
0;
48
49
size_t
result = 0;
50
while
((_mask & 1) == 0)
51
{
52
++result;
53
_mask >>= 1;
54
}
55
return
result;
56
}
57
};
58
59
}
// namespace MyGUI
60
61
#endif // __MYGUI_BITWISE_H__
Generated on Wed Aug 20 2014 00:03:32 for MyGUI by
1.8.3.1