2016-11-13 00:16:44 +00:00
![glm ](/doc/manual/logo-mini.png )
2015-05-01 13:30:52 +00:00
2015-05-01 17:40:03 +00:00
[OpenGL Mathematics ](http://glm.g-truc.net/ ) (*GLM*) is a header only C++ mathematics library for graphics software based on the [OpenGL Shading Language (GLSL) specifications ](https://www.opengl.org/registry/doc/GLSLangSpec.4.50.diff.pdf ).
2015-05-01 14:16:36 +00:00
2016-11-01 21:22:50 +00:00
*GLM* provides classes and functions designed and implemented with the same naming conventions and functionality than *GLSL* so that anyone who knows *GLSL* , can use *GLM* as well in C++.
2015-05-01 14:16:36 +00:00
2015-05-01 14:46:45 +00:00
This project isn't limited to *GLSL* features. An extension system, based on the *GLSL* extension conventions, provides extended capabilities: matrix transformations, quaternions, data packing, random numbers, noise, etc...
2015-05-01 14:16:36 +00:00
2015-05-01 17:40:03 +00:00
This library works perfectly with *[OpenGL](https://www.opengl.org)* but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library.
2015-05-01 14:16:36 +00:00
2015-05-01 14:07:48 +00:00
*GLM* is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:
2016-12-02 00:14:36 +00:00
- [Apple Clang 6.0 ](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html ) and higher
- [GCC ](http://gcc.gnu.org/ ) 4.7 and higher
2015-05-01 14:16:36 +00:00
- [Intel C++ Composer ](https://software.intel.com/en-us/intel-compilers ) XE 2013 and higher
2016-12-02 00:14:36 +00:00
- [LLVM ](http://llvm.org/ ) 3.4 and higher
- [Visual C++ ](http://www.visualstudio.com/ ) 2013 and higher
2016-11-01 08:56:07 +00:00
- [CUDA ](https://developer.nvidia.com/about-cuda ) 7.0 and higher (experimental)
2016-12-02 00:14:36 +00:00
- Any C++11 compiler
2015-05-01 14:16:36 +00:00
2016-11-03 19:06:47 +00:00
For more information about *GLM* , please have a look at the [manual ](manual.md ) and the [API reference documentation ](http://glm.g-truc.net/0.9.8/api/index.html ).
2016-11-06 20:08:06 +00:00
The source code and the documentation are licensed under both the [Happy Bunny License (Modified MIT) or the MIT License ](manual.md#section0 ).
2015-05-01 14:16:36 +00:00
2015-05-01 14:07:48 +00:00
Thanks for contributing to the project by [submitting issues ](https://github.com/g-truc/glm/issues ) for bug reports and feature requests. Any feedback is welcome at [glm@g-truc.net ](mailto://glm@g-truc.net ).
2016-11-03 19:06:47 +00:00
```cpp
2015-05-01 14:07:48 +00:00
#include <glm/vec3.hpp> // glm::vec3
#include <glm/vec4.hpp> // glm::vec4
#include <glm/mat4x4.hpp> // glm::mat4
#include <glm/gtc/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale, glm::perspective
2015-10-07 19:53:27 +00:00
#include <glm/gtc/constants.hpp> // glm::pi
2015-05-01 14:07:48 +00:00
2017-08-15 20:04:24 +00:00
glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
2015-05-01 14:07:48 +00:00
{
2015-09-06 20:09:07 +00:00
glm::mat4 Projection = glm::perspective(glm::pi< float > () * 0.25f, 4.0f / 3.0f, 0.1f, 100.f);
2015-05-01 14:07:48 +00:00
glm::mat4 View = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate));
View = glm::rotate(View, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
View = glm::rotate(View, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
return Projection * View * Model;
}
```
2011-05-24 11:19:51 +00:00
2016-11-03 18:20:42 +00:00
## [Lastest release](https://github.com/g-truc/glm/releases/latest)
2015-05-01 14:07:48 +00:00
## Project Health
2015-05-01 19:39:36 +00:00
| Service | System | Compiler | Status |
| ------- | ------ | -------- | ------ |
2017-08-17 12:20:31 +00:00
| [Travis CI ](https://travis-ci.org/g-truc/glm )| MacOSX, Linux 64 bits | Clang 3.4, Clang 3.6, Clang 4.0, GCC 4.9, GCC 7.0 | [![Travis CI ](https://travis-ci.org/g-truc/glm.svg?branch=master )](https://travis-ci.org/g-truc/glm)
| [AppVeyor ](https://ci.appveyor.com/project/Groovounet/glm )| Windows 32 and 64 | Visual Studio 2013, Visual Studio 2015, Visual Studio 2017 | [![AppVeyor ](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true )](https://ci.appveyor.com/project/Groovounet/glm)
2015-05-01 14:07:48 +00:00
## Release notes
2018-06-01 16:01:35 +00:00
### [GLM 0.9.9.1](https://github.com/g-truc/glm/commits/master) - 2018-0X-XX
#### Features:
- Added bitfieldDeinterleave to GTC_bitfield
2018-06-18 10:40:00 +00:00
#### Fixes:
- Fixed build problems due to printf and std::clock_t #778
2018-06-18 12:25:14 +00:00
- Fixed int mod
2018-06-18 10:40:00 +00:00
2018-05-22 08:34:01 +00:00
### [GLM 0.9.9.0](https://github.com/g-truc/glm/releases/tag/0.9.9.0) - 2018-05-22
2016-11-03 18:09:15 +00:00
#### Features:
2016-10-16 14:40:49 +00:00
- Added RGBM encoding in GTC_packing #420
2016-11-20 20:50:12 +00:00
- Added GTX_color_encoding extension
2016-11-01 21:36:49 +00:00
- Added GTX_vec_swizzle, faster compile time swizzling then swizzle operator #558
2017-04-08 17:37:20 +00:00
- Added GTX_exterior_product with a vec2 cross implementation #621
2017-07-07 05:31:20 +00:00
- Added GTX_matrix_factorisation to factor matrices in various forms #654
2016-11-12 13:20:23 +00:00
- Added [GLM_ENABLE_EXPERIMENTAL ](manual.md#section7_4 ) to enable experimental features.
2017-06-24 10:12:00 +00:00
- Added packing functions for integer vectors #639
2017-06-24 10:16:51 +00:00
- Added conan packaging configuration #643 #641
2017-07-24 10:07:04 +00:00
- Added quatLookAt to GTX_quaternion #659
2017-08-20 16:42:48 +00:00
- Added fmin, fmax and fclamp to GTX_extended_min_max #372
2017-08-20 19:38:33 +00:00
- Added EXT_vector_relational: extend equal and notEqual to take an epsilon argument
2017-09-20 15:57:44 +00:00
- Added EXT_vector_relational: openBounded and closeBounded
2017-08-21 08:36:27 +00:00
- Added EXT_vec1: *vec1 types
2017-09-20 13:32:29 +00:00
- Added GTX_texture: levels function
2017-09-23 13:55:18 +00:00
- Added spearate functions to use both nagative one and zero near clip plans #680
2017-09-23 14:32:25 +00:00
- Added GLM_FORCE_SINGLE_ONLY to use GLM on platforms that don't support double #627
2018-05-07 13:39:25 +00:00
- Added GTX_easing for interpolation functions #761
2016-07-16 21:46:41 +00:00
2016-11-03 18:09:15 +00:00
#### Improvements:
2017-07-24 10:46:54 +00:00
- No more default initialization of vector, matrix and quaternion types
2016-11-20 22:39:22 +00:00
- Added lowp variant of GTC_color_space convertLinearToSRGB #419
2016-11-01 14:54:58 +00:00
- Replaced the manual by a markdown version #458
2017-08-17 14:24:32 +00:00
- Improved API documentation #668
2016-11-20 18:54:03 +00:00
- Optimized GTC_packing implementation
2016-11-20 22:39:22 +00:00
- Optimized GTC_noise functions
- Optimized GTC_color_space HSV to RGB conversions
2016-11-20 22:44:08 +00:00
- Optimised GTX_color_space_YCoCg YCoCgR conversions
2016-11-20 22:39:22 +00:00
- Optimized GTX_matrix_interpolation axisAngle function
2016-11-20 20:15:43 +00:00
- Added FAQ 12: Windows headers cause build errors... #557
2017-01-04 20:29:37 +00:00
- Removed GCC shadow warnings #595
2017-06-04 09:36:13 +00:00
- Added error for including of different versions of GLM #619
2017-07-07 06:56:12 +00:00
- Added GLM_FORCE_IGNORE_VERSION to ignore error caused by including different version of GLM #619
2017-07-24 10:01:44 +00:00
- Reduced warnings when using very strict compilation flags #646
- length() member functions are constexpr #657
2017-08-06 21:00:05 +00:00
- Added support of -Weverything with Clang #646
2017-08-07 01:35:21 +00:00
- Improved exponential funtion test coverage
2017-08-10 00:50:03 +00:00
- Enabled warnings as error with Clang unit tests
2018-05-08 10:31:05 +00:00
- Conan package is an external repository: https://github.com/bincrafters/conan-glm
- Clarify quat_cast documentation, applying on pure rotation matrices #759
2016-07-16 21:46:41 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-11-09 21:24:44 +00:00
- Removed doxygen references to GTC_half_float which was removed in 0.9.4
2016-11-20 21:24:32 +00:00
- Fixed glm::decompose #448
2016-11-24 23:33:45 +00:00
- Fixed intersectRayTriangle #6
2017-06-04 08:09:18 +00:00
- Fixed dual quaternion != operator #629
2017-06-04 09:42:05 +00:00
- Fixed usused variable warning in GTX_spline #618
2017-06-23 17:39:11 +00:00
- Fixed references to GLM_FORCE_RADIANS which was removed #642
2017-06-23 17:53:14 +00:00
- Fixed glm::fastInverseSqrt to use fast inverse square #640
2017-06-24 10:43:00 +00:00
- Fixed axisAngle NaN #638
2017-07-24 09:39:16 +00:00
- Fixed integer pow from GTX_integer with null exponent #658
2017-07-24 10:09:20 +00:00
- Fixed quat normalize build error #656
2017-07-24 10:20:58 +00:00
- Fixed Visual C++ 2017.2 warning regarding __has_feature definision #655
2017-08-06 21:00:05 +00:00
- Fixed documentation warnings
2017-08-06 23:28:42 +00:00
- Fixed GLM_HAS_OPENMP when OpenMP is not enabled
2017-08-20 14:53:50 +00:00
- Fixed Better follow GLSL min and max specification #372
2017-09-20 12:29:22 +00:00
- Fixed quaternion constructor from two vectors special cases #469
- Fixed glm::to_string on quaternions wrong components order #681
2017-11-22 16:36:31 +00:00
- Fixed acsch #698
2018-05-07 16:21:48 +00:00
- Fixed isnan on CUDA #727
2016-07-16 21:46:41 +00:00
2016-11-03 18:09:15 +00:00
#### Deprecation:
2016-12-02 00:14:36 +00:00
- Requires Visual Studio 2013, GCC 4.7, Clang 3.4, Cuda 7, ICC 2013 or a C++11 compiler
2016-07-16 21:46:41 +00:00
- Removed GLM_GTX_simd_vec4 extension
- Removed GLM_GTX_simd_mat4 extension
- Removed GLM_GTX_simd_quat extension
2016-09-01 23:53:38 +00:00
- Removed GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
- Removed GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
- Removed GLM_DEPTH_ZERO_TO_ONE, use GLM_FORCE_DEPTH_ZERO_TO_ONE instead
- Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead
2017-07-25 20:15:55 +00:00
- Removed GLM_FORCE_NO_CTOR_INIT
2017-07-25 20:50:31 +00:00
- Removed glm::uninitialize
2016-07-16 21:18:23 +00:00
2017-02-16 00:15:46 +00:00
---
2017-08-16 11:40:35 +00:00
### [GLM 0.9.8.5](https://github.com/g-truc/glm/releases/tag/0.9.8.5) - 2017-08-16
#### Features:
- Added Conan package support #647
2017-02-16 00:15:46 +00:00
#### Fixes:
2017-02-16 00:07:16 +00:00
- Fixed Clang version detection from source #608
2017-02-28 21:19:26 +00:00
- Fixed packF3x9_E1x5 exponent packing #614
2017-03-26 21:55:15 +00:00
- Fixed build error min and max specializations with integer #616
2017-08-16 11:40:35 +00:00
- Fixed simd_mat4 build error #652
2017-02-16 00:07:16 +00:00
2016-11-03 18:09:15 +00:00
---
2017-01-21 20:58:58 +00:00
### [GLM 0.9.8.4](https://github.com/g-truc/glm/releases/tag/0.9.8.4) - 2017-01-22
2016-11-24 00:22:09 +00:00
#### Fixes:
2016-11-20 19:59:54 +00:00
- Fixed GTC_packing test failing on GCC x86 due to denorms #212 #577
2016-11-24 00:20:49 +00:00
- Fixed POPCNT optimization build in Clang #512
2016-11-24 00:27:17 +00:00
- Fixed intersectRayPlane returns true in parallel case #578
2016-11-24 18:41:06 +00:00
- Fixed GCC 6.2 compiler warnings #580
2016-11-25 20:24:59 +00:00
- Fixed GTX_matrix_decompose decompose #582 #448
2016-12-01 22:05:43 +00:00
- Fixed GCC 4.5 and older build #566
2017-01-04 22:56:47 +00:00
- Fixed Visual C++ internal error when declaring a global vec type with siwzzle expression enabled #594
2017-01-21 20:57:10 +00:00
- Fixed GLM_FORCE_CXX11 with Clang and libstlc++ which wasn't using C++11 STL features. #604
2016-11-12 11:11:43 +00:00
2016-11-12 12:42:06 +00:00
---
2016-11-20 20:15:43 +00:00
### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12
#### Improvements:
2016-11-01 22:34:37 +00:00
- Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-11-01 22:10:06 +00:00
- Fixed Android build error with C++11 compiler but C++98 STL #284 #564
2016-11-01 22:44:03 +00:00
- Fixed GTX_transform2 shear* functions #403
2016-11-09 20:23:17 +00:00
- Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568
2016-11-09 20:39:09 +00:00
- Fixed bitCount with AVX on 32 bit builds #567
2016-11-12 10:46:21 +00:00
- Fixed CMake find_package with version specification #572 #573
2016-11-01 08:22:45 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01
#### Improvements:
2016-10-12 19:40:03 +00:00
- Added Visual C++ 15 detection
- Added Clang 4.0 detection
2016-10-16 12:51:49 +00:00
- Added warning messages when using GLM_FORCE_CXX** but the compiler
is known to not fully support the requested C++ version #555
2016-10-12 19:40:03 +00:00
- Refactored GLM_COMPILER_VC values
2016-11-01 08:07:04 +00:00
- Made quat, vec, mat type component length() static #565
2016-10-12 19:40:03 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-10-10 20:03:57 +00:00
- Fixed Visual C++ constexpr build error #555 , #556
2016-09-25 10:15:46 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.8.1](https://github.com/g-truc/glm/releases/tag/0.9.8.1) - 2016-09-25
#### Improvements:
2016-09-24 08:46:46 +00:00
- Optimized quaternion log function #554
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-09-11 15:21:18 +00:00
- Fixed GCC warning filtering, replaced -pedantic by -Wpedantic
2016-09-12 22:21:56 +00:00
- Fixed SIMD faceforward bug. #549
- Fixed GCC 4.8 with C++11 compilation option #550
2016-09-18 17:40:49 +00:00
- Fixed Visual Studio aligned type W4 warning #548
2016-09-18 19:56:32 +00:00
- Fixed packing/unpacking function fixed for 5_6_5 and 5_5_5_1 #552
2016-09-11 12:02:08 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.8.0](https://github.com/g-truc/glm/releases/tag/0.9.8.0) - 2016-09-11
#### Features:
2016-03-05 23:18:05 +00:00
- Added right and left handed projection and clip control support #447 #415 #119
2015-09-28 09:30:54 +00:00
- Added compNormalize and compScale functions to GTX_component_wise
2015-09-30 22:43:37 +00:00
- Added packF3x9_E1x5 and unpackF3x9_E1x5 to GTC_packing for RGB9E5 #416
2015-10-11 19:20:37 +00:00
- Added (un)packHalf to GTC_packing
- Added (un)packUnorm and (un)packSnorm to GTC_packing
2015-10-11 21:02:42 +00:00
- Added 16bit pack and unpack to GTC_packing
2015-10-11 23:03:01 +00:00
- Added 8bit pack and unpack to GTC_packing
2015-10-15 02:28:08 +00:00
- Added missing bvec* && and || operators
2016-03-10 20:53:08 +00:00
- Added iround and uround to GTC_integer, fast round on positive values
2016-05-04 19:07:57 +00:00
- Added raw SIMD API
2016-05-31 22:43:35 +00:00
- Added 'aligned' qualifiers
- Added GTC_type_aligned with aligned *vec* types
2016-07-14 13:20:44 +00:00
- Added GTC_functions extension
2016-07-16 23:02:30 +00:00
- Added quaternion version of isnan and isinf #521
2016-08-07 10:56:49 +00:00
- Added lowestBitValue to GTX_bit #536
2016-09-01 21:32:12 +00:00
- Added GLM_FORCE_UNRESTRICTED_GENTYPE allowing non basic genType #543
2015-09-25 01:16:06 +00:00
2016-11-03 18:09:15 +00:00
#### Improvements:
2016-05-05 11:05:15 +00:00
- Improved SIMD and swizzle operators interactions with GCC and Clang #474
2015-10-07 19:41:05 +00:00
- Improved GTC_random linearRand documentation
- Improved GTC_reciprocal documentation
2016-03-05 22:01:01 +00:00
- Improved GLM_FORCE_EXPLICIT_CTOR coverage #481
2016-05-04 16:04:44 +00:00
- Improved OpenMP support detection for Clang, GCC, ICC and VC
2016-08-06 17:28:16 +00:00
- Improved GTX_wrap for SIMD friendliness
2016-05-05 11:05:15 +00:00
- Added constexpr for *vec* , *mat* , *quat* and *dual_quat* types #493
2016-05-23 21:35:34 +00:00
- Added NEON instruction set detection
- Added MIPS CPUs detection
- Added PowerPC CPUs detection
2016-05-22 16:04:32 +00:00
- Use Cuda built-in function for abs function implementation with Cuda compiler
2016-07-15 22:54:05 +00:00
- Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG
2016-07-16 20:25:09 +00:00
- No more warnings for use of long long
2016-09-01 22:30:37 +00:00
- Added more information to build messages
2015-10-07 19:35:28 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2015-10-07 19:49:33 +00:00
- Fixed GTX_extended_min_max filename typo #386
2015-10-20 02:11:53 +00:00
- Fixed intersectRayTriangle to not do any unintentional backface culling
2016-03-05 21:25:17 +00:00
- Fixed long long warnings when using C++98 on GCC and Clang #482
2016-05-24 11:29:18 +00:00
- Fixed sign with signed integer function on non-x86 architecture
2016-06-19 22:25:34 +00:00
- Fixed strict aliasing warnings #473
2016-06-04 21:48:05 +00:00
- Fixed missing vec1 overload to length2 and distance2 functions #431
2016-07-16 21:54:11 +00:00
- Fixed GLM test '/fp:fast' and '/Za' command-line options are incompatible
2016-08-17 22:58:58 +00:00
- Fixed quaterion to mat3 cast function mat3_cast from GTC_quaternion #542
2016-09-11 11:26:22 +00:00
- Fixed GTX_io for Cuda #547 #546
2015-10-07 19:49:33 +00:00
2016-11-03 18:09:15 +00:00
#### Deprecation:
2016-03-13 11:56:26 +00:00
- Removed GLM_FORCE_SIZE_FUNC define
2016-05-28 17:34:46 +00:00
- Deprecated GLM_GTX_simd_vec4 extension
- Deprecated GLM_GTX_simd_mat4 extension
- Deprecated GLM_GTX_simd_quat extension
2016-09-01 21:32:12 +00:00
- Deprecated GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
2016-09-01 22:30:37 +00:00
- Deprecated GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
2016-03-13 11:56:26 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.6](https://github.com/g-truc/glm/releases/tag/0.9.7.6) - 2016-07-16
#### Improvements:
2016-05-30 18:28:42 +00:00
- Added pkg-config file #509
2016-07-15 21:49:20 +00:00
- Updated list of compiler versions detected
2016-07-15 22:28:32 +00:00
- Improved C++ 11 STL detection #523
2016-05-30 18:28:42 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-06-04 21:08:08 +00:00
- Fixed STL for C++11 detection on ICC #510
2016-06-04 21:48:05 +00:00
- Fixed missing vec1 overload to length2 and distance2 functions #431
2016-03-05 21:25:17 +00:00
- Fixed long long warnings when using C++98 on GCC and Clang #482
2016-07-15 20:40:00 +00:00
- Fixed scalar reciprocal functions (GTC_reciprocal) #520
2016-06-04 21:08:08 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
#### Improvements:
2016-05-23 17:25:07 +00:00
- Added Visual C++ Clang toolset detection
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-04-24 12:56:44 +00:00
- Fixed uaddCarry warning #497
2016-04-29 15:37:27 +00:00
- Fixed roundPowerOfTwo and floorPowerOfTwo #503
2016-04-30 14:23:55 +00:00
- Fixed Visual C++ SIMD instruction set automatic detection in 64 bits
2016-05-18 20:46:58 +00:00
- Fixed to_string when used with GLM_FORCE_INLINE #506
2016-05-18 20:52:47 +00:00
- Fixed GLM_FORCE_INLINE with binary vec4 operators
2016-03-05 21:25:17 +00:00
- Fixed GTX_extended_min_max filename typo #386
- Fixed intersectRayTriangle to not do any unintentional backface culling
2016-04-24 12:56:44 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.4](https://github.com/g-truc/glm/releases/tag/0.9.7.4) - 2016-03-19
#### Fixes:
2016-02-21 18:40:24 +00:00
- Fixed asinh and atanh warning with C++98 STL #484
2016-03-05 22:36:18 +00:00
- Fixed polar coordinates function latitude #485
2016-03-05 22:20:12 +00:00
- Fixed outerProduct defintions and operator signatures for mat2x4 and vec4 #475
2016-03-05 22:49:07 +00:00
- Fixed eulerAngles precision error, returns NaN #451
2016-03-12 19:35:06 +00:00
- Fixed undefined reference errors #489
2016-03-19 11:28:18 +00:00
- Fixed missing GLM_PLATFORM_CYGWIN declaration #495
2016-03-19 11:37:39 +00:00
- Fixed various undefined reference errors #490
2016-02-21 17:59:26 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.3](https://github.com/g-truc/glm/releases/tag/0.9.7.3) - 2016-02-21
#### Improvements:
2016-02-15 20:11:55 +00:00
- Added AVX512 detection
2016-11-03 18:09:15 +00:00
#### Fixes:
2016-02-09 00:18:24 +00:00
- Fixed CMake policy warning
2016-02-21 13:29:07 +00:00
- Fixed GCC 6.0 detection #477
- Fixed Clang build on Windows #479
- Fixed 64 bits constants warnings on GCC #463
2016-02-09 00:18:24 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
#### Fixes:
2015-09-28 09:19:38 +00:00
- Fixed GTC_round floorMultiple/ceilMultiple #412
2015-09-28 21:47:40 +00:00
- Fixed GTC_packing unpackUnorm3x10_1x2 #414
2015-10-01 20:20:30 +00:00
- Fixed GTC_matrix_inverse affineInverse #192
2016-01-03 15:03:30 +00:00
- Fixed ICC on Linux build errors #449
2015-12-20 00:22:33 +00:00
- Fixed ldexp and frexp compilation errors
2016-01-03 17:30:08 +00:00
- Fixed "Declaration shadows a field" warning #468
- Fixed 'GLM_COMPILER_VC2005 is not defined' warning #468
- Fixed various 'X is not defined' warnings #468
2015-10-17 02:11:52 +00:00
- Fixed missing unary + operator #435
2015-10-21 22:30:27 +00:00
- Fixed Cygwin build errors when using C++11 #405
2015-09-28 09:19:38 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.1](https://github.com/g-truc/glm/releases/tag/0.9.7.1) - 2015-09-07
#### Improvements:
2015-08-31 20:14:45 +00:00
- Improved constexpr for constant functions coverage #198
2015-08-31 20:34:14 +00:00
- Added to_string for quat and dual_quat in GTX_string_cast #375
2015-09-06 20:22:20 +00:00
- Improved overall execution time of unit tests #396
2015-08-31 20:14:45 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2015-08-31 16:55:45 +00:00
- Fixed strict alignment warnings #235 #370
2015-08-31 16:01:51 +00:00
- Fixed link errors on compilers not supported default function #377
2015-08-31 16:13:46 +00:00
- Fixed compilation warnings in vec4
2015-08-31 19:56:34 +00:00
- Fixed non-identity quaternions for equal vectors #234
2015-09-06 19:36:05 +00:00
- Fixed excessive GTX_fast_trigonometry execution time #396
2015-09-06 19:37:50 +00:00
- Fixed Visual Studio 2015 'hides class member' warnings #394
2015-09-06 20:06:26 +00:00
- Fixed builtin bitscan never being used #392
2015-09-06 20:30:17 +00:00
- Removed unused func_noise.* files #398
2015-08-31 16:01:51 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.7.0](https://github.com/g-truc/glm/releases/tag/0.9.7.0) - 2015-08-02
#### Features:
2015-08-01 19:55:28 +00:00
- Added GTC_color_space: convertLinearToSRGB and convertSRGBToLinear functions
2015-02-15 11:38:23 +00:00
- Added 'fmod' overload to GTX_common with tests #308
2015-02-22 20:28:44 +00:00
- Left handed perspective and lookAt functions #314
2015-03-15 20:36:56 +00:00
- Added functions eulerAngleXYZ and extractEulerAngleXYZ #311
2015-07-24 23:41:33 +00:00
- Added < glm / gtx / hash . hpp > to perform std::hash on GLM types #320 #367
2015-06-27 17:36:03 +00:00
- Added < glm / gtx / wrap . hpp > for texcoord wrapping
2015-07-18 22:25:33 +00:00
- Added static components and precision members to all vector and quat types #350
2015-07-19 14:32:36 +00:00
- Added .gitignore #349
2015-07-25 19:31:51 +00:00
- Added support of defaulted functions to GLM types, to use them in unions #366
2015-02-10 22:49:49 +00:00
2016-11-03 18:09:15 +00:00
#### Improvements:
2015-02-09 21:19:36 +00:00
- Changed usage of __has_include to support Intel compiler #307
2015-02-13 17:23:14 +00:00
- Specialized integer implementation of YCoCg-R #310
2015-03-15 20:50:46 +00:00
- Don't show status message in 'FindGLM' if 'QUIET' option is set. #317
2015-05-01 21:37:48 +00:00
- Added master branch continuous integration service on Linux 64 #332
2015-05-01 22:08:47 +00:00
- Clarified manual regarding angle unit in GLM, added FAQ 11 #326
2015-07-19 00:36:53 +00:00
- Updated list of compiler versions
2015-01-09 18:52:47 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2015-08-01 19:55:28 +00:00
- Fixed default precision for quat and dual_quat type #312
2015-03-15 20:31:51 +00:00
- Fixed (u)int64 MSB/LSB handling on BE archs #306
2015-03-15 20:45:57 +00:00
- Fixed multi-line comment warning in g++. #315
2015-05-01 18:01:07 +00:00
- Fixed specifier removal by 'std::make_pair< >' #333
2015-05-01 21:46:09 +00:00
- Fixed perspective fovy argument documentation #327
2015-05-01 22:26:12 +00:00
- Removed -m64 causing build issues on Linux 32 #331
2015-07-19 14:32:36 +00:00
- Fixed isfinite with C++98 compilers #343
2015-07-19 15:38:41 +00:00
- Fixed Intel compiler build error on Linux #354
2015-07-19 15:59:21 +00:00
- Fixed use of libstdc++ with Clang #351
2015-07-24 00:11:55 +00:00
- Fixed quaternion pow #346
2015-08-01 09:35:57 +00:00
- Fixed decompose warnings #373
2015-08-01 19:40:36 +00:00
- Fixed matrix conversions #371
2015-03-15 20:31:51 +00:00
2016-11-03 18:09:15 +00:00
#### Deprecation:
2015-02-15 11:38:23 +00:00
- Removed integer specification for 'mod' in GTC_integer #308
2015-07-25 21:23:03 +00:00
- Removed GTX_multiple, replaced by GTC_round
2015-02-15 11:38:23 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.6.3](https://github.com/g-truc/glm/releases/tag/0.9.6.3) - 2015-02-15
2015-02-15 14:33:14 +00:00
- Fixed Android doesn't have C++ 11 STL #284
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.6.2](https://github.com/g-truc/glm/releases/tag/0.9.6.2) - 2015-02-15
#### Features:
2014-12-19 20:05:05 +00:00
- Added display of GLM version with other GLM_MESSAGES
2014-12-20 16:16:52 +00:00
- Added ARM instruction set detection
2014-12-19 20:05:05 +00:00
2016-11-03 18:09:15 +00:00
#### Improvements:
2015-01-08 21:53:21 +00:00
- Removed assert for perspective with zFar < zNear #298
2015-01-09 00:37:16 +00:00
- Added Visual Studio natvis support for vec1, quat and dualqual types
2015-01-10 12:45:41 +00:00
- Cleaned up C++11 feature detections
2015-02-09 23:05:34 +00:00
- Clarify GLM licensing
2014-12-19 20:05:05 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2014-12-19 22:54:25 +00:00
- Fixed faceforward build #289
2014-12-30 13:48:25 +00:00
- Fixed conflict with Xlib #define True 1 #293
2015-01-08 21:53:21 +00:00
- Fixed decompose function VS2010 templating issues #294
2015-01-08 22:42:09 +00:00
- Fixed mat4x3 = mat2x3 * mat4x2 operator #297
2015-01-09 00:37:16 +00:00
- Fixed warnings in F2x11_1x10 packing function in GTC_packing #295
- Fixed Visual Studio natvis support for vec4 #288
2015-01-09 22:14:10 +00:00
- Fixed GTC_packing *pack*norm*x* build and added tests #292
2015-01-25 20:06:07 +00:00
- Disabled GTX_scalar_multiplication for GCC, failing to build tests #242
- Fixed Visual C++ 2015 constexpr errors: Disabled only partial support
2015-02-10 00:00:25 +00:00
- Fixed functions not inlined with Clang #302
2015-02-14 00:11:10 +00:00
- Fixed memory corruption (undefined behaviour) #303
2014-12-19 22:54:25 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.6.1](https://github.com/g-truc/glm/releases/tag/0.9.6.1) - 2014-12-10
#### Features:
2014-12-10 00:55:26 +00:00
- Added GLM_LANG_CXX14_FLAG and GLM_LANG_CXX1Z_FLAG language feature flags
- Added C++14 detection
2016-11-03 18:09:15 +00:00
#### Improvements:
2014-12-10 01:27:13 +00:00
- Clean up GLM_MESSAGES compilation log to report only detected capabilities
2016-11-03 18:09:15 +00:00
#### Fixes:
2014-12-02 19:48:26 +00:00
- Fixed scalar uaddCarry build error with Cuda #276
2014-12-03 13:55:47 +00:00
- Fixed C++11 explicit conversion operators detection #282
2016-04-02 23:50:25 +00:00
- Fixed missing explicit conversion when using integer log2 with *vec1 types
2014-12-19 20:05:05 +00:00
- Fixed 64 bits integer GTX_string_cast to_string on VC 32 bit compiler
2014-12-08 22:21:59 +00:00
- Fixed Android build issue, STL C++11 is not supported by the NDK #284
2014-12-08 22:49:14 +00:00
- Fixed unsupported _BitScanForward64 and _BitScanReverse64 in VC10
- Fixed Visual C++ 32 bit build #283
2014-12-10 01:27:13 +00:00
- Fixed GLM_FORCE_SIZE_FUNC pragma message
2014-12-10 01:52:30 +00:00
- Fixed C++98 only build
2014-12-10 08:39:23 +00:00
- Fixed conflict between GTX_compatibility and GTC_quaternion #286
2014-12-10 20:29:41 +00:00
- Fixed C++ language restriction using GLM_FORCE_CXX**
2014-12-01 19:27:56 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.6.0](https://github.com/g-truc/glm/releases/tag/0.9.6.0) - 2014-11-30
#### Features:
2014-11-03 13:41:06 +00:00
- Exposed template vector and matrix types in 'glm' namespace #239 , #244
2014-10-05 11:26:02 +00:00
- Added GTX_scalar_multiplication for C++ 11 compiler only #242
2014-10-05 12:42:17 +00:00
- Added GTX_range for C++ 11 compiler only #240
2014-11-02 19:51:26 +00:00
- Added closestPointOnLine function for tvec2 to GTX_closest_point #238
2014-11-03 13:41:06 +00:00
- Added GTC_vec1 extension, *vec1 support to *vec* types
2014-10-12 00:05:27 +00:00
- Updated GTX_associated_min_max with vec1 support
2014-11-03 13:41:06 +00:00
- Added support of precision and integers to linearRand #230
- Added Integer types support to GTX_string_cast #249
- Added vec3 slerp #237
- Added GTX_common with isdenomal #223
- Added GLM_FORCE_SIZE_FUNC to replace .length() by .size() #245
- Added GLM_FORCE_NO_CTOR_INIT
- Added 'uninitialize' to explicitly not initialize a GLM type
- Added GTC_bitfield extension, promoted GTX_bit
2014-11-17 22:56:41 +00:00
- Added GTC_integer extension, promoted GTX_bit and GTX_integer
2014-11-03 23:06:20 +00:00
- Added GTC_round extension, promoted GTX_bit
2014-11-17 21:59:10 +00:00
- Added GLM_FORCE_EXPLICIT_CTOR to require explicit type conversions #269
2014-11-23 19:58:09 +00:00
- Added GTX_type_aligned for aligned vector, matrix and quaternion types
2014-11-03 13:41:06 +00:00
2016-11-03 18:09:15 +00:00
#### Improvements:
2014-11-03 13:41:06 +00:00
- Rely on C++11 to implement isinf and isnan
- Removed GLM_FORCE_CUDA, Cuda is implicitly detected
- Separated Apple Clang and LLVM compiler detection
- Used pragma once
2014-10-18 11:20:05 +00:00
- Undetected C++ compiler automatically compile with GLM_FORCE_CXX98 and
GLM_FORCE_PURE
2014-10-24 19:22:24 +00:00
- Added not function (from GLSL specification) on VC12
2014-11-02 22:48:02 +00:00
- Optimized bitfieldReverse and bitCount functions
2014-11-22 19:14:48 +00:00
- Optimized findLSB and findMSB functions.
2014-11-03 13:41:06 +00:00
- Optimized matrix-vector multiple performance with Cuda #257 , #258
- Reduced integer type redifinitions #233
2014-11-14 23:05:52 +00:00
- Rewrited of GTX_fast_trigonometry #264 #265
- Made types trivially copyable #263
2014-11-14 23:49:12 +00:00
- Removed < iostream > in GLM tests
2014-11-21 21:13:04 +00:00
- Used std features within GLM without redeclaring
2014-11-22 19:14:48 +00:00
- Optimized cot function #272
- Optimized sign function #272
2014-11-24 20:45:47 +00:00
- Added explicit cast from quat to mat3 and mat4 #275
2014-11-03 13:41:06 +00:00
2016-11-03 18:09:15 +00:00
#### Fixes:
2014-11-03 13:41:06 +00:00
- Fixed std::nextafter not supported with C++11 on Android #217
- Fixed missing value_type for dual quaternion
- Fixed return type of dual quaternion length
- Fixed infinite loop in isfinite function with GCC #221
- Fixed Visual Studio 14 compiler warnings
- Fixed implicit conversion from another tvec2 type to another tvec2 #241
- Fixed lack of consistency of quat and dualquat constructors
2014-11-15 20:32:56 +00:00
- Fixed uaddCarray #253
2014-11-19 00:14:17 +00:00
- Fixed float comparison warnings #270
2014-06-28 18:56:12 +00:00
2016-11-03 18:09:15 +00:00
#### Deprecation:
2016-12-02 00:14:36 +00:00
- Requires Visual Studio 2010, GCC 4.2, Apple Clang 4.0, LLVM 3.0, Cuda 4, ICC 2013 or a C++98 compiler
2014-11-14 23:05:52 +00:00
- Removed degrees for function parameters
- Removed GLM_FORCE_RADIANS, active by default
- Removed VC 2005 / 8 and 2008 / 9 support
2014-11-27 22:42:35 +00:00
- Removed GCC 3.4 to 4.3 support
2014-11-14 23:05:52 +00:00
- Removed LLVM GCC support
2014-11-27 22:42:35 +00:00
- Removed LLVM 2.6 to 3.1 support
- Removed CUDA 3.0 to 3.2 support
2014-11-14 23:05:52 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.5.4 - 2014-06-21](https://github.com/g-truc/glm/releases/tag/0.9.5.4)
2014-05-04 14:43:57 +00:00
- Fixed non-utf8 character #196
2014-05-04 14:55:15 +00:00
- Added FindGLM install for CMake #189
2014-05-04 15:29:36 +00:00
- Fixed GTX_color_space - saturation #195
2014-05-05 21:08:49 +00:00
- Fixed glm::isinf and glm::isnan for with Android NDK 9d #191
2014-05-23 20:23:27 +00:00
- Fixed builtin GLM_ARCH_SSE4 #204
2014-05-23 21:09:32 +00:00
- Optimized Quaternion vector rotation #205
2014-06-11 14:39:46 +00:00
- Fixed missing doxygen @endcond tag #211
2014-06-11 14:56:16 +00:00
- Fixed instruction set detection with Clang #158
2014-06-11 20:47:37 +00:00
- Fixed orientate3 function #207
2014-06-12 17:30:53 +00:00
- Fixed lerp when cosTheta is close to 1 in quaternion slerp #210
2014-06-19 22:21:53 +00:00
- Added GTX_io for io with < iostream > #144
2014-06-19 23:09:50 +00:00
- Fixed fastDistance ambiguity #215
2014-06-20 20:13:06 +00:00
- Fixed tweakedInfinitePerspective #208 and added user-defined epsilon to
tweakedInfinitePerspective
2014-06-20 20:17:04 +00:00
- Fixed std::copy and std::vector with GLM types #214
2014-06-21 13:07:03 +00:00
- Fixed strict aliasing issues #212 , #152
- Fixed std::nextafter not supported with C++11 on Android #213
2014-06-21 13:38:49 +00:00
- Fixed corner cases in exp and log functions for quaternions #199
2014-05-04 14:34:46 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.5.3 - 2014-04-02
2014-02-09 15:25:36 +00:00
- Added instruction set auto detection with Visual C++ using _M_IX86_FP - /arch
2014-02-21 01:15:35 +00:00
compiler argument
2014-02-19 01:09:43 +00:00
- Fixed GTX_raw_data code dependency
2014-02-21 01:15:35 +00:00
- Fixed GCC instruction set detection
- Added GLM_GTX_matrix_transform_2d extension (#178, #176 )
2014-03-16 01:39:36 +00:00
- Fixed CUDA issues (#169, #168 , #183 , #182 )
- Added support for all extensions but GTX_string_cast to CUDA
2014-03-16 02:08:56 +00:00
- Fixed strict aliasing warnings in GCC 4.8.1 / Android NDK 9c (#152)
2014-03-16 10:53:58 +00:00
- Fixed missing bitfieldInterleave definisions
2014-03-16 11:33:00 +00:00
- Fixed usubBorrow (#171)
2014-03-31 21:50:15 +00:00
- Fixed eulerAngle*** not consistent for right-handed coordinate system (#173)
- Added full tests for eulerAngle*** functions (#173)
2014-03-31 23:20:03 +00:00
- Added workaround for a CUDA compiler bug (#186, #185 )
2014-02-09 15:25:36 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.5.2 - 2014-02-08
2014-02-08 11:40:34 +00:00
- Fixed initializer list ambiguity (#159, #160 )
2014-01-12 21:48:57 +00:00
- Fixed warnings with the Android NDK 9c
2014-01-13 22:41:11 +00:00
- Fixed non power of two matrix products
2014-01-18 02:14:00 +00:00
- Fixed mix function link error
2014-01-14 13:07:09 +00:00
- Fixed SSE code included in GLM tests on "pure" platforms
2014-02-08 12:34:40 +00:00
- Fixed undefined reference to fastInverseSqrt (#161)
2014-02-08 12:43:32 +00:00
- Fixed GLM_FORCE_RADIANS with < glm / ext . hpp > build error (#165)
2014-02-08 12:46:53 +00:00
- Fix dot product clamp range for vector angle functions. (#163)
2014-02-08 13:10:00 +00:00
- Tentative fix for strict aliasing warning in GCC 4.8.1 / Android NDK 9c (#152)
2014-02-08 13:16:23 +00:00
- Fixed GLM_GTC_constants description brief (#162)
2014-01-11 22:51:12 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.5.1 - 2014-01-11
2013-12-25 23:32:09 +00:00
- Fixed angle and orientedAngle that sometimes return NaN values (#145)
2013-12-26 18:15:48 +00:00
- Deprecated degrees for function parameters and display a message
2013-12-26 23:49:53 +00:00
- Added possible static_cast conversion of GLM types (#72)
2013-12-27 18:23:44 +00:00
- Fixed error 'inverse' is not a member of 'glm' from glm::unProject (#146)
2014-01-04 12:42:49 +00:00
- Fixed mismatch between some declarations and definitions
2014-01-04 15:34:11 +00:00
- Fixed inverse link error when using namespace glm; (#147)
2014-01-11 15:44:15 +00:00
- Optimized matrix inverse and division code (#149)
2014-01-11 18:45:40 +00:00
- Added intersectRayPlane function (#153)
2014-01-11 21:35:19 +00:00
- Fixed outerProduct return type (#155)
2013-12-25 23:32:09 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.5.0 - 2013-12-25
2013-03-31 01:35:10 +00:00
- Added forward declarations (glm/fwd.hpp) for faster compilations
2013-12-24 05:19:45 +00:00
- Added per feature headers
2013-12-25 22:21:46 +00:00
- Minimized GLM internal dependencies
2013-01-31 23:45:24 +00:00
- Improved Intel Compiler detection
2013-02-01 22:55:25 +00:00
- Added bitfieldInterleave and _mm_bit_interleave_si128 functions
2013-02-04 18:04:32 +00:00
- Added GTX_scalar_relational
2013-02-20 15:10:35 +00:00
- Added GTX_dual_quaternion
2013-02-22 00:08:33 +00:00
- Added rotation function to GTX_quaternion (#22)
2013-04-17 09:16:54 +00:00
- Added precision variation of each type
- Added quaternion comparison functions
2013-04-19 19:30:52 +00:00
- Fixed GTX_multiple for negative value
2013-04-19 19:53:31 +00:00
- Removed GTX_ocl_type extension
2013-05-08 19:52:21 +00:00
- Fixed post increment and decrement operators
2013-05-12 13:36:29 +00:00
- Fixed perspective with zNear == 0 (#71)
2013-08-27 22:13:02 +00:00
- Removed l-value swizzle operators
2013-12-25 22:21:46 +00:00
- Cleaned up compiler detection code for unsupported compilers
- Replaced C cast by C++ casts
2013-09-07 22:25:26 +00:00
- Fixed .length() that should return a int and not a size_t
2013-12-24 05:43:25 +00:00
- Added GLM_FORCE_SIZE_T_LENGTH and glm::length_t
2013-09-08 01:46:49 +00:00
- Removed unnecessary conversions
2013-09-08 15:56:18 +00:00
- Optimized packing and unpacking functions
2013-09-15 02:46:25 +00:00
- Removed the normalization of the up argument of lookAt function (#114)
2013-09-15 11:45:51 +00:00
- Added low precision specializations of inversesqrt
2013-09-16 23:16:00 +00:00
- Fixed ldexp and frexp implementations
2013-09-16 01:03:49 +00:00
- Increased assert coverage
- Increased static_assert coverage
- Replaced GLM traits by STL traits when possible
- Allowed including individual core feature
2013-09-16 23:16:00 +00:00
- Increased unit tests completness
2013-10-09 23:14:39 +00:00
- Added creating of a quaternion from two vectors
2013-09-29 17:44:59 +00:00
- Added C++11 initializer lists
2013-10-09 22:51:29 +00:00
- Fixed umulExtended and imulExtended implementations for vector types (#76)
2013-10-09 23:29:18 +00:00
- Fixed CUDA coverage for GTC extensions
2013-12-16 22:59:20 +00:00
- Added GTX_io extension
2013-12-24 05:57:21 +00:00
- Improved GLM messages enabled when defining GLM_MESSAGES
2013-12-25 22:21:46 +00:00
- Hidden matrix _inverse function implementation detail into private section
2013-05-28 01:14:17 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.4.6](https://github.com/g-truc/glm/releases/tag/0.9.4.6) - 2013-09-20
2013-08-18 19:07:47 +00:00
- Fixed detection to select the last known compiler if newer version #106
2013-08-18 19:33:13 +00:00
- Fixed is_int and is_uint code duplication with GCC and C++11 #107
2013-08-20 21:07:04 +00:00
- Fixed test suite build while using Clang in C++11 mode
- Added c++1y mode support in CMake test suite
- Removed ms extension mode to CMake when no using Visual C++
- Added pedantic mode to CMake test suite for Clang and GCC
2013-09-17 21:02:04 +00:00
- Added use of GCC frontend on Unix for ICC and Visual C++ fronted on Windows
2013-08-20 21:07:04 +00:00
for ICC
2013-08-20 21:25:38 +00:00
- Added compilation errors for unsupported compiler versions
2013-09-08 13:23:13 +00:00
- Fixed glm::orientation with GLM_FORCE_RADIANS defined #112
2013-09-17 21:02:04 +00:00
- Fixed const ref issue on assignment operator taking a scalar parameter #116
2013-09-20 12:04:35 +00:00
- Fixed glm::eulerAngleY implementation #117
2013-08-18 17:53:03 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.5 - 2013-08-12
2013-08-12 21:18:28 +00:00
- Fixed CUDA support
- Fixed inclusion of intrinsics in "pure" mode #92
2013-06-13 16:50:27 +00:00
- Fixed language detection on GCC when the C++0x mode isn't enabled #95
2013-07-14 18:24:40 +00:00
- Fixed issue #97: register is deprecated in C++11
2013-07-15 08:18:32 +00:00
- Fixed issue #96: CUDA issues
- Added Windows CE detection #92
2013-08-12 20:26:23 +00:00
- Added missing value_ptr for quaternions #99
2013-06-13 16:41:39 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.4 - 2013-05-29
2013-05-28 00:17:27 +00:00
- Fixed slerp when costheta is close to 1 #65
- Fixed mat4x2 value_type constructor #70
2013-05-16 13:49:54 +00:00
- Fixed glm.natvis for Visual C++ 12 #82
2013-05-28 00:17:27 +00:00
- Added assert in inversesqrt to detect division by zero #61
- Fixed missing swizzle operators #86
- Fixed CUDA warnings #86
- Fixed GLM natvis for VC11 #82
- Fixed GLM_GTX_multiple with negative values #79
2013-05-28 01:48:41 +00:00
- Fixed glm::perspective when zNear is zero #71
2013-03-27 01:33:59 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.3 - 2013-03-20
2013-02-20 15:08:01 +00:00
- Detected qualifier for Clang
2013-02-21 20:58:37 +00:00
- Fixed C++11 mode for GCC, couldn't be enabled without MS extensions
2013-02-21 22:24:00 +00:00
- Fixed squad, intermediate and exp quaternion functions
2013-02-22 09:48:47 +00:00
- Fixed GTX_polar_coordinates euclidean function, takes a vec2 instead of a vec3
2013-02-22 14:28:33 +00:00
- Clarify the license applying on the manual
- Added a docx copy of the manual
2013-03-16 00:34:37 +00:00
- Fixed GLM_GTX_matrix_interpolation
- Fixed isnan and isinf on Android with Clang
2013-03-17 13:03:37 +00:00
- Autodetected C++ version using __cplusplus value
- Fixed mix for bool and bvec* third parameter
2013-01-31 23:45:24 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.2 - 2013-02-14
2013-01-22 23:55:09 +00:00
- Fixed compAdd from GTX_component_wise
2013-01-07 23:37:59 +00:00
- Fixed SIMD support for Intel compiler on Windows
2013-01-07 23:50:21 +00:00
- Fixed isnan and isinf for CUDA compiler
- Fixed GLM_FORCE_RADIANS on glm::perspective
2013-01-22 23:55:09 +00:00
- Fixed GCC warnings
2016-02-16 21:40:43 +00:00
- Fixed packDouble2x32 on Xcode
2013-01-23 01:27:59 +00:00
- Fixed mix for vec4 SSE implementation
- Fixed 0x2013 dash character in comments that cause issue in Windows
Japanese mode
2013-02-13 23:55:22 +00:00
- Fixed documentation warnings
2013-02-14 00:08:24 +00:00
- Fixed CUDA warnings
2013-01-22 23:55:09 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.1 - 2012-12-22
2012-12-16 21:05:23 +00:00
- Improved half support: -0.0 case and implicit conversions
- Fixed Intel Composer Compiler support on Linux
2012-12-20 23:18:34 +00:00
- Fixed interaction between quaternion and euler angles
2012-12-16 21:05:23 +00:00
- Fixed GTC_constants build
- Fixed GTX_multiple
2012-12-20 17:13:04 +00:00
- Fixed quat slerp using mix function when cosTheta close to 1
2012-12-20 23:18:34 +00:00
- Improved fvec4SIMD and fmat4x4SIMD implementations
- Fixed assert messages
2012-12-21 23:32:07 +00:00
- Added slerp and lerp quaternion functions and tests
2012-12-16 21:05:23 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.4.0 - 2012-11-18
2012-11-05 18:39:22 +00:00
- Added Intel Composer Compiler support
2012-09-12 22:45:20 +00:00
- Promoted GTC_espilon extension
- Promoted GTC_ulp extension
- Removed GLM website from the source repository
2012-09-19 13:34:23 +00:00
- Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
2012-10-13 20:47:49 +00:00
- Fixed detection of Clang and LLVM GCC on MacOS X
2012-10-18 10:13:21 +00:00
- Added debugger visualizers for Visual C++ 2012
2016-12-02 00:14:36 +00:00
- Requires Visual Studio 2005, GCC 4.2, Clang 2.6, Cuda 3, ICC 2013 or a C++98 compiler
2012-09-12 22:45:20 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.3.4](https://github.com/g-truc/glm/releases/tag/0.9.3.4) - 2012-06-30
2012-06-03 01:17:36 +00:00
- Added SSE4 and AVX2 detection.
2012-06-28 18:15:57 +00:00
- Removed VIRTREV_xstream and the incompatibility generated with GCC
- Fixed C++11 compiler option for GCC
- Removed MS language extension option for GCC (not fonctionnal)
2012-06-28 18:40:42 +00:00
- Fixed bitfieldExtract for vector types
2012-06-30 00:05:45 +00:00
- Fixed warnings
- Fixed SSE includes
2012-06-03 01:17:36 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.3 - 2012-05-10
2012-05-02 10:28:34 +00:00
- Fixed isinf and isnan
2012-04-14 17:19:28 +00:00
- Improved compatibility with Intel compiler
- Added CMake test build options: SIMD, C++11, fast math and MS land ext
- Fixed SIMD mat4 test on GCC
2012-05-09 22:59:42 +00:00
- Fixed perspectiveFov implementation
- Fixed matrixCompMult for none-square matrices
2012-05-09 23:14:20 +00:00
- Fixed namespace issue on stream operators
- Fixed various warnings
2012-05-09 22:59:42 +00:00
- Added VC11 support
2012-04-14 17:19:28 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.2 - 2012-03-15
2012-03-17 00:04:21 +00:00
- Fixed doxygen documentation
- Fixed Clang version detection
- Fixed simd mat4 /= operator
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.1 - 2012-01-25
2012-01-25 12:56:50 +00:00
- Fixed platform detection
- Fixed warnings
2012-01-25 13:01:21 +00:00
- Removed detail code from Doxygen doc
2012-01-25 12:56:50 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.0 - 2012-01-09
2012-01-03 16:22:37 +00:00
- Added CPP Check project
- Fixed conflict with Windows headers
- Fixed isinf implementation
- Fixed Boost conflict
2012-01-09 00:26:47 +00:00
- Fixed warnings
2012-01-03 16:22:37 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.B - 2011-12-12
2011-11-22 18:34:09 +00:00
- Added support for Chrone Native Client
- Added epsilon constant
- Removed value_size function from vector types
2011-12-06 12:22:43 +00:00
- Fixed roundEven on GCC
2011-12-12 13:49:32 +00:00
- Improved API documentation
2011-11-14 11:55:03 +00:00
- Fixed modf implementation
2011-11-14 12:26:20 +00:00
- Fixed step function accuracy
2011-11-22 18:55:32 +00:00
- Fixed outerProduct
2011-06-10 17:28:14 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.3.A - 2011-11-11
2011-06-10 17:28:14 +00:00
- Improved doxygen documentation
2011-11-14 11:58:27 +00:00
- Added new swizzle operators for C++11 compilers
- Added new swizzle operators declared as functions
2011-11-14 12:02:21 +00:00
- Added GLSL 4.20 length for vector and matrix types
2011-09-30 15:06:22 +00:00
- Promoted GLM_GTC_noise extension: simplex, perlin, periodic noise functions
- Promoted GLM_GTC_random extension: linear, gaussian and various random number
2011-11-13 00:30:05 +00:00
generation distribution
2016-04-02 23:50:25 +00:00
- Added GLM_GTX_constants: provides useful constants
2011-06-10 17:28:14 +00:00
- Added extension versioning
- Removed many unused namespaces
2011-09-19 23:47:06 +00:00
- Fixed half based type contructors
2011-11-13 00:30:05 +00:00
- Added GLSL core noise functions
2011-05-08 00:43:40 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.2.7](https://github.com/g-truc/glm/releases/tag/0.9.2.7) - 2011-10-24
2011-10-02 00:28:56 +00:00
- Added more swizzling constructors
2011-10-23 23:42:24 +00:00
- Added missing none-squared matrix products
2011-10-02 00:28:56 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.2.6](https://github.com/g-truc/glm/releases/tag/0.9.2.6) - 2011-10-01
2011-09-30 13:52:27 +00:00
- Fixed half based type build on old GCC
- Fixed /W4 warnings on Visual C++
2011-09-30 15:38:29 +00:00
- Fixed some missing l-value swizzle operators
2011-09-30 13:52:27 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.5 - 2011-09-20
2011-09-14 15:09:59 +00:00
- Fixed floatBitToXint functions
- Fixed pack and unpack functions
2011-09-19 23:19:53 +00:00
- Fixed round functions
2011-09-14 15:09:59 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.4 - 2011-09-03
2011-08-01 15:17:54 +00:00
- Fixed extensions bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.3 - 2011-06-08
2011-06-09 09:16:41 +00:00
- Fixed build issues
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.2 - 2011-06-02
2011-06-01 18:01:44 +00:00
- Expend matrix constructors flexibility
- Improved quaternion implementation
- Fixed many warnings across platforms and compilers
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.1 - 2011-05-24
2011-05-17 14:39:25 +00:00
- Automatically detect CUDA support
2011-05-24 11:19:51 +00:00
- Improved compiler detection
2011-05-17 14:39:25 +00:00
- Fixed errors and warnings in VC with C++ extensions disabled
- Fixed and tested GLM_GTX_vector_angle
- Fixed and tested GLM_GTX_rotate_vector
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.2.0 - 2011-05-09
2011-05-08 00:43:40 +00:00
- Added CUDA support
- Added CTest test suite
2011-05-08 10:12:12 +00:00
- Added GLM_GTX_ulp extension
- Added GLM_GTX_noise extension
- Added GLM_GTX_matrix_interpolation extension
2011-05-08 00:43:40 +00:00
- Updated quaternion slerp interpolation
2011-02-08 11:31:09 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.1.3](https://github.com/g-truc/glm/releases/tag/0.9.1.3) - 2011-05-07
2011-05-06 23:30:59 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.1.2 - 2011-04-15
2011-04-12 21:39:52 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.1.1 - 2011-03-17
2011-03-17 20:58:53 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.1.0 - 2011-03-03
2011-02-28 17:16:11 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.1.B - 2011-02-13
2011-02-12 23:50:25 +00:00
- Updated API documentation
- Improved SIMD implementation
2011-02-12 23:55:30 +00:00
- Fixed Linux build
2011-02-12 23:50:25 +00:00
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.0.8](https://github.com/g-truc/glm/releases/tag/0.9.0.8) - 2011-02-13
2011-02-12 23:02:27 +00:00
- Added quaternion product operator.
- Clarify that GLM is a header only library.
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.1.A - 2011-01-31
2011-01-31 23:39:08 +00:00
- Added SIMD support
- Added new swizzle functions
- Improved static assert error message with C++0x static_assert
- New setup system
- Reduced branching
- Fixed trunc implementation
2016-11-03 18:09:15 +00:00
---
### [GLM 0.9.0.7](https://github.com/g-truc/glm/releases/tag/0.9.0.7) - 2011-01-30
2011-01-31 23:39:08 +00:00
- Added GLSL 4.10 packing functions
2011-02-08 11:31:09 +00:00
- Added == and != operators for every types.
2011-01-31 23:39:08 +00:00
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.6 - 2010-12-21
2010-12-20 01:38:26 +00:00
- Many matrices bugs fixed
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.5 - 2010-11-01
2010-11-01 22:59:32 +00:00
- Improved Clang support
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.4 - 2010-10-04
2010-11-01 22:59:32 +00:00
- Added autoexp for GLM
2010-10-04 13:46:53 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.3 - 2010-08-26
2010-08-26 17:56:06 +00:00
- Fixed non-squared matrix operators
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.2 - 2010-07-08
2010-07-08 11:24:33 +00:00
- Added GLM_GTX_int_10_10_10_2
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.1 - 2010-06-21
2010-06-20 23:17:28 +00:00
- Fixed extensions errors
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.0.0 - 2010-05-25
2010-05-24 00:57:36 +00:00
- Objective-C support
- Fixed warnings
- Updated documentation
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.B.2 - 2010-04-30
2010-04-30 12:20:45 +00:00
- Git transition
- Removed experimental code from releases
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.B.1 - 2010-04-03
2010-04-30 12:20:45 +00:00
- Based on GLSL 4.00 specification
- Added the new core functions
- Added some implicit conversion support
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.A.2 - 2010-02-20
2010-04-30 12:20:45 +00:00
- Improved some possible errors messages
- Improved declarations and definitions match
2016-11-03 18:09:15 +00:00
---
### GLM 0.9.A.1 - 2010-02-09
2010-04-30 12:20:45 +00:00
- Removed deprecated features
- Internal redesign
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.4.4 final - 2010-01-25
2010-04-29 10:54:07 +00:00
- Fixed warnings
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.4.3 final - 2009-11-16
2010-04-29 10:54:07 +00:00
- Fixed Half float arithmetic
- Fixed setup defines
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.4.2 final - 2009-10-19
2010-04-29 10:54:07 +00:00
- Fixed Half float adds
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.4.1 final - 2009-10-05
2010-04-29 10:54:07 +00:00
- Updated documentation
- Fixed MacOS X build
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.4.0 final - 2009-09-16
2010-04-29 10:54:07 +00:00
- Added GCC 4.4 and VC2010 support
- Added matrix optimizations
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.5 final - 2009-08-11
2010-04-29 10:54:07 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.4 final - 2009-08-10
2010-04-29 10:54:07 +00:00
- Updated GLM according GLSL 1.5 spec
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.3 final - 2009-06-25
2010-04-29 10:54:07 +00:00
- Fixed bugs
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.2 final - 2009-06-04
2010-04-29 10:54:07 +00:00
- Added GLM_GTC_quaternion
- Added GLM_GTC_type_precision
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.1 final - 2009-05-21
2010-04-29 10:54:07 +00:00
- Fixed old extension system.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.3.0 final - 2009-05-06
2010-04-29 10:54:07 +00:00
- Added stable extensions.
- Added new extension system.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.2.3 final - 2009-04-01
2010-04-29 10:54:07 +00:00
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.2.2 final - 2009-02-24
2010-04-29 10:54:07 +00:00
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.2.1 final - 2009-02-13
2010-04-29 10:54:07 +00:00
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.2 final - 2009-01-21
2010-04-29 10:54:07 +00:00
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.1 final - 2008-10-30
2010-04-29 10:54:07 +00:00
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.0 final - 2008-10-23
2010-04-29 10:54:07 +00:00
- New method to use extension.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.0 beta3 - 2008-10-10
2010-04-29 10:54:07 +00:00
- Added CMake support for GLM tests.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.0 beta2 - 2008-10-04
2010-04-29 10:54:07 +00:00
- Improved half scalars and vectors support.
2016-11-03 18:09:15 +00:00
---
### GLM 0.8.0 beta1 - 2008-09-26
2010-04-29 10:54:07 +00:00
- Improved GLSL conformance
- Added GLSL 1.30 support
- Improved API documentation
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.6 final - 2008-08-08
2010-04-29 10:54:07 +00:00
- Improved C++ standard comformance
- Added Static assert for types checking
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.5 final - 2008-07-05
2010-04-29 10:54:07 +00:00
- Added build message system with Visual Studio
- Pedantic build with GCC
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.4 final - 2008-06-01
2010-04-29 10:54:07 +00:00
- Added external dependencies system.
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.3 final - 2008-05-24
2010-04-29 10:54:07 +00:00
- Fixed bugs
- Added new extension group
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.2 final - 2008-04-27
2010-04-29 10:54:07 +00:00
- Updated documentation
- Added preprocessor options
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.1 final - 2008-03-24
2010-04-29 10:54:07 +00:00
- Disabled half on GCC
- Fixed extensions
2016-11-03 18:09:15 +00:00
---
### GLM 0.7.0 final - 2008-03-22
2010-04-29 10:54:07 +00:00
- Changed to MIT license
- Added new documentation
2016-11-03 18:09:15 +00:00
---
### GLM 0.6.4 - 2007-12-10
2010-04-29 10:54:07 +00:00
- Fixed swizzle operators
2016-11-03 18:09:15 +00:00
---
### GLM 0.6.3 - 2007-11-05
2010-04-29 10:54:07 +00:00
- Fixed type data accesses
- Fixed 3DSMax sdk conflict
2016-11-03 18:09:15 +00:00
---
### GLM 0.6.2 - 2007-10-08
2010-04-29 10:54:07 +00:00
- Fixed extension
2016-11-03 18:09:15 +00:00
---
### GLM 0.6.1 - 2007-10-07
2010-04-29 10:54:07 +00:00
- Fixed a namespace error
- Added extensions
2016-11-03 18:09:15 +00:00
---
### GLM 0.6.0 : 2007-09-16
2010-04-29 10:54:07 +00:00
- Added new extension namespace mecanium
- Added Automatic compiler detection
2016-11-03 18:09:15 +00:00
---
### GLM 0.5.1 - 2007-02-19
2010-04-29 10:54:07 +00:00
- Fixed swizzle operators
2016-11-03 18:09:15 +00:00
---
### GLM 0.5.0 - 2007-01-06
2010-04-29 10:54:07 +00:00
- Upgrated to GLSL 1.2
- Added swizzle operators
- Added setup settings
2016-11-03 18:09:15 +00:00
---
### GLM 0.4.1 - 2006-05-22
2010-04-29 10:54:07 +00:00
- Added OpenGL examples
2016-11-03 18:09:15 +00:00
---
### GLM 0.4.0 - 2006-05-17
2010-04-29 10:54:07 +00:00
- Added missing operators to vec* and mat*
- Added first GLSL 1.2 features
- Fixed windows.h before glm.h when windows.h required
2016-11-03 18:09:15 +00:00
---
### GLM 0.3.2 - 2006-04-21
2010-04-29 10:54:07 +00:00
- Fixed texcoord components access.
- Fixed mat4 and imat4 division operators.
2016-11-03 18:09:15 +00:00
---
### GLM 0.3.1 - 2006-03-28
2010-04-29 10:54:07 +00:00
- Added GCC 4.0 support under MacOS X.
- Added GCC 4.0 and 4.1 support under Linux.
- Added code optimisations.
2016-11-03 18:09:15 +00:00
---
### GLM 0.3 - 2006-02-19
2010-04-29 10:54:07 +00:00
- Improved GLSL type conversion and construction compliance.
- Added experimental extensions.
- Added Doxygen Documentation.
- Added code optimisations.
- Fixed bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.2 - 2005-05-05
2010-04-29 10:54:07 +00:00
- Improve adaptative from GLSL.
- Add experimental extensions based on OpenGL extension process.
- Fixe bugs.
2016-11-03 18:09:15 +00:00
---
### GLM 0.1 - 2005-02-21
2010-04-29 10:54:07 +00:00
- Add vec2, vec3, vec4 GLSL types
- Add ivec2, ivec3, ivec4 GLSL types
- Add bvec2, bvec3, bvec4 GLSL types
- Add mat2, mat3, mat4 GLSL types
- Add almost all functions