Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #pragma once
00040
00041
00042 #include "../detail/type_int.hpp"
00043 #include "../detail/setup.hpp"
00044 #include <cstddef>
00045
00046 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
00047 # pragma message("GLM: GLM_GTX_bit extension included")
00048 #endif
00049
00050 namespace glm
00051 {
00054
00057 template <typename genIType>
00058 GLM_FUNC_DECL genIType mask(genIType const & count);
00059
00062 template <typename genType>
00063 GLM_FUNC_DECL genType highestBitValue(genType const & value);
00064
00067 template <typename genType>
00068 GLM_FUNC_DECL bool isPowerOfTwo(genType const & value);
00069
00072 template <typename genType>
00073 GLM_FUNC_DECL genType powerOfTwoAbove(genType const & value);
00074
00077 template <typename genType>
00078 GLM_FUNC_DECL genType powerOfTwoBelow(genType const & value);
00079
00082 template <typename genType>
00083 GLM_FUNC_DECL genType powerOfTwoNearest(genType const & value);
00084
00087 template <typename genType>
00088 GLM_DEPRECATED GLM_FUNC_DECL genType bitRevert(genType const & value);
00089
00092 template <typename genType>
00093 GLM_FUNC_DECL genType bitRotateRight(genType const & In, std::size_t Shift);
00094
00097 template <typename genType>
00098 GLM_FUNC_DECL genType bitRotateLeft(genType const & In, std::size_t Shift);
00099
00102 template <typename genIUType>
00103 GLM_FUNC_DECL genIUType fillBitfieldWithOne(
00104 genIUType const & Value,
00105 int const & FromBit,
00106 int const & ToBit);
00107
00110 template <typename genIUType>
00111 GLM_FUNC_DECL genIUType fillBitfieldWithZero(
00112 genIUType const & Value,
00113 int const & FromBit,
00114 int const & ToBit);
00115
00121 GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
00122
00128 GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
00129
00135 GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
00136
00142 GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
00143
00149 GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
00150
00156 GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
00157
00163 GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
00164
00170 GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
00171
00177 GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
00178
00184 GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
00185
00191 GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
00192
00198 GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
00199
00205 GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
00206
00212 GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
00213
00219 GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
00220
00226 GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
00227
00229 }
00230
00231 #include "bit.inl"