Class for manipulating bit patterns. More...
#include <OgreBitwise.h>
Static Public Member Functions | |
static FORCEINLINE unsigned int | mostSignificantBitSet (unsigned int value) |
Returns the most significant bit set in a value. | |
static FORCEINLINE uint32 | firstPO2From (uint32 n) |
Returns the closest power-of-two number greater or equal to value. | |
template<typename T > | |
static FORCEINLINE bool | isPO2 (T n) |
Determines whether the number is power-of-two or not. | |
template<typename T > | |
static FORCEINLINE unsigned int | getBitShift (T mask) |
Returns the number of bits a pattern must be shifted right by to remove right-hand zeros. | |
template<typename SrcT , typename DestT > | |
static DestT | convertBitPattern (SrcT srcValue, SrcT srcBitMask, DestT destBitMask) |
Takes a value with a given src bit mask, and produces another value with a desired bit mask. | |
static unsigned int | fixedToFixed (uint32 value, unsigned int n, unsigned int p) |
Convert N bit colour channel value to P bits. | |
static unsigned int | floatToFixed (const float value, const unsigned int bits) |
Convert floating point colour channel value between 0.0 and 1.0 (otherwise clamped) to integer of a certain number of bits. | |
static float | fixedToFloat (unsigned value, unsigned int bits) |
Fixed point to float. | |
static void | intWrite (void *dest, const int n, const unsigned int value) |
Write a n*8 bits integer value to memory in native endian. | |
static unsigned int | intRead (const void *src, int n) |
Read a n*8 bits integer value to memory in native endian. | |
static uint16 | floatToHalf (float i) |
Convert a float32 to a float16 (NV_half_float) Courtesy of OpenEXR. | |
static uint16 | floatToHalfI (uint32 i) |
Converts float in uint32 format to a a half in uint16 format. | |
static float | halfToFloat (uint16 y) |
Convert a float16 (NV_half_float) to a float32 Courtesy of OpenEXR. | |
static uint32 | halfToFloatI (uint16 y) |
Converts a half in uint16 format to a float in uint32 format. |
Class for manipulating bit patterns.
Definition at line 43 of file OgreBitwise.h.
static DestT Ogre::Bitwise::convertBitPattern | ( | SrcT | srcValue, | |
SrcT | srcBitMask, | |||
DestT | destBitMask | |||
) | [static] |
Takes a value with a given src bit mask, and produces another value with a desired bit mask.
Definition at line 102 of file OgreBitwise.h.
References getBitShift().
Returns the closest power-of-two number greater or equal to value.
Definition at line 60 of file OgreBitwise.h.
static unsigned int Ogre::Bitwise::fixedToFixed | ( | uint32 | value, | |
unsigned int | n, | |||
unsigned int | p | |||
) | [static] |
Convert N bit colour channel value to P bits.
It fills P bits with the bit pattern repeated. (this is /((1<<n)-1) in fixed point)
Definition at line 127 of file OgreBitwise.h.
static float Ogre::Bitwise::fixedToFloat | ( | unsigned | value, | |
unsigned int | bits | |||
) | [static] |
Fixed point to float.
Definition at line 161 of file OgreBitwise.h.
static unsigned int Ogre::Bitwise::floatToFixed | ( | const float | value, | |
const unsigned int | bits | |||
) | [static] |
Convert floating point colour channel value between 0.0 and 1.0 (otherwise clamped) to integer of a certain number of bits.
Works for any value of bits between 0 and 31.
Definition at line 151 of file OgreBitwise.h.
static uint16 Ogre::Bitwise::floatToHalf | ( | float | i | ) | [static] |
Convert a float32 to a float16 (NV_half_float) Courtesy of OpenEXR.
Definition at line 222 of file OgreBitwise.h.
References floatToHalfI().
Converts float in uint32 format to a a half in uint16 format.
Definition at line 230 of file OgreBitwise.h.
Referenced by floatToHalf().
static FORCEINLINE unsigned int Ogre::Bitwise::getBitShift | ( | T | mask | ) | [static] |
Returns the number of bits a pattern must be shifted right by to remove right-hand zeros.
Definition at line 83 of file OgreBitwise.h.
Referenced by convertBitPattern().
static float Ogre::Bitwise::halfToFloat | ( | uint16 | y | ) | [static] |
Convert a float16 (NV_half_float) to a float32 Courtesy of OpenEXR.
Definition at line 273 of file OgreBitwise.h.
References halfToFloatI().
Converts a half in uint16 format to a float in uint32 format.
Definition at line 282 of file OgreBitwise.h.
Referenced by halfToFloat().
static unsigned int Ogre::Bitwise::intRead | ( | const void * | src, | |
int | n | |||
) | [static] |
Read a n*8 bits integer value to memory in native endian.
Definition at line 197 of file OgreBitwise.h.
static void Ogre::Bitwise::intWrite | ( | void * | dest, | |
const int | n, | |||
const unsigned int | value | |||
) | [static] |
Write a n*8 bits integer value to memory in native endian.
Definition at line 169 of file OgreBitwise.h.
static FORCEINLINE bool Ogre::Bitwise::isPO2 | ( | T | n | ) | [static] |
Determines whether the number is power-of-two or not.
Definition at line 75 of file OgreBitwise.h.
static FORCEINLINE unsigned int Ogre::Bitwise::mostSignificantBitSet | ( | unsigned int | value | ) | [static] |
Returns the most significant bit set in a value.
Definition at line 47 of file OgreBitwise.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:37:10 2012