14 #if !GLM_HAS_ALIGNED_TYPE 
   15 #       error "GLM: Aligned types are not supported on this platform" 
   17 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 
   18 # pragma message("GLM: GLM_GTC_type_aligned extension included") 
   21 #include "../vec2.hpp" 
   22 #include "../vec3.hpp" 
   23 #include "../vec4.hpp" 
   24 #include "../gtc/vec1.hpp" 
   28         template <
typename T, precision P> 
struct tvec1;
 
   29         template <
typename T, precision P> 
struct tvec2;
 
   30         template <
typename T, precision P> 
struct tvec3;
 
   31         template <
typename T, precision P> 
struct tvec4;
 
   37         typedef tvec1<float, aligned_highp>             aligned_highp_vec1;
 
   38         typedef tvec1<float, aligned_mediump>   aligned_mediump_vec1;
 
   39         typedef tvec1<float, aligned_lowp>              aligned_lowp_vec1;
 
   40         typedef tvec1<double, aligned_highp>    aligned_highp_dvec1;
 
   41         typedef tvec1<double, aligned_mediump>  aligned_mediump_dvec1;
 
   42         typedef tvec1<double, aligned_lowp>             aligned_lowp_dvec1;
 
   43         typedef tvec1<int, aligned_highp>               aligned_highp_ivec1;
 
   44         typedef tvec1<int, aligned_mediump>             aligned_mediump_ivec1;
 
   45         typedef tvec1<int, aligned_lowp>                aligned_lowp_ivec1;
 
   46         typedef tvec1<uint, aligned_highp>              aligned_highp_uvec1;
 
   47         typedef tvec1<uint, aligned_mediump>    aligned_mediump_uvec1;
 
   48         typedef tvec1<uint, aligned_lowp>               aligned_lowp_uvec1;
 
   49         typedef tvec1<bool, aligned_highp>              aligned_highp_bvec1;
 
   50         typedef tvec1<bool, aligned_mediump>    aligned_mediump_bvec1;
 
   51         typedef tvec1<bool, aligned_lowp>               aligned_lowp_bvec1;
 
   53         typedef tvec1<float, packed_highp>              packed_highp_vec1;
 
   54         typedef tvec1<float, packed_mediump>    packed_mediump_vec1;
 
   55         typedef tvec1<float, packed_lowp>               packed_lowp_vec1;
 
   56         typedef tvec1<double, packed_highp>             packed_highp_dvec1;
 
   57         typedef tvec1<double, packed_mediump>   packed_mediump_dvec1;
 
   58         typedef tvec1<double, packed_lowp>              packed_lowp_dvec1;
 
   59         typedef tvec1<int, packed_highp>                packed_highp_ivec1;
 
   60         typedef tvec1<int, packed_mediump>              packed_mediump_ivec1;
 
   61         typedef tvec1<int, packed_lowp>                 packed_lowp_ivec1;
 
   62         typedef tvec1<uint, packed_highp>               packed_highp_uvec1;
 
   63         typedef tvec1<uint, packed_mediump>             packed_mediump_uvec1;
 
   64         typedef tvec1<uint, packed_lowp>                packed_lowp_uvec1;
 
   65         typedef tvec1<bool, packed_highp>               packed_highp_bvec1;
 
   66         typedef tvec1<bool, packed_mediump>             packed_mediump_bvec1;
 
   67         typedef tvec1<bool, packed_lowp>                packed_lowp_bvec1;
 
  239 #if(defined(GLM_PRECISION_LOWP_FLOAT)) 
  244 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 
  249 #else //defined(GLM_PRECISION_HIGHP_FLOAT) 
  261 #endif//GLM_PRECISION 
  263 #if(defined(GLM_PRECISION_LOWP_DOUBLE)) 
  268 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE)) 
  273 #else //defined(GLM_PRECISION_HIGHP_DOUBLE) 
  285 #endif//GLM_PRECISION 
  287 #if(defined(GLM_PRECISION_LOWP_INT)) 
  292 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 
  297 #else //defined(GLM_PRECISION_HIGHP_INT) 
  309 #endif//GLM_PRECISION 
  313 #if(defined(GLM_PRECISION_LOWP_UINT)) 
  318 #elif(defined(GLM_PRECISION_MEDIUMP_UINT)) 
  323 #else //defined(GLM_PRECISION_HIGHP_UINT) 
  335 #endif//GLM_PRECISION 
  337 #if(defined(GLM_PRECISION_LOWP_BOOL)) 
  342 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL)) 
  347 #else //defined(GLM_PRECISION_HIGHP_BOOL) 
  359 #endif//GLM_PRECISION 
