mirror of
https://github.com/g-truc/glm.git
synced 2024-11-22 08:54:35 +00:00
- Added GTX_texture: levels function
This commit is contained in:
parent
a2497e6174
commit
30ee2cd1bb
@ -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
|
||||
|
||||
|
@ -65,6 +65,7 @@ glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
|
||||
- Added fmin, fmax and fclamp to GTX_extended_min_max #372
|
||||
- Added EXT_vector_relational: extend equal and notEqual to take an epsilon argument
|
||||
- Added EXT_vec1: *vec1 types
|
||||
- Added GTX_texture: levels function
|
||||
|
||||
#### Improvements:
|
||||
- No more default initialization of vector, matrix and quaternion types
|
||||
|
@ -1,9 +1,22 @@
|
||||
#define GLM_ENABLE_EXPERIMENTAL
|
||||
#include <glm/vec2.hpp>
|
||||
#include <glm/gtx/texture.hpp>
|
||||
|
||||
int test_levels()
|
||||
{
|
||||
int Error = 0;
|
||||
|
||||
int const Levels = glm::levels(glm::ivec2(3, 2));
|
||||
Error += Levels == 2 ? 0 : 1;
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
int Error = 0;
|
||||
|
||||
Error += test_levels();
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user