Platformer in OpenGL
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1107 lines
39 KiB

5 years ago
  1. ![glm](/doc/manual/logo-mini.png)
  2. [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).
  3. *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++.
  4. 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...
  5. 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.
  6. *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:
  7. - [Apple Clang 6.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher
  8. - [GCC](http://gcc.gnu.org/) 4.7 and higher
  9. - [Intel C++ Composer](https://software.intel.com/en-us/intel-compilers) XE 2013 and higher
  10. - [LLVM](http://llvm.org/) 3.4 and higher
  11. - [Visual C++](http://www.visualstudio.com/) 2013 and higher
  12. - [CUDA](https://developer.nvidia.com/about-cuda) 7.0 and higher (experimental)
  13. - Any C++11 compiler
  14. 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).
  15. The source code and the documentation are licensed under both the [Happy Bunny License (Modified MIT) or the MIT License](manual.md#section0).
  16. 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).
  17. ```cpp
  18. #include <glm/vec3.hpp> // glm::vec3
  19. #include <glm/vec4.hpp> // glm::vec4
  20. #include <glm/mat4x4.hpp> // glm::mat4
  21. #include <glm/ext/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale
  22. #include <glm/ext/matrix_clip_space.hpp> // glm::perspective
  23. #include <glm/ext/constants.hpp> // glm::pi
  24. glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
  25. {
  26. glm::mat4 Projection = glm::perspective(glm::pi<float>() * 0.25f, 4.0f / 3.0f, 0.1f, 100.f);
  27. glm::mat4 View = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate));
  28. View = glm::rotate(View, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
  29. View = glm::rotate(View, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
  30. glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
  31. return Projection * View * Model;
  32. }
  33. ```
  34. ## [Lastest release](https://github.com/g-truc/glm/releases/latest)
  35. ## Project Health
  36. | Service | System | Compiler | Status |
  37. | ------- | ------ | -------- | ------ |
  38. | [Travis CI](https://travis-ci.org/g-truc/glm)| MacOSX, Linux 64 bits | Clang 3.6, Clang 5.0, GCC 4.9, GCC 7.3 | [![Travis CI](https://travis-ci.org/g-truc/glm.svg?branch=master)](https://travis-ci.org/g-truc/glm)
  39. | [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)
  40. ## Release notes
  41. ### [GLM 0.9.9.1](https://github.com/g-truc/glm/releases/tag/0.9.9.1) - 2018-09-03
  42. #### Features:
  43. - Added bitfieldDeinterleave to GTC_bitfield
  44. - Added missing equal and notEqual with epsilon for quaternion types to GTC_quaternion
  45. - Added EXT_matrix_relational: equal and notEqual with epsilon for matrix types
  46. - Added missing aligned matrix types to GTC_type_aligned
  47. - Added C++17 detection
  48. - Added Visual C++ language standard version detection
  49. - Added PDF manual build from markdown
  50. #### Improvements:
  51. - Added a section to the manual for contributing to GLM
  52. - Refactor manual, lists all configuration defines
  53. - Added missing vec1 based constructors
  54. - Redesigned constexpr support which excludes both SIMD and constexpr #783
  55. - Added detection of Visual C++ 2017 toolsets
  56. - Added identity functions #765
  57. - Splitted headers into EXT extensions to improve compilation time #670
  58. - Added separated performance tests
  59. - Clarified refract valid range of the indices of refraction, between -1 and 1 inclusively #806
  60. #### Fixes:
  61. - Fixed SIMD detection on Clang and GCC
  62. - Fixed build problems due to printf and std::clock_t #778
  63. - Fixed int mod
  64. - Anonymous unions require C++ language extensions
  65. - Fixed ortho #790
  66. - Fixed Visual C++ 2013 warnings in vector relational code #782
  67. - Fixed ICC build errors with constexpr #704
  68. - Fixed defaulted operator= and constructors #791
  69. - Fixed invalid conversion from int scalar with vec4 constructor when using SSE instruction
  70. - Fixed infinite loop in random functions when using negative radius values using an assert #739
  71. ### [GLM 0.9.9.0](https://github.com/g-truc/glm/releases/tag/0.9.9.0) - 2018-05-22
  72. #### Features:
  73. - Added RGBM encoding in GTC_packing #420
  74. - Added GTX_color_encoding extension
  75. - Added GTX_vec_swizzle, faster compile time swizzling then swizzle operator #558
  76. - Added GTX_exterior_product with a vec2 cross implementation #621
  77. - Added GTX_matrix_factorisation to factor matrices in various forms #654
  78. - Added [GLM_ENABLE_EXPERIMENTAL](manual.md#section7_4) to enable experimental features.
  79. - Added packing functions for integer vectors #639
  80. - Added conan packaging configuration #643 #641
  81. - Added quatLookAt to GTX_quaternion #659
  82. - Added fmin, fmax and fclamp to GTX_extended_min_max #372
  83. - Added EXT_vector_relational: extend equal and notEqual to take an epsilon argument
  84. - Added EXT_vector_relational: openBounded and closeBounded
  85. - Added EXT_vec1: *vec1 types
  86. - Added GTX_texture: levels function
  87. - Added spearate functions to use both nagative one and zero near clip plans #680
  88. - Added GLM_FORCE_SINGLE_ONLY to use GLM on platforms that don't support double #627
  89. - Added GTX_easing for interpolation functions #761
  90. #### Improvements:
  91. - No more default initialization of vector, matrix and quaternion types
  92. - Added lowp variant of GTC_color_space convertLinearToSRGB #419
  93. - Replaced the manual by a markdown version #458
  94. - Improved API documentation #668
  95. - Optimized GTC_packing implementation
  96. - Optimized GTC_noise functions
  97. - Optimized GTC_color_space HSV to RGB conversions
  98. - Optimised GTX_color_space_YCoCg YCoCgR conversions
  99. - Optimized GTX_matrix_interpolation axisAngle function
  100. - Added FAQ 12: Windows headers cause build errors... #557
  101. - Removed GCC shadow warnings #595
  102. - Added error for including of different versions of GLM #619
  103. - Added GLM_FORCE_IGNORE_VERSION to ignore error caused by including different version of GLM #619
  104. - Reduced warnings when using very strict compilation flags #646
  105. - length() member functions are constexpr #657
  106. - Added support of -Weverything with Clang #646
  107. - Improved exponential funtion test coverage
  108. - Enabled warnings as error with Clang unit tests
  109. - Conan package is an external repository: https://github.com/bincrafters/conan-glm
  110. - Clarify quat_cast documentation, applying on pure rotation matrices #759
  111. #### Fixes:
  112. - Removed doxygen references to GTC_half_float which was removed in 0.9.4
  113. - Fixed glm::decompose #448
  114. - Fixed intersectRayTriangle #6
  115. - Fixed dual quaternion != operator #629
  116. - Fixed usused variable warning in GTX_spline #618
  117. - Fixed references to GLM_FORCE_RADIANS which was removed #642
  118. - Fixed glm::fastInverseSqrt to use fast inverse square #640
  119. - Fixed axisAngle NaN #638
  120. - Fixed integer pow from GTX_integer with null exponent #658
  121. - Fixed quat normalize build error #656
  122. - Fixed Visual C++ 2017.2 warning regarding __has_feature definision #655
  123. - Fixed documentation warnings
  124. - Fixed GLM_HAS_OPENMP when OpenMP is not enabled
  125. - Fixed Better follow GLSL min and max specification #372
  126. - Fixed quaternion constructor from two vectors special cases #469
  127. - Fixed glm::to_string on quaternions wrong components order #681
  128. - Fixed acsch #698
  129. - Fixed isnan on CUDA #727
  130. #### Deprecation:
  131. - Requires Visual Studio 2013, GCC 4.7, Clang 3.4, Cuda 7, ICC 2013 or a C++11 compiler
  132. - Removed GLM_GTX_simd_vec4 extension
  133. - Removed GLM_GTX_simd_mat4 extension
  134. - Removed GLM_GTX_simd_quat extension
  135. - Removed GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
  136. - Removed GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
  137. - Removed GLM_DEPTH_ZERO_TO_ONE, use GLM_FORCE_DEPTH_ZERO_TO_ONE instead
  138. - Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead
  139. - Removed GLM_FORCE_NO_CTOR_INIT
  140. - Removed glm::uninitialize
  141. ---
  142. ### [GLM 0.9.8.5](https://github.com/g-truc/glm/releases/tag/0.9.8.5) - 2017-08-16
  143. #### Features:
  144. - Added Conan package support #647
  145. #### Fixes:
  146. - Fixed Clang version detection from source #608
  147. - Fixed packF3x9_E1x5 exponent packing #614
  148. - Fixed build error min and max specializations with integer #616
  149. - Fixed simd_mat4 build error #652
  150. ---
  151. ### [GLM 0.9.8.4](https://github.com/g-truc/glm/releases/tag/0.9.8.4) - 2017-01-22
  152. #### Fixes:
  153. - Fixed GTC_packing test failing on GCC x86 due to denorms #212 #577
  154. - Fixed POPCNT optimization build in Clang #512
  155. - Fixed intersectRayPlane returns true in parallel case #578
  156. - Fixed GCC 6.2 compiler warnings #580
  157. - Fixed GTX_matrix_decompose decompose #582 #448
  158. - Fixed GCC 4.5 and older build #566
  159. - Fixed Visual C++ internal error when declaring a global vec type with siwzzle expression enabled #594
  160. - Fixed GLM_FORCE_CXX11 with Clang and libstlc++ which wasn't using C++11 STL features. #604
  161. ---
  162. ### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12
  163. #### Improvements:
  164. - Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378
  165. #### Fixes:
  166. - Fixed Android build error with C++11 compiler but C++98 STL #284 #564
  167. - Fixed GTX_transform2 shear* functions #403
  168. - Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568
  169. - Fixed bitCount with AVX on 32 bit builds #567
  170. - Fixed CMake find_package with version specification #572 #573
  171. ---
  172. ### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01
  173. #### Improvements:
  174. - Added Visual C++ 15 detection
  175. - Added Clang 4.0 detection
  176. - Added warning messages when using GLM_FORCE_CXX** but the compiler
  177. is known to not fully support the requested C++ version #555
  178. - Refactored GLM_COMPILER_VC values
  179. - Made quat, vec, mat type component length() static #565
  180. #### Fixes:
  181. - Fixed Visual C++ constexpr build error #555, #556
  182. ---
  183. ### [GLM 0.9.8.1](https://github.com/g-truc/glm/releases/tag/0.9.8.1) - 2016-09-25
  184. #### Improvements:
  185. - Optimized quaternion log function #554
  186. #### Fixes:
  187. - Fixed GCC warning filtering, replaced -pedantic by -Wpedantic
  188. - Fixed SIMD faceforward bug. #549
  189. - Fixed GCC 4.8 with C++11 compilation option #550
  190. - Fixed Visual Studio aligned type W4 warning #548
  191. - Fixed packing/unpacking function fixed for 5_6_5 and 5_5_5_1 #552
  192. ---
  193. ### [GLM 0.9.8.0](https://github.com/g-truc/glm/releases/tag/0.9.8.0) - 2016-09-11
  194. #### Features:
  195. - Added right and left handed projection and clip control support #447 #415 #119
  196. - Added compNormalize and compScale functions to GTX_component_wise
  197. - Added packF3x9_E1x5 and unpackF3x9_E1x5 to GTC_packing for RGB9E5 #416
  198. - Added (un)packHalf to GTC_packing
  199. - Added (un)packUnorm and (un)packSnorm to GTC_packing
  200. - Added 16bit pack and unpack to GTC_packing
  201. - Added 8bit pack and unpack to GTC_packing
  202. - Added missing bvec* && and || operators
  203. - Added iround and uround to GTC_integer, fast round on positive values
  204. - Added raw SIMD API
  205. - Added 'aligned' qualifiers
  206. - Added GTC_type_aligned with aligned *vec* types
  207. - Added GTC_functions extension
  208. - Added quaternion version of isnan and isinf #521
  209. - Added lowestBitValue to GTX_bit #536
  210. - Added GLM_FORCE_UNRESTRICTED_GENTYPE allowing non basic genType #543
  211. #### Improvements:
  212. - Improved SIMD and swizzle operators interactions with GCC and Clang #474
  213. - Improved GTC_random linearRand documentation
  214. - Improved GTC_reciprocal documentation
  215. - Improved GLM_FORCE_EXPLICIT_CTOR coverage #481
  216. - Improved OpenMP support detection for Clang, GCC, ICC and VC
  217. - Improved GTX_wrap for SIMD friendliness
  218. - Added constexpr for *vec*, *mat*, *quat* and *dual_quat* types #493
  219. - Added NEON instruction set detection
  220. - Added MIPS CPUs detection
  221. - Added PowerPC CPUs detection
  222. - Use Cuda built-in function for abs function implementation with Cuda compiler
  223. - Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG
  224. - No more warnings for use of long long
  225. - Added more information to build messages
  226. #### Fixes:
  227. - Fixed GTX_extended_min_max filename typo #386
  228. - Fixed intersectRayTriangle to not do any unintentional backface culling
  229. - Fixed long long warnings when using C++98 on GCC and Clang #482
  230. - Fixed sign with signed integer function on non-x86 architecture
  231. - Fixed strict aliasing warnings #473
  232. - Fixed missing vec1 overload to length2 and distance2 functions #431
  233. - Fixed GLM test '/fp:fast' and '/Za' command-line options are incompatible
  234. - Fixed quaterion to mat3 cast function mat3_cast from GTC_quaternion #542
  235. - Fixed GTX_io for Cuda #547 #546
  236. #### Deprecation:
  237. - Removed GLM_FORCE_SIZE_FUNC define
  238. - Deprecated GLM_GTX_simd_vec4 extension
  239. - Deprecated GLM_GTX_simd_mat4 extension
  240. - Deprecated GLM_GTX_simd_quat extension
  241. - Deprecated GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
  242. - Deprecated GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
  243. ---
  244. ### [GLM 0.9.7.6](https://github.com/g-truc/glm/releases/tag/0.9.7.6) - 2016-07-16
  245. #### Improvements:
  246. - Added pkg-config file #509
  247. - Updated list of compiler versions detected
  248. - Improved C++ 11 STL detection #523
  249. #### Fixes:
  250. - Fixed STL for C++11 detection on ICC #510
  251. - Fixed missing vec1 overload to length2 and distance2 functions #431
  252. - Fixed long long warnings when using C++98 on GCC and Clang #482
  253. - Fixed scalar reciprocal functions (GTC_reciprocal) #520
  254. ---
  255. ### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
  256. #### Improvements:
  257. - Added Visual C++ Clang toolset detection
  258. #### Fixes:
  259. - Fixed uaddCarry warning #497
  260. - Fixed roundPowerOfTwo and floorPowerOfTwo #503
  261. - Fixed Visual C++ SIMD instruction set automatic detection in 64 bits
  262. - Fixed to_string when used with GLM_FORCE_INLINE #506
  263. - Fixed GLM_FORCE_INLINE with binary vec4 operators
  264. - Fixed GTX_extended_min_max filename typo #386
  265. - Fixed intersectRayTriangle to not do any unintentional backface culling
  266. ---
  267. ### [GLM 0.9.7.4](https://github.com/g-truc/glm/releases/tag/0.9.7.4) - 2016-03-19
  268. #### Fixes:
  269. - Fixed asinh and atanh warning with C++98 STL #484
  270. - Fixed polar coordinates function latitude #485
  271. - Fixed outerProduct defintions and operator signatures for mat2x4 and vec4 #475
  272. - Fixed eulerAngles precision error, returns NaN #451
  273. - Fixed undefined reference errors #489
  274. - Fixed missing GLM_PLATFORM_CYGWIN declaration #495
  275. - Fixed various undefined reference errors #490
  276. ---
  277. ### [GLM 0.9.7.3](https://github.com/g-truc/glm/releases/tag/0.9.7.3) - 2016-02-21
  278. #### Improvements:
  279. - Added AVX512 detection
  280. #### Fixes:
  281. - Fixed CMake policy warning
  282. - Fixed GCC 6.0 detection #477
  283. - Fixed Clang build on Windows #479
  284. - Fixed 64 bits constants warnings on GCC #463
  285. ---
  286. ### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
  287. #### Fixes:
  288. - Fixed GTC_round floorMultiple/ceilMultiple #412
  289. - Fixed GTC_packing unpackUnorm3x10_1x2 #414
  290. - Fixed GTC_matrix_inverse affineInverse #192
  291. - Fixed ICC on Linux build errors #449
  292. - Fixed ldexp and frexp compilation errors
  293. - Fixed "Declaration shadows a field" warning #468
  294. - Fixed 'GLM_COMPILER_VC2005 is not defined' warning #468
  295. - Fixed various 'X is not defined' warnings #468
  296. - Fixed missing unary + operator #435
  297. - Fixed Cygwin build errors when using C++11 #405
  298. ---
  299. ### [GLM 0.9.7.1](https://github.com/g-truc/glm/releases/tag/0.9.7.1) - 2015-09-07
  300. #### Improvements:
  301. - Improved constexpr for constant functions coverage #198
  302. - Added to_string for quat and dual_quat in GTX_string_cast #375
  303. - Improved overall execution time of unit tests #396
  304. #### Fixes:
  305. - Fixed strict alignment warnings #235 #370
  306. - Fixed link errors on compilers not supported default function #377
  307. - Fixed compilation warnings in vec4
  308. - Fixed non-identity quaternions for equal vectors #234
  309. - Fixed excessive GTX_fast_trigonometry execution time #396
  310. - Fixed Visual Studio 2015 'hides class member' warnings #394
  311. - Fixed builtin bitscan never being used #392
  312. - Removed unused func_noise.* files #398
  313. ---
  314. ### [GLM 0.9.7.0](https://github.com/g-truc/glm/releases/tag/0.9.7.0) - 2015-08-02
  315. #### Features:
  316. - Added GTC_color_space: convertLinearToSRGB and convertSRGBToLinear functions
  317. - Added 'fmod' overload to GTX_common with tests #308
  318. - Left handed perspective and lookAt functions #314
  319. - Added functions eulerAngleXYZ and extractEulerAngleXYZ #311
  320. - Added <glm/gtx/hash.hpp> to perform std::hash on GLM types #320 #367
  321. - Added <glm/gtx/wrap.hpp> for texcoord wrapping
  322. - Added static components and precision members to all vector and quat types #350
  323. - Added .gitignore #349
  324. - Added support of defaulted functions to GLM types, to use them in unions #366
  325. #### Improvements:
  326. - Changed usage of __has_include to support Intel compiler #307
  327. - Specialized integer implementation of YCoCg-R #310
  328. - Don't show status message in 'FindGLM' if 'QUIET' option is set. #317
  329. - Added master branch continuous integration service on Linux 64 #332
  330. - Clarified manual regarding angle unit in GLM, added FAQ 11 #326
  331. - Updated list of compiler versions
  332. #### Fixes:
  333. - Fixed default precision for quat and dual_quat type #312
  334. - Fixed (u)int64 MSB/LSB handling on BE archs #306
  335. - Fixed multi-line comment warning in g++. #315
  336. - Fixed specifier removal by 'std::make_pair<>' #333
  337. - Fixed perspective fovy argument documentation #327
  338. - Removed -m64 causing build issues on Linux 32 #331
  339. - Fixed isfinite with C++98 compilers #343
  340. - Fixed Intel compiler build error on Linux #354
  341. - Fixed use of libstdc++ with Clang #351
  342. - Fixed quaternion pow #346
  343. - Fixed decompose warnings #373
  344. - Fixed matrix conversions #371
  345. #### Deprecation:
  346. - Removed integer specification for 'mod' in GTC_integer #308
  347. - Removed GTX_multiple, replaced by GTC_round
  348. ---
  349. ### [GLM 0.9.6.3](https://github.com/g-truc/glm/releases/tag/0.9.6.3) - 2015-02-15
  350. - Fixed Android doesn't have C++ 11 STL #284
  351. ---
  352. ### [GLM 0.9.6.2](https://github.com/g-truc/glm/releases/tag/0.9.6.2) - 2015-02-15
  353. #### Features:
  354. - Added display of GLM version with other GLM_MESSAGES
  355. - Added ARM instruction set detection
  356. #### Improvements:
  357. - Removed assert for perspective with zFar < zNear #298
  358. - Added Visual Studio natvis support for vec1, quat and dualqual types
  359. - Cleaned up C++11 feature detections
  360. - Clarify GLM licensing
  361. #### Fixes:
  362. - Fixed faceforward build #289
  363. - Fixed conflict with Xlib #define True 1 #293
  364. - Fixed decompose function VS2010 templating issues #294
  365. - Fixed mat4x3 = mat2x3 * mat4x2 operator #297
  366. - Fixed warnings in F2x11_1x10 packing function in GTC_packing #295
  367. - Fixed Visual Studio natvis support for vec4 #288
  368. - Fixed GTC_packing *pack*norm*x* build and added tests #292
  369. - Disabled GTX_scalar_multiplication for GCC, failing to build tests #242
  370. - Fixed Visual C++ 2015 constexpr errors: Disabled only partial support
  371. - Fixed functions not inlined with Clang #302
  372. - Fixed memory corruption (undefined behaviour) #303
  373. ---
  374. ### [GLM 0.9.6.1](https://github.com/g-truc/glm/releases/tag/0.9.6.1) - 2014-12-10
  375. #### Features:
  376. - Added GLM_LANG_CXX14_FLAG and GLM_LANG_CXX1Z_FLAG language feature flags
  377. - Added C++14 detection
  378. #### Improvements:
  379. - Clean up GLM_MESSAGES compilation log to report only detected capabilities
  380. #### Fixes:
  381. - Fixed scalar uaddCarry build error with Cuda #276
  382. - Fixed C++11 explicit conversion operators detection #282
  383. - Fixed missing explicit conversion when using integer log2 with *vec1 types
  384. - Fixed 64 bits integer GTX_string_cast to_string on VC 32 bit compiler
  385. - Fixed Android build issue, STL C++11 is not supported by the NDK #284
  386. - Fixed unsupported _BitScanForward64 and _BitScanReverse64 in VC10
  387. - Fixed Visual C++ 32 bit build #283
  388. - Fixed GLM_FORCE_SIZE_FUNC pragma message
  389. - Fixed C++98 only build
  390. - Fixed conflict between GTX_compatibility and GTC_quaternion #286
  391. - Fixed C++ language restriction using GLM_FORCE_CXX**
  392. ---
  393. ### [GLM 0.9.6.0](https://github.com/g-truc/glm/releases/tag/0.9.6.0) - 2014-11-30
  394. #### Features:
  395. - Exposed template vector and matrix types in 'glm' namespace #239, #244
  396. - Added GTX_scalar_multiplication for C++ 11 compiler only #242
  397. - Added GTX_range for C++ 11 compiler only #240
  398. - Added closestPointOnLine function for tvec2 to GTX_closest_point #238
  399. - Added GTC_vec1 extension, *vec1 support to *vec* types
  400. - Updated GTX_associated_min_max with vec1 support
  401. - Added support of precision and integers to linearRand #230
  402. - Added Integer types support to GTX_string_cast #249
  403. - Added vec3 slerp #237
  404. - Added GTX_common with isdenomal #223
  405. - Added GLM_FORCE_SIZE_FUNC to replace .length() by .size() #245
  406. - Added GLM_FORCE_NO_CTOR_INIT
  407. - Added 'uninitialize' to explicitly not initialize a GLM type
  408. - Added GTC_bitfield extension, promoted GTX_bit
  409. - Added GTC_integer extension, promoted GTX_bit and GTX_integer
  410. - Added GTC_round extension, promoted GTX_bit
  411. - Added GLM_FORCE_EXPLICIT_CTOR to require explicit type conversions #269
  412. - Added GTX_type_aligned for aligned vector, matrix and quaternion types
  413. #### Improvements:
  414. - Rely on C++11 to implement isinf and isnan
  415. - Removed GLM_FORCE_CUDA, Cuda is implicitly detected
  416. - Separated Apple Clang and LLVM compiler detection
  417. - Used pragma once
  418. - Undetected C++ compiler automatically compile with GLM_FORCE_CXX98 and
  419. GLM_FORCE_PURE
  420. - Added not function (from GLSL specification) on VC12
  421. - Optimized bitfieldReverse and bitCount functions
  422. - Optimized findLSB and findMSB functions.
  423. - Optimized matrix-vector multiple performance with Cuda #257, #258
  424. - Reduced integer type redifinitions #233
  425. - Rewrited of GTX_fast_trigonometry #264 #265
  426. - Made types trivially copyable #263
  427. - Removed <iostream> in GLM tests
  428. - Used std features within GLM without redeclaring
  429. - Optimized cot function #272
  430. - Optimized sign function #272
  431. - Added explicit cast from quat to mat3 and mat4 #275
  432. #### Fixes:
  433. - Fixed std::nextafter not supported with C++11 on Android #217
  434. - Fixed missing value_type for dual quaternion
  435. - Fixed return type of dual quaternion length
  436. - Fixed infinite loop in isfinite function with GCC #221
  437. - Fixed Visual Studio 14 compiler warnings
  438. - Fixed implicit conversion from another tvec2 type to another tvec2 #241
  439. - Fixed lack of consistency of quat and dualquat constructors
  440. - Fixed uaddCarray #253
  441. - Fixed float comparison warnings #270
  442. #### Deprecation:
  443. - Requires Visual Studio 2010, GCC 4.2, Apple Clang 4.0, LLVM 3.0, Cuda 4, ICC 2013 or a C++98 compiler
  444. - Removed degrees for function parameters
  445. - Removed GLM_FORCE_RADIANS, active by default
  446. - Removed VC 2005 / 8 and 2008 / 9 support
  447. - Removed GCC 3.4 to 4.3 support
  448. - Removed LLVM GCC support
  449. - Removed LLVM 2.6 to 3.1 support
  450. - Removed CUDA 3.0 to 3.2 support
  451. ---
  452. ### [GLM 0.9.5.4 - 2014-06-21](https://github.com/g-truc/glm/releases/tag/0.9.5.4)
  453. - Fixed non-utf8 character #196
  454. - Added FindGLM install for CMake #189
  455. - Fixed GTX_color_space - saturation #195
  456. - Fixed glm::isinf and glm::isnan for with Android NDK 9d #191
  457. - Fixed builtin GLM_ARCH_SSE4 #204
  458. - Optimized Quaternion vector rotation #205
  459. - Fixed missing doxygen @endcond tag #211
  460. - Fixed instruction set detection with Clang #158
  461. - Fixed orientate3 function #207
  462. - Fixed lerp when cosTheta is close to 1 in quaternion slerp #210
  463. - Added GTX_io for io with <iostream> #144
  464. - Fixed fastDistance ambiguity #215
  465. - Fixed tweakedInfinitePerspective #208 and added user-defined epsilon to
  466. tweakedInfinitePerspective
  467. - Fixed std::copy and std::vector with GLM types #214
  468. - Fixed strict aliasing issues #212, #152
  469. - Fixed std::nextafter not supported with C++11 on Android #213
  470. - Fixed corner cases in exp and log functions for quaternions #199
  471. ---
  472. ### GLM 0.9.5.3 - 2014-04-02
  473. - Added instruction set auto detection with Visual C++ using _M_IX86_FP - /arch
  474. compiler argument
  475. - Fixed GTX_raw_data code dependency
  476. - Fixed GCC instruction set detection
  477. - Added GLM_GTX_matrix_transform_2d extension (#178, #176)
  478. - Fixed CUDA issues (#169, #168, #183, #182)
  479. - Added support for all extensions but GTX_string_cast to CUDA
  480. - Fixed strict aliasing warnings in GCC 4.8.1 / Android NDK 9c (#152)
  481. - Fixed missing bitfieldInterleave definisions
  482. - Fixed usubBorrow (#171)
  483. - Fixed eulerAngle*** not consistent for right-handed coordinate system (#173)
  484. - Added full tests for eulerAngle*** functions (#173)
  485. - Added workaround for a CUDA compiler bug (#186, #185)
  486. ---
  487. ### GLM 0.9.5.2 - 2014-02-08
  488. - Fixed initializer list ambiguity (#159, #160)
  489. - Fixed warnings with the Android NDK 9c
  490. - Fixed non power of two matrix products
  491. - Fixed mix function link error
  492. - Fixed SSE code included in GLM tests on "pure" platforms
  493. - Fixed undefined reference to fastInverseSqrt (#161)
  494. - Fixed GLM_FORCE_RADIANS with <glm/ext.hpp> build error (#165)
  495. - Fix dot product clamp range for vector angle functions. (#163)
  496. - Tentative fix for strict aliasing warning in GCC 4.8.1 / Android NDK 9c (#152)
  497. - Fixed GLM_GTC_constants description brief (#162)
  498. ---
  499. ### GLM 0.9.5.1 - 2014-01-11
  500. - Fixed angle and orientedAngle that sometimes return NaN values (#145)
  501. - Deprecated degrees for function parameters and display a message
  502. - Added possible static_cast conversion of GLM types (#72)
  503. - Fixed error 'inverse' is not a member of 'glm' from glm::unProject (#146)
  504. - Fixed mismatch between some declarations and definitions
  505. - Fixed inverse link error when using namespace glm; (#147)
  506. - Optimized matrix inverse and division code (#149)
  507. - Added intersectRayPlane function (#153)
  508. - Fixed outerProduct return type (#155)
  509. ---
  510. ### GLM 0.9.5.0 - 2013-12-25
  511. - Added forward declarations (glm/fwd.hpp) for faster compilations
  512. - Added per feature headers
  513. - Minimized GLM internal dependencies
  514. - Improved Intel Compiler detection
  515. - Added bitfieldInterleave and _mm_bit_interleave_si128 functions
  516. - Added GTX_scalar_relational
  517. - Added GTX_dual_quaternion
  518. - Added rotation function to GTX_quaternion (#22)
  519. - Added precision variation of each type
  520. - Added quaternion comparison functions
  521. - Fixed GTX_multiple for negative value
  522. - Removed GTX_ocl_type extension
  523. - Fixed post increment and decrement operators
  524. - Fixed perspective with zNear == 0 (#71)
  525. - Removed l-value swizzle operators
  526. - Cleaned up compiler detection code for unsupported compilers
  527. - Replaced C cast by C++ casts
  528. - Fixed .length() that should return a int and not a size_t
  529. - Added GLM_FORCE_SIZE_T_LENGTH and glm::length_t
  530. - Removed unnecessary conversions
  531. - Optimized packing and unpacking functions
  532. - Removed the normalization of the up argument of lookAt function (#114)
  533. - Added low precision specializations of inversesqrt
  534. - Fixed ldexp and frexp implementations
  535. - Increased assert coverage
  536. - Increased static_assert coverage
  537. - Replaced GLM traits by STL traits when possible
  538. - Allowed including individual core feature
  539. - Increased unit tests completness
  540. - Added creating of a quaternion from two vectors
  541. - Added C++11 initializer lists
  542. - Fixed umulExtended and imulExtended implementations for vector types (#76)
  543. - Fixed CUDA coverage for GTC extensions
  544. - Added GTX_io extension
  545. - Improved GLM messages enabled when defining GLM_MESSAGES
  546. - Hidden matrix _inverse function implementation detail into private section
  547. ---
  548. ### [GLM 0.9.4.6](https://github.com/g-truc/glm/releases/tag/0.9.4.6) - 2013-09-20
  549. - Fixed detection to select the last known compiler if newer version #106
  550. - Fixed is_int and is_uint code duplication with GCC and C++11 #107
  551. - Fixed test suite build while using Clang in C++11 mode
  552. - Added c++1y mode support in CMake test suite
  553. - Removed ms extension mode to CMake when no using Visual C++
  554. - Added pedantic mode to CMake test suite for Clang and GCC
  555. - Added use of GCC frontend on Unix for ICC and Visual C++ fronted on Windows
  556. for ICC
  557. - Added compilation errors for unsupported compiler versions
  558. - Fixed glm::orientation with GLM_FORCE_RADIANS defined #112
  559. - Fixed const ref issue on assignment operator taking a scalar parameter #116
  560. - Fixed glm::eulerAngleY implementation #117
  561. ---
  562. ### GLM 0.9.4.5 - 2013-08-12
  563. - Fixed CUDA support
  564. - Fixed inclusion of intrinsics in "pure" mode #92
  565. - Fixed language detection on GCC when the C++0x mode isn't enabled #95
  566. - Fixed issue #97: register is deprecated in C++11
  567. - Fixed issue #96: CUDA issues
  568. - Added Windows CE detection #92
  569. - Added missing value_ptr for quaternions #99
  570. ---
  571. ### GLM 0.9.4.4 - 2013-05-29
  572. - Fixed slerp when costheta is close to 1 #65
  573. - Fixed mat4x2 value_type constructor #70
  574. - Fixed glm.natvis for Visual C++ 12 #82
  575. - Added assert in inversesqrt to detect division by zero #61
  576. - Fixed missing swizzle operators #86
  577. - Fixed CUDA warnings #86
  578. - Fixed GLM natvis for VC11 #82
  579. - Fixed GLM_GTX_multiple with negative values #79
  580. - Fixed glm::perspective when zNear is zero #71
  581. ---
  582. ### GLM 0.9.4.3 - 2013-03-20
  583. - Detected qualifier for Clang
  584. - Fixed C++11 mode for GCC, couldn't be enabled without MS extensions
  585. - Fixed squad, intermediate and exp quaternion functions
  586. - Fixed GTX_polar_coordinates euclidean function, takes a vec2 instead of a vec3
  587. - Clarify the license applying on the manual
  588. - Added a docx copy of the manual
  589. - Fixed GLM_GTX_matrix_interpolation
  590. - Fixed isnan and isinf on Android with Clang
  591. - Autodetected C++ version using __cplusplus value
  592. - Fixed mix for bool and bvec* third parameter
  593. ---
  594. ### GLM 0.9.4.2 - 2013-02-14
  595. - Fixed compAdd from GTX_component_wise
  596. - Fixed SIMD support for Intel compiler on Windows
  597. - Fixed isnan and isinf for CUDA compiler
  598. - Fixed GLM_FORCE_RADIANS on glm::perspective
  599. - Fixed GCC warnings
  600. - Fixed packDouble2x32 on Xcode
  601. - Fixed mix for vec4 SSE implementation
  602. - Fixed 0x2013 dash character in comments that cause issue in Windows
  603. Japanese mode
  604. - Fixed documentation warnings
  605. - Fixed CUDA warnings
  606. ---
  607. ### GLM 0.9.4.1 - 2012-12-22
  608. - Improved half support: -0.0 case and implicit conversions
  609. - Fixed Intel Composer Compiler support on Linux
  610. - Fixed interaction between quaternion and euler angles
  611. - Fixed GTC_constants build
  612. - Fixed GTX_multiple
  613. - Fixed quat slerp using mix function when cosTheta close to 1
  614. - Improved fvec4SIMD and fmat4x4SIMD implementations
  615. - Fixed assert messages
  616. - Added slerp and lerp quaternion functions and tests
  617. ---
  618. ### GLM 0.9.4.0 - 2012-11-18
  619. - Added Intel Composer Compiler support
  620. - Promoted GTC_espilon extension
  621. - Promoted GTC_ulp extension
  622. - Removed GLM website from the source repository
  623. - Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
  624. - Fixed detection of Clang and LLVM GCC on MacOS X
  625. - Added debugger visualizers for Visual C++ 2012
  626. - Requires Visual Studio 2005, GCC 4.2, Clang 2.6, Cuda 3, ICC 2013 or a C++98 compiler
  627. ---
  628. ### [GLM 0.9.3.4](https://github.com/g-truc/glm/releases/tag/0.9.3.4) - 2012-06-30
  629. - Added SSE4 and AVX2 detection.
  630. - Removed VIRTREV_xstream and the incompatibility generated with GCC
  631. - Fixed C++11 compiler option for GCC
  632. - Removed MS language extension option for GCC (not fonctionnal)
  633. - Fixed bitfieldExtract for vector types
  634. - Fixed warnings
  635. - Fixed SSE includes
  636. ---
  637. ### GLM 0.9.3.3 - 2012-05-10
  638. - Fixed isinf and isnan
  639. - Improved compatibility with Intel compiler
  640. - Added CMake test build options: SIMD, C++11, fast math and MS land ext
  641. - Fixed SIMD mat4 test on GCC
  642. - Fixed perspectiveFov implementation
  643. - Fixed matrixCompMult for none-square matrices
  644. - Fixed namespace issue on stream operators
  645. - Fixed various warnings
  646. - Added VC11 support
  647. ---
  648. ### GLM 0.9.3.2 - 2012-03-15
  649. - Fixed doxygen documentation
  650. - Fixed Clang version detection
  651. - Fixed simd mat4 /= operator
  652. ---
  653. ### GLM 0.9.3.1 - 2012-01-25
  654. - Fixed platform detection
  655. - Fixed warnings
  656. - Removed detail code from Doxygen doc
  657. ---
  658. ### GLM 0.9.3.0 - 2012-01-09
  659. - Added CPP Check project
  660. - Fixed conflict with Windows headers
  661. - Fixed isinf implementation
  662. - Fixed Boost conflict
  663. - Fixed warnings
  664. ---
  665. ### GLM 0.9.3.B - 2011-12-12
  666. - Added support for Chrone Native Client
  667. - Added epsilon constant
  668. - Removed value_size function from vector types
  669. - Fixed roundEven on GCC
  670. - Improved API documentation
  671. - Fixed modf implementation
  672. - Fixed step function accuracy
  673. - Fixed outerProduct
  674. ---
  675. ### GLM 0.9.3.A - 2011-11-11
  676. - Improved doxygen documentation
  677. - Added new swizzle operators for C++11 compilers
  678. - Added new swizzle operators declared as functions
  679. - Added GLSL 4.20 length for vector and matrix types
  680. - Promoted GLM_GTC_noise extension: simplex, perlin, periodic noise functions
  681. - Promoted GLM_GTC_random extension: linear, gaussian and various random number
  682. generation distribution
  683. - Added GLM_GTX_constants: provides useful constants
  684. - Added extension versioning
  685. - Removed many unused namespaces
  686. - Fixed half based type contructors
  687. - Added GLSL core noise functions
  688. ---
  689. ### [GLM 0.9.2.7](https://github.com/g-truc/glm/releases/tag/0.9.2.7) - 2011-10-24
  690. - Added more swizzling constructors
  691. - Added missing none-squared matrix products
  692. ---
  693. ### [GLM 0.9.2.6](https://github.com/g-truc/glm/releases/tag/0.9.2.6) - 2011-10-01
  694. - Fixed half based type build on old GCC
  695. - Fixed /W4 warnings on Visual C++
  696. - Fixed some missing l-value swizzle operators
  697. ---
  698. ### GLM 0.9.2.5 - 2011-09-20
  699. - Fixed floatBitToXint functions
  700. - Fixed pack and unpack functions
  701. - Fixed round functions
  702. ---
  703. ### GLM 0.9.2.4 - 2011-09-03
  704. - Fixed extensions bugs
  705. ---
  706. ### GLM 0.9.2.3 - 2011-06-08
  707. - Fixed build issues
  708. ---
  709. ### GLM 0.9.2.2 - 2011-06-02
  710. - Expend matrix constructors flexibility
  711. - Improved quaternion implementation
  712. - Fixed many warnings across platforms and compilers
  713. ---
  714. ### GLM 0.9.2.1 - 2011-05-24
  715. - Automatically detect CUDA support
  716. - Improved compiler detection
  717. - Fixed errors and warnings in VC with C++ extensions disabled
  718. - Fixed and tested GLM_GTX_vector_angle
  719. - Fixed and tested GLM_GTX_rotate_vector
  720. ---
  721. ### GLM 0.9.2.0 - 2011-05-09
  722. - Added CUDA support
  723. - Added CTest test suite
  724. - Added GLM_GTX_ulp extension
  725. - Added GLM_GTX_noise extension
  726. - Added GLM_GTX_matrix_interpolation extension
  727. - Updated quaternion slerp interpolation
  728. ---
  729. ### [GLM 0.9.1.3](https://github.com/g-truc/glm/releases/tag/0.9.1.3) - 2011-05-07
  730. - Fixed bugs
  731. ---
  732. ### GLM 0.9.1.2 - 2011-04-15
  733. - Fixed bugs
  734. ---
  735. ### GLM 0.9.1.1 - 2011-03-17
  736. - Fixed bugs
  737. ---
  738. ### GLM 0.9.1.0 - 2011-03-03
  739. - Fixed bugs
  740. ---
  741. ### GLM 0.9.1.B - 2011-02-13
  742. - Updated API documentation
  743. - Improved SIMD implementation
  744. - Fixed Linux build
  745. ---
  746. ### [GLM 0.9.0.8](https://github.com/g-truc/glm/releases/tag/0.9.0.8) - 2011-02-13
  747. - Added quaternion product operator.
  748. - Clarify that GLM is a header only library.
  749. ---
  750. ### GLM 0.9.1.A - 2011-01-31
  751. - Added SIMD support
  752. - Added new swizzle functions
  753. - Improved static assert error message with C++0x static_assert
  754. - New setup system
  755. - Reduced branching
  756. - Fixed trunc implementation
  757. ---
  758. ### [GLM 0.9.0.7](https://github.com/g-truc/glm/releases/tag/0.9.0.7) - 2011-01-30
  759. - Added GLSL 4.10 packing functions
  760. - Added == and != operators for every types.
  761. ---
  762. ### GLM 0.9.0.6 - 2010-12-21
  763. - Many matrices bugs fixed
  764. ---
  765. ### GLM 0.9.0.5 - 2010-11-01
  766. - Improved Clang support
  767. - Fixed bugs
  768. ---
  769. ### GLM 0.9.0.4 - 2010-10-04
  770. - Added autoexp for GLM
  771. - Fixed bugs
  772. ---
  773. ### GLM 0.9.0.3 - 2010-08-26
  774. - Fixed non-squared matrix operators
  775. ---
  776. ### GLM 0.9.0.2 - 2010-07-08
  777. - Added GLM_GTX_int_10_10_10_2
  778. - Fixed bugs
  779. ---
  780. ### GLM 0.9.0.1 - 2010-06-21
  781. - Fixed extensions errors
  782. ---
  783. ### GLM 0.9.0.0 - 2010-05-25
  784. - Objective-C support
  785. - Fixed warnings
  786. - Updated documentation
  787. ---
  788. ### GLM 0.9.B.2 - 2010-04-30
  789. - Git transition
  790. - Removed experimental code from releases
  791. - Fixed bugs
  792. ---
  793. ### GLM 0.9.B.1 - 2010-04-03
  794. - Based on GLSL 4.00 specification
  795. - Added the new core functions
  796. - Added some implicit conversion support
  797. ---
  798. ### GLM 0.9.A.2 - 2010-02-20
  799. - Improved some possible errors messages
  800. - Improved declarations and definitions match
  801. ---
  802. ### GLM 0.9.A.1 - 2010-02-09
  803. - Removed deprecated features
  804. - Internal redesign
  805. ---
  806. ### GLM 0.8.4.4 final - 2010-01-25
  807. - Fixed warnings
  808. ---
  809. ### GLM 0.8.4.3 final - 2009-11-16
  810. - Fixed Half float arithmetic
  811. - Fixed setup defines
  812. ---
  813. ### GLM 0.8.4.2 final - 2009-10-19
  814. - Fixed Half float adds
  815. ---
  816. ### GLM 0.8.4.1 final - 2009-10-05
  817. - Updated documentation
  818. - Fixed MacOS X build
  819. ---
  820. ### GLM 0.8.4.0 final - 2009-09-16
  821. - Added GCC 4.4 and VC2010 support
  822. - Added matrix optimizations
  823. ---
  824. ### GLM 0.8.3.5 final - 2009-08-11
  825. - Fixed bugs
  826. ---
  827. ### GLM 0.8.3.4 final - 2009-08-10
  828. - Updated GLM according GLSL 1.5 spec
  829. - Fixed bugs
  830. ---
  831. ### GLM 0.8.3.3 final - 2009-06-25
  832. - Fixed bugs
  833. ---
  834. ### GLM 0.8.3.2 final - 2009-06-04
  835. - Added GLM_GTC_quaternion
  836. - Added GLM_GTC_type_precision
  837. ---
  838. ### GLM 0.8.3.1 final - 2009-05-21
  839. - Fixed old extension system.
  840. ---
  841. ### GLM 0.8.3.0 final - 2009-05-06
  842. - Added stable extensions.
  843. - Added new extension system.
  844. ---
  845. ### GLM 0.8.2.3 final - 2009-04-01
  846. - Fixed bugs.
  847. ---
  848. ### GLM 0.8.2.2 final - 2009-02-24
  849. - Fixed bugs.
  850. ---
  851. ### GLM 0.8.2.1 final - 2009-02-13
  852. - Fixed bugs.
  853. ---
  854. ### GLM 0.8.2 final - 2009-01-21
  855. - Fixed bugs.
  856. ---
  857. ### GLM 0.8.1 final - 2008-10-30
  858. - Fixed bugs.
  859. ---
  860. ### GLM 0.8.0 final - 2008-10-23
  861. - New method to use extension.
  862. ---
  863. ### GLM 0.8.0 beta3 - 2008-10-10
  864. - Added CMake support for GLM tests.
  865. ---
  866. ### GLM 0.8.0 beta2 - 2008-10-04
  867. - Improved half scalars and vectors support.
  868. ---
  869. ### GLM 0.8.0 beta1 - 2008-09-26
  870. - Improved GLSL conformance
  871. - Added GLSL 1.30 support
  872. - Improved API documentation
  873. ---
  874. ### GLM 0.7.6 final - 2008-08-08
  875. - Improved C++ standard comformance
  876. - Added Static assert for types checking
  877. ---
  878. ### GLM 0.7.5 final - 2008-07-05
  879. - Added build message system with Visual Studio
  880. - Pedantic build with GCC
  881. ---
  882. ### GLM 0.7.4 final - 2008-06-01
  883. - Added external dependencies system.
  884. ---
  885. ### GLM 0.7.3 final - 2008-05-24
  886. - Fixed bugs
  887. - Added new extension group
  888. ---
  889. ### GLM 0.7.2 final - 2008-04-27
  890. - Updated documentation
  891. - Added preprocessor options
  892. ---
  893. ### GLM 0.7.1 final - 2008-03-24
  894. - Disabled half on GCC
  895. - Fixed extensions
  896. ---
  897. ### GLM 0.7.0 final - 2008-03-22
  898. - Changed to MIT license
  899. - Added new documentation
  900. ---
  901. ### GLM 0.6.4 - 2007-12-10
  902. - Fixed swizzle operators
  903. ---
  904. ### GLM 0.6.3 - 2007-11-05
  905. - Fixed type data accesses
  906. - Fixed 3DSMax sdk conflict
  907. ---
  908. ### GLM 0.6.2 - 2007-10-08
  909. - Fixed extension
  910. ---
  911. ### GLM 0.6.1 - 2007-10-07
  912. - Fixed a namespace error
  913. - Added extensions
  914. ---
  915. ### GLM 0.6.0 : 2007-09-16
  916. - Added new extension namespace mecanium
  917. - Added Automatic compiler detection
  918. ---
  919. ### GLM 0.5.1 - 2007-02-19
  920. - Fixed swizzle operators
  921. ---
  922. ### GLM 0.5.0 - 2007-01-06
  923. - Upgrated to GLSL 1.2
  924. - Added swizzle operators
  925. - Added setup settings
  926. ---
  927. ### GLM 0.4.1 - 2006-05-22
  928. - Added OpenGL examples
  929. ---
  930. ### GLM 0.4.0 - 2006-05-17
  931. - Added missing operators to vec* and mat*
  932. - Added first GLSL 1.2 features
  933. - Fixed windows.h before glm.h when windows.h required
  934. ---
  935. ### GLM 0.3.2 - 2006-04-21
  936. - Fixed texcoord components access.
  937. - Fixed mat4 and imat4 division operators.
  938. ---
  939. ### GLM 0.3.1 - 2006-03-28
  940. - Added GCC 4.0 support under MacOS X.
  941. - Added GCC 4.0 and 4.1 support under Linux.
  942. - Added code optimisations.
  943. ---
  944. ### GLM 0.3 - 2006-02-19
  945. - Improved GLSL type conversion and construction compliance.
  946. - Added experimental extensions.
  947. - Added Doxygen Documentation.
  948. - Added code optimisations.
  949. - Fixed bugs.
  950. ---
  951. ### GLM 0.2 - 2005-05-05
  952. - Improve adaptative from GLSL.
  953. - Add experimental extensions based on OpenGL extension process.
  954. - Fixe bugs.
  955. ---
  956. ### GLM 0.1 - 2005-02-21
  957. - Add vec2, vec3, vec4 GLSL types
  958. - Add ivec2, ivec3, ivec4 GLSL types
  959. - Add bvec2, bvec3, bvec4 GLSL types
  960. - Add mat2, mat3, mat4 GLSL types
  961. - Add almost all functions