aligned_highp_bvec2 aligned_bvec2
2 components vector of boolean. 
tvec2< double, aligned_mediump > aligned_mediump_dvec2
2 components vector of medium double-precision floating-point numbers. 
tvec4< bool, aligned_highp > aligned_highp_bvec4
4 components vector of high precision bool numbers. 
tvec3< uint, aligned_highp > aligned_highp_uvec3
3 components vector of high precision unsigned integer numbers. 
aligned_highp_dvec4 aligned_dvec4
4 components vector of double-precision floating-point numbers. 
aligned_highp_dvec1 aligned_dvec1
1 component vector of double-precision floating-point numbers. 
tvec3< int, aligned_lowp > aligned_lowp_ivec3
3 components vector of low precision signed integer numbers. 
tvec3< double, aligned_mediump > aligned_mediump_dvec3
3 components vector of medium double-precision floating-point numbers. 
tvec3< float, aligned_lowp > aligned_lowp_vec3
3 components vector of low single-precision floating-point numbers. 
tvec2< bool, aligned_lowp > aligned_lowp_bvec2
2 components vector of low precision bool numbers. 
tvec3< uint, aligned_mediump > aligned_mediump_uvec3
3 components vector of medium precision unsigned integer numbers. 
tvec4< float, aligned_lowp > aligned_lowp_vec4
4 components vector of low single-precision floating-point numbers. 
tvec4< double, aligned_mediump > aligned_mediump_dvec4
4 components vector of medium double-precision floating-point numbers. 
tvec2< uint, aligned_mediump > aligned_mediump_uvec2
2 components vector of medium precision unsigned integer numbers. 
tvec2< int, aligned_mediump > aligned_mediump_ivec2
2 components vector of medium precision signed integer numbers. 
tvec4< uint, aligned_mediump > aligned_mediump_uvec4
4 components vector of medium precision unsigned integer numbers. 
aligned_highp_bvec4 aligned_bvec4
4 components vector of boolean. 
tvec2< bool, aligned_highp > aligned_highp_bvec2
2 components vector of high precision bool numbers. 
aligned_highp_ivec1 aligned_ivec1
1 component vector of signed integer numbers. 
tvec3< uint, aligned_lowp > aligned_lowp_uvec3
3 components vector of low precision unsigned integer numbers. 
tvec4< bool, aligned_lowp > aligned_lowp_bvec4
4 components vector of low precision bool numbers. 
aligned_highp_dvec3 aligned_dvec3
3 components vector of double-precision floating-point numbers. 
aligned_highp_vec2 aligned_vec2
2 components vector of floating-point numbers. 
aligned_highp_bvec3 aligned_bvec3
3 components vector of boolean. 
tvec2< double, aligned_lowp > aligned_lowp_dvec2
2 components vector of low double-precision floating-point numbers. 
tvec3< double, aligned_highp > aligned_highp_dvec3
3 components vector of high double-precision floating-point numbers. 
aligned_highp_uvec4 aligned_uvec4
4 components vector of unsigned integer numbers. 
tvec3< int, aligned_highp > aligned_highp_ivec3
3 components vector of high precision signed integer numbers. 
tvec4< uint, aligned_highp > aligned_highp_uvec4
4 components vector of high precision unsigned integer numbers. 
tvec2< uint, aligned_lowp > aligned_lowp_uvec2
2 components vector of low precision unsigned integer numbers. 
tvec3< int, aligned_mediump > aligned_mediump_ivec3
3 components vector of medium precision signed integer numbers. 
tvec2< float, aligned_lowp > aligned_lowp_vec2
2 components vector of low single-precision floating-point numbers. 
aligned_highp_uvec3 aligned_uvec3
3 components vector of unsigned integer numbers. 
tvec4< float, aligned_highp > aligned_highp_vec4
4 components vector of high single-precision floating-point numbers. 
tvec4< float, aligned_mediump > aligned_mediump_vec4
4 components vector of medium single-precision floating-point numbers. 
tvec2< uint, aligned_highp > aligned_highp_uvec2
2 components vector of high precision unsigned integer numbers. 
tvec3< bool, aligned_lowp > aligned_lowp_bvec3
3 components vector of low precision bool numbers. 
aligned_highp_bvec1 aligned_bvec1
1 component vector of boolean. 
tvec3< float, aligned_highp > aligned_highp_vec3
3 components vector of high single-precision floating-point numbers. 
tvec4< double, aligned_highp > aligned_highp_dvec4
4 components vector of high double-precision floating-point numbers. 
aligned_highp_uvec1 aligned_uvec1
1 component vector of unsigned integer numbers. 
tvec2< float, aligned_highp > aligned_highp_vec2
2 components vector of high single-precision floating-point numbers. 
tvec3< float, aligned_mediump > aligned_mediump_vec3
3 components vector of medium single-precision floating-point numbers. 
aligned_highp_vec4 aligned_vec4
4 components vector of floating-point numbers. 
tvec3< bool, aligned_mediump > aligned_mediump_bvec3
3 components vector of medium precision bool numbers. 
tvec4< bool, aligned_mediump > aligned_mediump_bvec4
4 components vector of medium precision bool numbers. 
tvec2< float, aligned_mediump > aligned_mediump_vec2
2 components vector of medium single-precision floating-point numbers. 
aligned_highp_ivec4 aligned_ivec4
4 components vector of signed integer numbers. 
tvec2< bool, aligned_mediump > aligned_mediump_bvec2
2 components vector of medium precision bool numbers. 
tvec3< double, aligned_lowp > aligned_lowp_dvec3
3 components vector of low double-precision floating-point numbers. 
tvec4< uint, aligned_lowp > aligned_lowp_uvec4
4 components vector of low precision unsigned integer numbers. 
tvec2< int, aligned_highp > aligned_highp_ivec2
2 components vector of high precision signed integer numbers. 
aligned_highp_dvec2 aligned_dvec2
2 components vector of double-precision floating-point numbers. 
aligned_highp_uvec2 aligned_uvec2
2 components vector of unsigned integer numbers. 
tvec4< int, aligned_lowp > aligned_lowp_ivec4
4 components vector of low precision signed integer numbers. 
tvec2< int, aligned_lowp > aligned_lowp_ivec2
2 components vector of low precision signed integer numbers. 
aligned_highp_vec1 aligned_vec1
1 component vector of floating-point numbers. 
tvec4< double, aligned_lowp > aligned_lowp_dvec4
4 components vector of low double-precision floating-point numbers. 
tvec4< int, aligned_mediump > aligned_mediump_ivec4
4 components vector of medium precision signed integer numbers. 
tvec3< bool, aligned_highp > aligned_highp_bvec3
3 components vector of high precision bool numbers. 
aligned_highp_ivec2 aligned_ivec2
2 components vector of signed integer numbers. 
tvec4< int, aligned_highp > aligned_highp_ivec4
4 components vector of high precision signed integer numbers. 
aligned_highp_ivec3 aligned_ivec3
3 components vector of signed integer numbers. 
tvec2< double, aligned_highp > aligned_highp_dvec2
2 components vector of high double-precision floating-point numbers. 
aligned_highp_vec3 aligned_vec3
3 components vector of floating-point numbers.