- Added GTX_texture: levels function
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
|
||||
// Dependency:
|
||||
#include "../glm.hpp"
|
||||
#include "../gtc/integer.hpp"
|
||||
#include "../gtx/component_wise.hpp"
|
||||
|
||||
#ifndef GLM_ENABLE_EXPERIMENTAL
|
||||
# error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
|
||||
@@ -28,17 +30,17 @@ namespace glm
|
||||
/// @addtogroup gtx_texture
|
||||
/// @{
|
||||
|
||||
/// Compute the number of mipmaps levels necessary to create a mipmap complete texture
|
||||
///
|
||||
/// @param Extent Extent of the texture base level mipmap
|
||||
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
|
||||
/// @tparam T Floating-point or signed integer scalar types
|
||||
/// @tparam Q Value from qualifier enum
|
||||
template <length_t L, typename T, qualifier Q>
|
||||
T levels(vec<L, T, Q> const& Extent);
|
||||
|
||||
/// @}
|
||||
}// namespace glm
|
||||
|
||||
#include "texture.inl"
|
||||
|
||||
/// @ref gtx_texture
|
||||
/// @file glm/gtx/texture.inl
|
||||
|
||||
namespace glm
|
||||
{
|
||||
|
||||
}//namespace glm
|
||||
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
|
||||
namespace glm
|
||||
{
|
||||
template <length_t L, typename T, qualifier Q>
|
||||
inline T levels(vec<L, T, Q> const& Extent)
|
||||
{
|
||||
return glm::log2(compMax(Extent)) + static_cast<T>(1);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline T levels(T Extent)
|
||||
{
|
||||
return vec<1, T, defaultp>(Extent).x;
|
||||
}
|
||||
}//namespace glm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user