parameterize number of dimensions of vector in tvec<D, T, P>

- specializes for 1, 2, 3 and 4-dimensional vector types
  which are then aliased as tvec1, tvec2, tvec3 and tvec4
- requires C++11 aliases; breaks compatability with C++03
- tested on:
  - clang-3.5.2, clang-3.8.0
  - gcc 4.8.5, gcc 5.4.1, gcc 6.2.0

TODO:
- still uses template template parameters - most can probably be removed
- some definitions might now be de-duplicated
This commit is contained in:
John McFarlane
2016-12-28 16:59:01 -08:00
parent 06f084063f
commit 506a487d24
94 changed files with 3453 additions and 3484 deletions

View File

@@ -18,8 +18,8 @@ namespace gli
/// gli::texture2d::extent_type Extent(32, 10);
/// gli::texture2d Texture(gli::levels(Extent));
/// @endcode
template <typename T, precision P, template <typename, precision> class vecType>
T levels(vecType<T, P> const& Extent);
template <int D, typename T, precision P, template <int, typename, precision> class vecType>
T levels(vecType<D, T, P> const& Extent);
/*
/// Compute the number of mipmaps levels necessary to create a mipmap complete texture
///