OpenGL Mathematics (GLM)
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
 
 
 

1562 lines
102 KiB

<?xml version="1.0" encoding="utf-8"?>
<glm copyright="Copyright © 2005 - 2011">
<downloads>
<section name="GLM - zip files">
<download name="GLM 0.9.1.2" date="12/04/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download"/>
<download name="GLM 0.9.1.1" date="17/03/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download"/>
<download name="GLM 0.9.1.0" date="03/03/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download"/>
<download name="GLM 0.9.1.B" date="13/02/2010" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download"/>
<download name="GLM 0.9.0.8" date="13/02/2010" size="3.3 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download"/>
<download name="GLM 0.9.1.A" date="31/01/2010" size="3.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download"/>
<download name="GLM 0.9.0.7" date="30/01/2010" size="1.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download"/>
<download name="GLM 0.9.0.6" date="21/12/2010" size="2.2 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.zip/download"/>
<download name="GLM 0.9.0.5" date="01/11/2010" size="2.2 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download"/>
<download name="GLM 0.9.0.4" date="04/10/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download"/>
<download name="GLM 0.9.0.3" date="26/08/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download"/>
<download name="GLM 0.9.0.2" date="08/07/2010" size="809 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.zip/download"/>
<download name="GLM 0.9.0.1" date="21/06/2010" size="727 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download"/>
<download name="GLM 0.9.0.0" date="25/05/2010" size="1.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download"/>
<download name="GLM 0.9.B.2" date="30/04/2010" size="1.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.zip/download"/>
<download name="GLM 0.9.B.1" date="03/04/2010" size="964 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download"/>
<download name="GLM 0.9.A.2" date="20/02/2010" size="1.3 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download"/>
<download name="GLM 0.9.A.1" date="09/02/2010" size="952 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download"/>
<download name="GLM 0.8.4.4" date="25/01/2010" size="1.1 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download"/>
<download name="GLM 0.8.4.3" date="14/11/2009" size="1.1 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download"/>
<download name="GLM 0.8.4.2" date="19/10/2009" size="1.1 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download"/>
<download name="GLM 0.8.4.1" date="03/10/2009" size="1.1 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.1/glm-0.8.4.1.zip/download"/>
<download name="GLM 0.8.4.0" date="16/09/2009" size="1.1 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.0/glm-0.8.4.0.zip/download"/>
<download name="GLM 0.8.3.5" date="11/08/2009" size="971 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.5/glm-0.8.3.5.zip/download"/>
<download name="GLM 0.8.3.4" date="10/08/2009" size="971 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.4/glm-0.8.3.4.zip/download"/>
<download name="GLM 0.8.3.3" date="25/06/2009" size="971 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.3/glm-0.8.3.3.zip/download"/>
<download name="GLM 0.8.3.2" date="04/06/2009" size="971 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.2/glm-0.8.3.2.zip/download"/>
<download name="GLM 0.8.3.1" date="21/05/2009" size="945 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.1/glm-0.8.3.1.zip/download"/>
<download name="GLM 0.8.3.0" date="06/05/2009" size="896 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.0/glm-0.8.3.0.zip/download"/>
<download name="GLM 0.8.2.3" date="01/04/2009" size="961 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.3/glm-0.8.2.3.zip/download"/>
<download name="GLM 0.8.2.2" date="24/02/2009" size="961 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.2/glm-0.8.2.2.zip/download"/>
<download name="GLM 0.8.2.1" date="13/02/2009" size="963 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.1/glm-0.8.2.1.zip/download"/>
<download name="GLM 0.8.2.0" date="21/01/2009" size="963 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.0/glm-0.8.2.0.zip/download"/>
<download name="GLM 0.8.1.0" date="30/10/2008" size="938 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.1.0/glm-0.8.1.0.zip/download"/>
<download name="GLM 0.8.0.0" date="23/10/2008" size="936 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.0.0/glm-0.8.0.0.zip/download"/>
<download name="GLM 0.7.6.0" date="08/08/2008" size="907 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.6.0/glm-0.7.6.0.zip/download"/>
<download name="GLM 0.7.5.0" date="05/07/2008" size="852 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.5.0/glm-0.7.5.0.zip/download"/>
<download name="GLM 0.7.4.0" date="06/01/2008" size="859 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.4.0/glm-0.7.4.0.zip/download"/>
<download name="GLM 0.7.3.0" date="05/24/2008" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.3.0/glm-0.7.3.0.zip/download"/>
<download name="GLM 0.7.2.0" date="04/27/2008" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.2.0/glm-0.7.2.0.zip/download"/>
<download name="GLM 0.7.1.0" date="03/24/2008" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.1.0/glm-0.7.1.0.zip/download"/>
<download name="GLM 0.7.0.0" date="03/22/2008" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.7.0.0/glm-0.7.0.0.zip/download"/>
<download name="GLM 0.6.4.0" date="12/10/2007" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.6.4.0/glm-0.6.4.0.zip/download"/>
<download name="GLM 0.6.3.0" date="11/05/2007" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.6.3.0/glm-0.6.3.0.zip/download"/>
<download name="GLM 0.6.2.0" date="10/08/2007" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.6.2.0/glm-0.6.2.0.zip/download"/>
<download name="GLM 0.6.1.0" date="10/07/2007" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.6.1.0/glm-0.6.1.0.zip/download"/>
<download name="GLM 0.6.0.0" date="09/16/2007" size="1.8 MB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.6.0.0/glm-0.6.0.0.zip/download"/>
<download name="GLM 0.5.1.0" date="02/19/2007" size="2.3 MB" link="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download"/>
<download name="GLM 0.5.0.0" date="01/06/2007" size="2.4 MB" link="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download"/>
<download name="GLM 0.4.1.0" date="05/22/2006" size="1.6 MB" link="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download"/>
<download name="GLM 0.4.0.0" date="05/17/2006" size="905 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download"/>
<download name="GLM 0.3.2.0" date="04/22/2006" size="955 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download"/>
<download name="GLM 0.3.1.0" date="03/28/2006" size="963 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download"/>
<download name="GLM 0.3.0.0" date="02/19/2006" size="945 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download"/>
<download name="GLM 0.2.0.0" date="05/05/2005" size="194 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.2.zip?download"/>
<download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/>
</section>
<section name="GLM - 7z files">
<download name="GLM 0.9.1.2" date="12/04/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.7z/download"/>
<download name="GLM 0.9.1.1" date="17/03/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.7z/download"/>
<download name="GLM 0.9.1.0" date="03/03/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.7z/download"/>
<download name="GLM 0.9.1.B" date="13/02/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.7z/download"/>
<download name="GLM 0.9.0.8" date="13/02/2011" size="1.9 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.7z/download"/>
<download name="GLM 0.9.1.A" date="31/01/2011" size="2.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.7z/download"/>
<download name="GLM 0.9.0.7" date="30/01/2011" size="832 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.7z/download"/>
<download name="GLM 0.9.0.6" date="21/12/2010" size="1.6 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.7z/download"/>
<download name="GLM 0.9.0.5" date="01/11/2010" size="1.6 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.7z/download"/>
<download name="GLM 0.9.0.4" date="04/10/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.7z/download"/>
<download name="GLM 0.9.0.3" date="26/08/2010" size="684 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download"/>
<download name="GLM 0.9.0.2" date="08/07/2010" size="651 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.7z/download"/>
<download name="GLM 0.9.0.1" date="21/06/2010" size="569 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download"/>
<download name="GLM 0.9.0.0" date="25/05/2010" size="514 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download"/>
<download name="GLM 0.9.B.2" date="30/04/2010" size="555 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.7z/download"/>
<download name="GLM 0.9.B.1" date="03/04/2010" size="414 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download"/>
<download name="GLM 0.9.A.2" date="20/02/2010" size="726 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download"/>
<download name="GLM 0.9.A.1" date="09/02/2010" size="391 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download"/>
<download name="GLM 0.8.4.4" date="25/01/2010" size="479 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download"/>
<download name="GLM 0.8.4.3" date="14/11/2009" size="443 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download"/>
<download name="GLM 0.8.4.2" date="19/10/2009" size="443 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download"/>
<download name="GLM 0.8.4.1" date="03/10/2009" size="443 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.1/glm-0.8.4.1.7z/download"/>
<download name="GLM 0.8.4.0" date="16/09/2009" size="439 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.0/glm-0.8.4.0.7z/download"/>
<download name="GLM 0.8.3.5" date="11/08/2009" size="405 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.5/glm-0.8.3.5.7z/download"/>
<download name="GLM 0.8.3.4" date="10/08/2009" size="405 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.4/glm-0.8.3.4.7z/download"/>
<download name="GLM 0.8.3.3" date="25/06/2009" size="405 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.3/glm-0.8.3.3.7z/download"/>
<download name="GLM 0.8.3.2" date="04/06/2009" size="405 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.2/glm-0.8.3.2.7z/download"/>
<download name="GLM 0.8.3.1" date="21/05/2009" size="399 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.1/glm-0.8.3.1.7z/download"/>
<download name="GLM 0.8.3.0" date="06/05/2009" size="359 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.0/glm-0.8.3.0.7z/download"/>
<download name="GLM 0.8.2.3" date="01/04/2009" size="378 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.3/glm-0.8.2.3.7z/download"/>
<download name="GLM 0.8.2.2" date="24/02/2009" size="378 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.2/glm-0.8.2.2.7z/download"/>
<download name="GLM 0.8.2.1" date="13/02/2009" size="381 KB" link="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.1/glm-0.8.2.1.7z/download"/>
<download name="GLM 0.8.2.0" date="21/01/2009" size="381 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download"/>
<download name="GLM 0.8.1.0" date="30/10/2008" size="372 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download"/>
<download name="GLM 0.8.0.0" date="23/10/2008" size="370 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download"/>
<download name="GLM 0.7.6.0" date="08/08/2008" size="387 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download"/>
<download name="GLM 0.7.5.0" date="05/07/2008" size="366 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download"/>
<download name="GLM 0.7.4.0" date="06/01/2008" size="372 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download"/>
<download name="GLM 0.7.3.0" date="05/24/2008" size="657 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download"/>
<download name="GLM 0.7.2.0" date="04/27/2008" size="646 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download"/>
<download name="GLM 0.7.1.0" date="03/24/2008" size="635 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download"/>
<download name="GLM 0.7.0.0" date="03/22/2008" size="635 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download"/>
<download name="GLM 0.6.4.0" date="12/10/2007" size="612 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download"/>
<download name="GLM 0.6.3.0" date="11/05/2007" size="633 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download"/>
<download name="GLM 0.6.2.0" date="10/08/2007" size="645 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download"/>
<download name="GLM 0.6.1.0" date="10/07/2007" size="645 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download"/>
<download name="GLM 0.6.0.0" date="09/16/2007" size="646 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download"/>
<download name="GLM 0.5.1.0" date="02/19/2007" size="807 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download"/>
<download name="GLM 0.5.0.0" date="01/06/2007" size="862 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download"/>
<download name="GLM 0.4.1.0" date="05/22/2006" size="533 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download"/>
<download name="GLM 0.4.0.0" date="05/17/2006" size="262 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.4.0.7z?download"/>
</section>
<section name="Raytrace">
<download name="Raytrace v1.0 (exe)" date="16-09-2007" size="766 KB" link="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download"/>
<download name="Raytrace v1.0 (zip)" date="16-09-2007" size="1.4 MB" link="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download"/>
<download name="Raytrace b3.0 (exe)" date="06-01-2007" size="751 KB" link="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download"/>
<download name="Raytrace b3.0 (zip)" date="06-01-2007" size="1.1 MB" link="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download"/>
<download name="Raytrace b2.0 (exe)" date="19-02-2006" size="1.0 MB" link="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.exe?download"/>
<download name="Raytrace b2.0 (zip)" date="19-02-2006" size="1.4 MB" link="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download"/>
<download name="Raytrace b1.0 (zip)" date="05-05-2005" size="1.3 MB" link="http://prdownloads.sourceforge.net/glf/raytrace-b1.0.zip?download"/>
<download name="Raytrace b1.0 (7z )" date="05-05-2005" size="808 KB" link="http://prdownloads.sourceforge.net/glf/raytrace-b1.0.7z?download"/>
</section>
<section name="Humus's Framework">
<download name="AmbientApertureLighting (zip)" date="22-10-2008" size="2.38 MB" link="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download"/>
</section>
<section name="Philip Rideout's Catmull-Clark Subdivision">
<download name="CatmullClark (zip)" date="24-01-2007" size="605 KB" link="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download"/>
</section>
</downloads>
<ideas>
<idea>Euler angles operation with specified rotation order</idea>
<idea>Cast to other toolkit (D3D, some engines)</idea>
<idea>Arrays</idea>
<idea>SIMD optimisations</idea>
<idea>Standard output stream</idea>
<idea>In place operations</idea>
</ideas>
<schedule>
<release version="0.9.3">More tests.</release>
<release version="0.9.4">Arrays.</release>
<release version="0.9.5">SIMD optimizations.</release>
<release version="0.9.6">In place operations.</release>
</schedule>
<todo>
<entry>RGBE.</entry>
<entry>row matrices.</entry>
<entry>fixed numbers</entry>
<entry>row and column major matrices</entry>
</todo>
<page_news>
<news index="0063" date="15/04/2011" title="GLM 0.9.1.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
Bug fixes Only for GLM 0.9.1.2.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.zip/download">GLM 0.9.1.2 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.2/glm-0.9.1.2.7z/download">GLM 0.9.1.2 (7z)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0062" date="17/03/2011" title="GLM 0.9.1.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.1.1 fixes some bugs, warnings on Clang C++ and clean up a bit the code.
</paragraph>
<paragraph>
If you have uncounter any issue with GLM 0.9.1.0, please download this revision.
</paragraph>
<paragraph>
Finally, the work has started for GLM 0.9.2 so if you have requests don't forget to <link href="https://sourceforge.net/apps/trac/ogl-math/newticket">submit them!</link>
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.zip/download">GLM 0.9.1.1 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.1/glm-0.9.1.1.7z/download">GLM 0.9.1.1 (7z)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0061" date="03/03/2011" title="GLM 0.9.1.0 final released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
Finally, GLM 0.9.1 branch is reaching the status of stable with
<link href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download">GLM 0.9.1.0</link>.
</paragraph>
<paragraph>
From GLM 0.9.1 beta, mainly bugs has been fixed. GLM has evolved on many sides since GLM 0.9.0:
Improved documentation (manual and doxygen), better test framework, simplified setup/options/configration of GLM and new experimental SIMD API.
</paragraph>
<paragraph>
GLM 0.9.1.0 is not 100% backward compatile with
<link href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download">GLM 0.9.0.8</link>
but mainly advanced usages should be affected by the differencies.
Have a look at the <link href="http://glm.g-truc.net/glm-0.9.1.pdf">GLM manual</link> for more information on how to use GLM 0.9.1.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.zip/download">GLM 0.9.1.0 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.0/glm-0.9.1.0.7z/download">GLM 0.9.1.0 (7z)</source>
<source type="Link" href="http://glm.g-truc.net/glm-0.9.1.pdf">GLM 0.9.1 manual</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0060" date="13/02/2011" title="GLM 0.9.0.8 and GLM 0.9.1 beta released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
The stable version, GLM 0.9.0.8, adds the operator * for quaternion products and deprecated the cross function previously used for the same purpose.
Also, it clarifies that GLM is a header only library when a user try to build it. Once more, there is nothing to build.
</paragraph>
<paragraph>
The development version, GLM 0.9.1 beta, provides an improved <link href="http://glm.g-truc.net/html-0.9.1/index.html">API documentation</link> by
<link href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&amp;User=23530">Alfonse Reinheart</link>,
author of <link href="http://www.arcsynthesis.org/gltut/">a great OpenGL tutorial</link> which uses GLM.
This version also improves the SIMD extensions and it fixes many bugs.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.zip/download">GLM 0.9.1.B (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.B/glm-0.9.1.B.7z/download">GLM 0.9.1.B (7z)</source>
<source type="Link" href="http://glm.g-truc.net/glm-0.9.1.pdf">GLM 0.9.1 manual</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.zip/download">GLM 0.9.0.8 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.8/glm-0.9.0.8.7z/download">GLM 0.9.0.8 (7z)</source>
<source type="Link" href="http://glm.g-truc.net/glm-0.9.0.pdf">GLM 0.9.0 manual</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0059" date="31/01/2011" title="GLM 0.9.1 alpha released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
This new version of GLM is bringing a lot of improvements and maybe too many considering the development time it has required:
API exposing SIMD implementation but also some new, safe and feature complet swizzling functions and a new setup API.
All this is described in the largely updated <link href="http://glm.g-truc.net/glm-0.9.1.pdf">GLM manual</link>.
</paragraph>
<paragraph>
With the new setup system, GLM detects automatically the compiler settings to adapt its implementation to the flag set at build time.
It will automatically enable C++0x features, SSE optimizations and the display configuration informations at build-time.
The automatic setup can be overdrive by the GLM user.
</paragraph>
<paragraph>
The SIMD API maintly focus on vec4 and mat4 implementations that are embodied by the types <codeword>simdVec4</codeword> and <codeword>simdMat4</codeword>.
The implemention cover most of the common functions, the geometry functions and the matrix functions as described in the GLSL specifications.
Because it is hight inefficient to access individual components of a SIMD register, the <codeword>simdVec4</codeword> doesn't allow it.
To reflect this constraint, the <codeword>simdVec4</codeword> has to be converted to <codeword>vec4</codeword> first which would be effectively handle
by the compiler thank to the function <codeword>simdCast</codeword>.
Furthermore, GLM provides some specials functions like simdDot4 that returns a <codeword>simdVec4</codeword> instead of a float
with the duplicated dot product value in each components
and ensure that no unnecessary component manipulations are performed (typically <codeword>__m128</codeword> to <codeword>float</codeword>
and <codeword>float</codeword> to <codeword>__m128</codeword>).
This implementation can probably be improve in many ways so don't hesitate to send me some feedbacks.
</paragraph>
<paragraph>
GLM 0.9.1 is not 100% backward compatible with GLM 0.9.0 but mostly advanced usages should be concerned by this compatibility issues.
</paragraph>
<source-list>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.zip/download">GLM 0.9.1.A (zip, 2.7 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.1.A/glm-0.9.1.A.7z/download">GLM 0.9.1.A (7z, 1.7 MB)</source>
<source type="Link" href="http://glm.g-truc.net/glm-0.9.1.pdf" title="GLM Manual" />
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket" title="Submit a feature request or a bug report" />
</source-list>
</news>
<news index="0058" date="30/01/2011" title="GLM 0.9.0.7 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.7 provides 2 main changes: GLSL 4.10 packing functions but also == and != operators for every types.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.zip/download">GLM 0.9.0.7 (zip, 1.4 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.7/glm-0.9.0.7.7z/download">GLM 0.9.0.7 (7z, 832 KB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0057" date="21/12/2010" title="GLM 0.9.0.6 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.6 is a new update of GLM built over GLM's user bug reports.
It mainly fixes issues regarding non-squared matrices but also provides multiple extensions corrections as well.
</paragraph>
<paragraph>
I expect to release GLM 0.9.1.0 in Junuary but I might continue to update GLM 0.9.0.X as there are minor incompatibilities.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.zip/download">GLM 0.9.0.6 (zip, 2.2 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.6/glm-0.9.0.6.7z/download">GLM 0.9.0.6 (7z, 1.6 MB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0056" date="01/11/2010" title="GLM 0.9.0.5 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.5 fixes the usual set of bugs, some allowing a better <link href="http://clang.llvm.org/cxx_status.html">Clang</link> support.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download">GLM 0.9.0.5 (zip, 2.2 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.7z/download">GLM 0.9.0.5 (7z, 1.6 MB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0055" date="04/10/2010" title="GLM 0.9.0.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.4 revision mainly fixes bugs.
It also contains a contribution by Arnaud Masserann, a autoexp.dat file to make GLM looks nicer in Visual Studio debugger.
To take advantage of this file, edit ${VISUALSTUDIO_DIRECTORY}/common7/packages/debugger/autoexp.dat file and add the content of the file util/autoexp.txt
included in GLM 0.9.0.4.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download">GLM 0.9.0.4 (zip, 1.5 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.7z/download">GLM 0.9.0.4 (7z, 1.2 MB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0054" date="26/08/2010" title="GLM 0.9.0.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.3 fixes major issues on non-squared matrices.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download">GLM 0.9.0.3 (zip, 1.2 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download">GLM 0.9.0.3 (7z, 684 KB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0053" date="08/07/2010" title="GLM 0.9.0.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
Second update of GLM 0.9.0 with more bug fixes.
It also contains a new extension called GLM_GTX_int_10_10_10_2 to use GLM with OpenGL and
<link href="http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt">GL_ARB_vertex_type_2_10_10_10_rev</link>.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.zip/download">GLM 0.9.0.2 (zip, 809 KB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.7z/download">GLM 0.9.0.2 (7z, 651 KB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0052" date="21/06/2010" title="GLM 0.9.0.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
This revision only fixes few extensions bugs.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">GLM 0.9.0.1 (zip, 714 KB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download">GLM 0.9.0.1 (7z, 556 KB)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0051" date="25/05/2010" title="GLM 0.9.0.0 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible.
GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects.
</paragraph>
<paragraph>
To continue making GLM a better library, 2 mailing lists have been created for users and developers.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download">GLM 0.9.0.0 (zip, 1.0 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download">GLM 0.9.0.0 (7z, 514 KB)</source>
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-users">Register to GLM mailing list for users</source>
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-devel">Register to GLM mailing list for developers</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0050" date="30/04/2010" title="GLM 0.9 Beta 2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9.
</paragraph>
<paragraph>
The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release.
</paragraph>
<paragraph>
Various bug fixes and manual updates have been done too.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.zip/download">GLM 0.9.B.2 (zip, 1.07 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.7z/download">GLM 0.9.B.2 (7z, 555 KB)</source>
</news>
<news index="0049" date="03/04/2010" title="GLM 0.9 Beta 1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
A new development version of GLM 0.9 is available.
</paragraph>
<paragraph>
This version is based on GLSL 4.0 and supports the new common and integer functions.
Also a long and frequently asked feature has been implemented: inplicit conversions.
However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++.
</paragraph>
<paragraph>
Reaching the beta status, this new features close the feature list of GLM 0.9.
Further development releases may happen before the final release.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download">GLM 0.9.B.1 (zip, 964 KB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download">GLM 0.9.B.1 (7z, 414 KB)</source>
</news>
<news index="0048" date="20/02/2010" title="GLM 0.9 Alpha 2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download">GLM 0.9.A.2 (zip, 1.3 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download">GLM 0.9.A.2 (7z, 726 KB)</source>
</news>
<news index="0047" date="09/02/2010" title="GLM 0.9 Alpha 1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
First step until a major release for GLM with this first alpha of GLM 0.9.
</paragraph>
<paragraph>
This version brings a large internal redesign to improve the library reliability and optimized some parts.
It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible.
</paragraph>
<paragraph>
For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy.
</paragraph>
<paragraph>
This release is still UNSTABLE and not recommanded for commertial products.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download">GLM 0.9.A.1 (zip, 950 KB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download">GLM 0.9.A.1 (7z, 391 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0046" date="25/01/2010" title="GLM 0.8.4.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This update just removes some warnings
</paragraph>
<paragraph>
By the way, if you have questions about GLM, a good place for those is the <link href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1">OpenGL.org Toolkits forum</link>.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download">GLM 0.8.4.4 (zip, 1.1 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download">GLM 0.8.4.4 (7z, 479 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0045" date="16/11/2009" title="GLM 0.8.4.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This version fixed half scalars and half vectors arithmetics.
This is a really slow practice that should be avoid.
Half floating point value should be use only to store GPU data.
GPUs have native support for half values, not x86 CPUs.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download">GLM 0.8.4.3 (zip, 1.1 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download">GLM 0.8.4.3 (7z, 463 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0044" date="19/10/2009" title="GLM 0.8.4.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This version is a really minor updates, fixing single issue with half float types.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download">GLM 0.8.4.2 (zip, 1.1 MB)</source>
<source type="Download" href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download">GLM 0.8.4.2 (7z, 443 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0043" date="05/10/2009" title="GLM 0.8.4.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.zip?download">GLM 0.8.4.1 (zip, 1.1 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.7z?download">GLM 0.8.4.1 (7z, 443 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0042" date="16/09/2009" title="GLM 0.8.4.0 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.zip?download">GLM 0.8.4.0 (zip, 1.1 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.7z?download">GLM 0.8.4.0 (7z, 439 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0041" date="11/08/2009" title="GLM 0.8.3.5 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Fixed extension bugs introduced by core update.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.zip?download">GLM 0.8.3.5 (zip, 971 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.7z?download">GLM 0.8.3.5 (7z, 405 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0040" date="10/08/2009" title="GLM 0.8.3.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.zip?download">GLM 0.8.3.4 (zip, 971 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.7z?download">GLM 0.8.3.4 (7z, 405 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0039" date="25/06/2009" title="GLM 0.8.3.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Fixed varius bugs.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.zip?download">GLM 0.8.3.3 (zip, 971 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.7z?download">GLM 0.8.3.3 (7z, 405 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0038" date="04/06/2009" title="GLM 0.8.3.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.zip?download">GLM 0.8.3.2 (zip, 971 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.7z?download">GLM 0.8.3.2 (7z, 405 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0037" date="21/05/2009" title="GLM 0.8.3.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.zip?download">GLM 0.8.3.1 (zip, 954 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.7z?download">GLM 0.8.3.1 (7z, 402 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0036" date="06/05/2009" title="GLM 0.8.3.0 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This version brings to main changed: Stable extensions and a new extension system.
</paragraph>
<paragraph>
The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release!
</paragraph>
<paragraph>
Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace.
</paragraph>
<paragraph>
Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.zip?download">GLM 0.8.3.0 (zip, 896 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.7z?download">GLM 0.8.3.0 (7z, 359 KB)</source>
<source type="Link" href="./code.html">Code samples page</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0035" date="01/04/2009" title="GLM 0.8.2.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.zip?download">GLM 0.8.2.3 (zip, 963 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.7z?download">GLM 0.8.2.3 (7z, 381 KB)</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0034" date="13/02/2009" title="GLM 0.8.2.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.zip?download">GLM 0.8.2.1 (zip, 963 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.7z?download">GLM 0.8.2.1 (7z, 381 KB)</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0033" date="21/01/2009" title="GLM 0.8.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.zip?download">GLM 0.8.2 (zip, 963 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download">GLM 0.8.2 (7z, 381 KB)</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0032" date="19/11/2008" title="GLM current developments" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases.
</paragraph>
<paragraph>
If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome.
</paragraph>
<paragraph>
Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1.
</paragraph>
<paragraph>
Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December.
</paragraph>
<source type="Link" href="https://sourceforge.net/tracker2/?group_id=129808&amp;atid=1126032">Tracker</source>
</news>
<news index="0031" date="30/10/2008" title="GLM 0.8.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.zip?download">GLM 0.8.1 (zip, 938 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download">GLM 0.8.1 (7z, 372 KB)</source>
<source type="Link" href="./glm-manual.pdf">GLM 0.8.1 Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0030" date="23/10/2008" title="GLM 0.8.0 final released" image="image/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers.
</paragraph>
<paragraph>
Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications.
</paragraph>
<paragraph>
It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all.
</paragraph>
<paragraph>
On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components.
</paragraph>
<paragraph>
On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information.
</paragraph>
<paragraph>
Have a look on the manual and the changelog for more information. Don't forget to send your <link href="./about.html">feedback</link> and enjoy!
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.zip?download">GLM 0.8.0 (zip, 936 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download">GLM 0.8.0 (7z, 370 KB)</source>
<source type="Link" href="./glm-manual.pdf">GLM 0.8.0 Manual</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="http://www.ozone3d.net/smf/index.php/topic,1682.0.html">Post a comment</source>
</news>
<news index="0029" date="22/10/2008" title="A Humus demo to feature GLM 0.8.0" image="image/0029.jpg" image-mini="image/0029-mini.jpg">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Ambient aperture lighting <link href="http://www.humus.name">Humus</link> demo have been updated to use GLM as math library.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download">Updated demo + all sources (zip, 2.38 MB)</source>
<source type="Download" href="http://www.humus.name/3D/AmbientApertureLighting.zip">Original demo (zip, 1.40 MB)</source>
<source type="Link" href="http://www.ozone3d.net/smf/index.php/topic,1681.0.html">Post a comment</source>
</news>
<news index="0028" date="18/10/2008" title="Webside updated" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
As you can see the website get a little update to prepare GLM 0.8.0 final release.
</paragraph>
<paragraph>
GLM 0.8.0 final should be release during the week.
</paragraph>
</news>
<news index="0027" date="10/10/2008" title="GLM 0.8.0 beta 3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release fixes some bugs and add few features though extensions. The development is now based on <link href="http://www.cmake.org">CMake</link> to make easier cross platform tests and project management.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.zip?download">GLM 0.8.0 Beta 3 (zip, 819 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.7z?download">GLM 0.8.0 Beta 3 (7z, 345 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</source>
</news>
<news index="0026" date="04/10/2008" title="GLM 0.8.0 beta 2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers
</paragraph>
<paragraph>
It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++.
</paragraph>
<paragraph>
Various bugs and updates of extensions have been done too. Final release is coming...
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.zip?download">GLM 0.8.0 Beta 2 (zip, 798 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.7z?download">GLM 0.8.0 Beta 2 (7z, 327 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</source>
</news>
<news index="0025" date="26/09/2008" title="GLM 0.8.0 beta 1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types.
</paragraph>
<paragraph>
GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used.
</paragraph>
<paragraph>
Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.zip?download">GLM 0.8.0 Beta 1 (zip, 786 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.7z?download">GLM 0.8.0 Beta 1 (7z, 321 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</source>
</news>
<news index="0024" date="08/08/2008" title="GLM 0.7.6 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.zip?download">GLM 0.7.6 (zip, 907 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download">GLM 0.7.6 (7z, 387 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
</news>
<news index="0023" date="05/07/2008" title="GLM 0.7.5 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.zip?download">GLM 0.7.5 (zip, 852 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download">GLM 0.7.5 (7z, 366 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
</news>
<news index="0022" date="01/06/2008" title="GLM 0.7.4 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.4 introduces a new system to manage external dependencies.
</paragraph>
<paragraph>
It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions.
</paragraph>
<paragraph>
The mechanism is described into the updated manual.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.zip?download">GLM 0.7.4 (zip, 859 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download">GLM 0.7.4 (7z, 372 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
<source type="Link" href="./glm-manual.pdf">Manual</source>
</news>
<news index="0021" date="24/05/2008" title="GLM 0.7.3 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.3 is released. This version fixes few bugs and add few extensions
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.zip?download">GLM 0.7.3 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download">GLM 0.7.3 (7z, 635 KB)</source>
<source type="Link" href="./changelog.html">Full changelog</source>
</news>
<news index="0020" date="27/04/2008" title="GLM 0.7.2 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options.
</paragraph>
<paragraph>
#define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option.
</paragraph>
<paragraph>
#define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers.
</paragraph>
<paragraph>
#define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases.
</paragraph>
<paragraph>
More information on these topic are available in GLM manual section 5 "Known issues".
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.zip?download">GLM 0.7.2 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download">GLM 0.7.2 (7z, 635 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0019" date="24/03/2008" title="GLM 0.7.1 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.1 is available under MIT license. It fixes bugs with GCC.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.zip?download">GLM 0.7.1 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download">GLM 0.7.1 (7z, 635 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0018" date="22/03/2008" title="GLM 0.7.0 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better!
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.zip?download">GLM 0.7.0 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download">GLM 0.7.0 (7z, 635 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0017" date="10/12/2007" title="GLM 0.6.4 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.6.4 is available and fixes some swizzle operator issues.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.zip?download">GLM 0.6.4 (zip, 1.7 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download">GLM 0.6.4 (7z, 612 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0016" date="05/11/2007" title="GLM 0.6.3 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.zip?download">GLM 0.6.3 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download">GLM 0.6.3 (7z, 633 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0015" date="08/10/2007" title="GLM 0.6.2 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.6.2 fixes an error on an extension.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.zip?download">GLM 0.6.2 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download">GLM 0.6.2 (7z, 632 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0014" date="07/10/2007" title="GLM 0.6.1 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.zip?download">GLM 0.6.1 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download">GLM 0.6.1 (7z, 632 KB)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0013" date="16/09/2007" title="GLM 0.6.0 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.zip?download">GLM 0.6.0 (zip, 1.8 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download">GLM 0.6.0 (7z, 666 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download">Raytracer v1.0 (exe)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download">Raytracer v1.0 (zip)</source>
<source type="Download" href="./changelog.html">Full changelog</source>
</news>
<news index="0012" date="19/02/2007" title="GLM 0.5.1 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release fixes some issues with swizzle operators.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download">GLM 0.5.1 (zip, 2.3 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download">GLM 0.5.1 (7z, 789 KB)</source>
</news>
<news index="0011" date="26/01/2007" title="Cattmull Clark subdivision sample">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of <link href="http://prideout.net">Philip Rideout</link>.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download">CatmullClark sample (zip, 605 KB)</source>
</news>
<news index="0010" date="06/01/2007" title="GLM 0.5.0 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM.
</paragraph>
<paragraph>
It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions.
</paragraph>
<paragraph>
The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible.
</paragraph>
<paragraph>
Now, GLM development is taking advantages of <link href="http://www.sf.net">SourceForge.net</link> services: a <link href="https://sourceforge.net/tracker/?group_id=129808&amp;atid=901445">bug tracker system</link> and the development source code is publicly available on <link href="https://svn.sourceforge.net/svnroot/glf">SF.net SVN server</link>.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download">GLM 0.5.0 (zip, 2.4 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download">GLM 0.5.0 (7z, 843 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download">Raytracer b3.0 (exe, 751 KB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download">Raytracer b3.0 (zip, 1.1 MB)</source>
</news>
<news index="0009" date="22/05/2006" title="GLM 0.4.1 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
A GLM update is available. It simply includes some examples for a sweet start with GLM.
</paragraph>
<paragraph>
The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download">GLM 0.4.1 (zip, 1.6 MB)</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download">GLM 0.4.1 (7z, 521 KB)</source>
</news>
<news index="0008" date="17/05/2006" title="GLM 0.4.0 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required.
</paragraph>
<paragraph>
The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download">GLM 0.4.0</source>
</news>
<news index="0007" date="23/04/2006" title="Roadmap for the years">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension.
</paragraph>
<paragraph>
Version 0.5 will integrate GLSL 1.2 features to GLM core.
</paragraph>
<paragraph>
Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;).
</paragraph>
</news>
<news index="0006" date="22/04/2006" title="GLM 0.3.2 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download">GLM 0.3.2</source>
</news>
<news index="0005" date="28/03/2006" title="GLM 0.3.1 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations.
</paragraph>
<paragraph>
Further release will prodive GLSL 1.2 compliances.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download">GLM 0.3.1</source>
</news>
<news index="0004" date="19/02/2006" title="GLM 0.3 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added.
</paragraph>
<paragraph>
This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download">Raytrace</source>
<source type="Documentation" href="../html/index.html">Online documentation</source>
</news>
<news index="0003" date="06/05/2005" title="GLM 0.2 released">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features.
</paragraph>
<paragraph>
Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms.
</paragraph>
<paragraph>
To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities.
</paragraph>
</news>
<news index="0002" date="04/05/2005" title="English pages">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
The english section of this site is now available.
</paragraph>
</news>
<news index="0001" date="21/02/2005" title="GLM 0.1 is available">
<redacteur href="mailto:contact@g-truc.net">Groove</redacteur>
<paragraph>
This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions.
</paragraph>
<paragraph>
For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm".
</paragraph>
<paragraph>
This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4.
</paragraph>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download">GLM 0.1 User Release</source>
<source type="Download" href="http://prdownloads.sourceforge.net/glf/glm-0.1-uc.zip?download">GLM 0.1 Contributor Release</source>
<source type="Documentation" href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/GLSLangSpec.Full.1.10.59.pdf">GLSL 1.10.59 specifications</source>
</news>
</page_news>
<codes>
<code title="Compute a triangle normal:">
<line>
<keyword>#include </keyword>
<string>&lt;glm/glm.hpp&gt;</string>
</line>
<line>
</line>
<line>
<keyword>void </keyword> computeNormal(triangle &amp; Triangle)
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>vec3 </userword><keyword>const </keyword> &amp; a = Triangle.Position[0];
</line>
<line align="32px">
glm::<userword>vec3 </userword><keyword>const </keyword> &amp; b = Triangle.Position[1];
</line>
<line align="32px">
glm::<userword>vec3 </userword><keyword>const </keyword> &amp; c = Triangle.Position[2];
</line>
<line align="32px">
Triangle.Normal = glm::normalize(glm::cross(c - a, b - a));
</line>
<line>
}
</line>
</code>
<code title="Matrix transform:">
<line>
<comment>// glm::vec3, glm::vec4, glm::ivec4, glm::mat4</comment>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/glm.hpp&gt; </string>
</line>
<line>
<comment>// glm::perspective</comment>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/gtc/matrix_projection.hpp&gt; </string>
</line>
<line>
<comment>// glm::translate, glm::rotate, glm::scale</comment>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/gtc/matrix_transform.hpp&gt; </string>
</line>
<line>
<comment>// glm::value_ptr</comment>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/gtc/type_ptr.hpp&gt; </string>
</line>
<line>
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>mat4</userword> Projection =
</line>
<line align="64px">
glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
</line>
<line align="32px">
glm::<userword>mat4</userword> ViewTranslate = glm::translate(
</line>
<line align="64px">
glm::<userword>mat4</userword>(1.0f),
</line>
<line align="64px">
glm::<userword>vec3</userword>(0.0f, 0.0f, -Translate));
</line>
<line align="32px">
glm::<userword>mat4</userword> ViewRotateX = glm::rotate(
</line>
<line align="64px">
ViewTranslate,
</line>
<line align="64px">
Rotate.y, glm::<userword>vec3</userword>(-1.0f, 0.0f, 0.0f));
</line>
<line align="32px">
glm::<userword>mat4</userword> View = glm::rotate(
</line>
<line align="64px">
ViewRotateX,
</line>
<line align="64px">
Rotate.x, glm::<userword>vec3</userword>(0.0f, 1.0f, 0.0f));
</line>
<line align="32px">
glm::mat4 Model = glm::scale(
</line>
<line align="64px">
glm::<userword>mat4</userword>(1.0f),
</line>
<line align="64px">
glm::<userword>vec3</userword>(0.5f));
</line>
<line align="32px">
glm::<userword>mat4</userword> MVP = Projection * View * Model;
</line>
<line>
</line>
<line align="32px">
glUniformMatrix4fv(
</line>
<line align="64px">
LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
</line>
<line>
}
</line>
</code>
<code title="Vector types:">
<line>
<keyword>#include </keyword>
<string>&lt;glm/glm.hpp&gt;</string>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/gtx/type_precision.hpp&gt;</string>
</line>
<line>
</line>
<line>
std::size_t <keyword>const </keyword>VertexCount = 4;
</line>
<line>
</line>
<line>
<comment>// Float quad geometry</comment>
</line>
<line>
std::size_t <keyword>const </keyword>PositionSizeF32 = VertexCount * <keyword>sizeof</keyword>(glm::<userword>vec2</userword>);
</line>
<line>
glm::<userword>vec2 </userword><keyword>const </keyword>PositionDataF32[VertexCount] =
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>vec2</userword>(-1.0f,-1.0f),
</line>
<line align="32px">
glm::<userword>vec2</userword>( 1.0f,-1.0f),
</line>
<line align="32px">
glm::<userword>vec2</userword>( 1.0f, 1.0f),
</line>
<line align="32px">
glm::<userword>vec2</userword>(-1.0f, 1.0f)
</line>
<line>
};
</line>
<line>
</line>
<line>
<comment>// Half-float quad geometry</comment>
</line>
<line>
std::size_t <keyword>const </keyword>PositionSizeF16 = VertexCount * <keyword>sizeof</keyword>(glm::<userword>hvec2</userword>);
</line>
<line>
glm::<userword>hvec2 </userword><keyword>const </keyword>PositionDataF16[VertexCount] =
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>hvec2</userword>(-1.0f, -1.0f),
</line>
<line align="32px">
glm::<userword>hvec2</userword>( 1.0f, -1.0f),
</line>
<line align="32px">
glm::<userword>hvec2</userword>( 1.0f, 1.0f),
</line>
<line align="32px">
glm::<userword>hvec2</userword>(-1.0f, 1.0f)
</line>
<line>
};
</line>
<line>
</line>
<line>
<comment>// 8 bits signed integer quad geometry</comment>
</line>
<line>
std::size_t <keyword>const </keyword>PositionSizeI8 = VertexCount * <keyword>sizeof</keyword>(glm::<userword>i8vec2</userword>);
</line>
<line>
glm::<userword>i8vec2 </userword><keyword>const </keyword> PositionDataI8[VertexCount] =
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>i8vec2</userword>(-1,-1),
</line>
<line align="32px">
glm::<userword>i8vec2</userword>( 1,-1),
</line>
<line align="32px">
glm::<userword>i8vec2</userword>( 1, 1),
</line>
<line align="32px">
glm::<userword>i8vec2</userword>(-1, 1)
</line>
<line>
};
</line>
<line>
</line>
<line>
<comment>// 32 bits signed integer quad geometry</comment>
</line>
<line>
std::size_t <keyword>const </keyword>PositionSizeI32 = VertexCount * <keyword>sizeof</keyword>(glm::<userword>i32vec2</userword>);
</line>
<line>
glm::<userword>i32vec2 </userword><keyword>const </keyword>PositionDataI32[VertexCount] =
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>i32vec2 </userword>(-1,-1),
</line>
<line align="32px">
glm::<userword>i32vec2 </userword>( 1,-1),
</line>
<line align="32px">
glm::<userword>i32vec2 </userword>( 1, 1),
</line>
<line align="32px">
glm::<userword>i32vec2 </userword>(-1, 1)
</line>
<line>
};
</line>
</code>
<code title="Lighting:">
<line>
<keyword>#include </keyword>
<string>&lt;glm/glm.hpp&gt;</string>
</line>
<line>
<keyword>#include </keyword>
<string>&lt;glm/gtx/random.hpp&gt;</string>
</line>
<line>
</line>
<line>
glm::<userword>vec3 </userword> lighting
</line>
<line>
(
</line>
<line align="32px">
intersection<keyword> const </keyword>&amp; Intersection,
</line>
<line align="32px">
material<keyword> const </keyword>&amp; Material,
</line>
<line align="32px">
light<keyword> const </keyword>&amp; Light,
</line>
<line align="32px">
glm::<userword>vec3 </userword>const &amp; View
</line>
<line>
)
</line>
<line>
{
</line>
<line align="32px">
glm::<userword>vec3 </userword> Color = glm::<userword>vec3</userword>(0.0f);
</line>
<line>
</line>
<line align="32px">
glm::<userword>vec3 </userword>LightVertor = glm::normalize(
</line>
<line align="64px">
Light.position() - Intersection.globalPosition() +
</line>
<line align="96px">
glm::vecRand3(0.0f, Light.inaccuracy());
</line>
<line>
</line>
<line align="32px">
<keyword>if</keyword>(!shadow(
</line>
<line align="64px">
Intersection.globalPosition(),
</line>
<line align="64px">
Light.position(),
</line>
<line align="64px">
LightVertor))
</line>
<line align="32px">
{
</line>
<line align="64px">
<keyword>float</keyword> Diffuse = glm::dot(Intersection.normal(), LightVector);
</line>
<line align="64px">
</line>
<line align="64px">
<keyword>if</keyword>(Diffuse &lt;= 0.0f)
</line>
<line align="96px">
<keyword>return</keyword> Color;
</line>
<line align="64px">
<keyword>if</keyword>(Material.isDiffuse())
</line>
<line align="96px">
Color += Light.color() * Material.diffuse() * Diffuse;
</line>
<line align="64px">
</line>
<line align="64px">
<keyword>if</keyword>(Material.isSpecular())
</line>
<line align="64px">
{
</line>
<line align="96px">
glm::<userword>vec3 </userword>Reflect = glm::reflect(
</line>
<line align="128px">
glm::normalize(-LightVector),
</line>
<line align="128px">
glm::normalize(Intersection.normal()));
</line>
<line align="96px">
<keyword>float</keyword> Dot = glm::dot(Reflect, View);
</line>
<line align="96px">
<keyword>float</keyword> Base = Dot > 0.0f ? Dot : 0.0f;
</line>
<line align="96px">
<keyword>float</keyword> Specular = glm::pow(Base, Material.exponent());
</line>
<line align="96px">
Color += Material.specular() * Specular;
</line>
<line align="64px">
}
</line>
<line>
}
</line>
</code>
<!--code-image index="0001" date="06/05/2009" title="Compute face normals">
<image-list>
<image-element title="Compute face normals" small="./code/01.png" normal="./code/01.png" />
</image-list>
</code-image>
<code-image index="0002" date="06/05/2009" title="OpenGL render">
<image-list>
<image-element title="Compute face normals" small="./code/02.png" normal="./code/02.png" />
</image-list>
</code-image>
<code-image index="0003" date="06/05/2009" title="Point light computation">
<image-list>
<image-element title="Compute face normals" small="./code/03.png" normal="./code/03.png" />
</image-list>
</code-image-->
</codes>
<links>
<link name="OpenGL.org" link="http://www.opengl.org">
OpenGL's Official site. You would find OpenGL specifications, news and tons of related informations.
</link>
<link name="OpenGL Registry" link="http://www.opengl.org/registry/">
This page contains all OpenGL extensions specifications.
</link>
<link name="OpenGL 2.0 Specification" link="http://www.opengl.org/registry/doc/glspec21.20061201.pdf">
This page contains OpenGL 2.0 specifications.
</link>
<link name="OpenGL Shading Language Specification" link="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">
This page contains OpenGL Shading Language Specification.
</link>
<!--link name="How to create extensions ?" link="http://oss.sgi.com/projects/ogl-sample/registry/doc/rules.html">
This document explains how to create an OpenGL extension.
</link>
<link name="Extension template" link="http://oss.sgi.com/projects/ogl-sample/registry/doc/template.txt">
A commented support of extensions specifications.
</link>
<link name="Extension example" link="http://oss.sgi.com/projects/ogl-sample/registry/doc/fog_coord.txt">
A reference example for extensions specification.
</link>
<link name="OpenGL syntax rules" link="http://oss.sgi.com/projects/ogl-sample/registry/doc/syntaxrules.txt">
This document explains the OpenGL API syntax rules. It also includes all the abbreviations.
</link-->
<link name="GLSL Extension conventions" link="http://oss.sgi.com/projects/ogl-sample/registry/doc/GLSLExtensionRules.txt">
This document lists all the conventions for writing GLSL extensions. These rules are the basics of the GLM extensions system.
</link>
</links>
<issues>
<issue number="10" title="Several useful tools are missing in GLSL, is this possible to add them ?" statue="Partially resolved" date="2005-03-21">
<entry title="DISCUTION">GLSL is not the ultimate mathematics library, i.e. for matrices operations, specs are very restricted. There aren't any functions to get the determinant, inverse, or a matrix transpose. Moreover, there are a few vector types and no quaternions.</entry>
<entry title="PROPOSAL">What about completing the missing features using the extensions ? It will be developed from GLSL conventions and may add for exemple the extension GLM_GTX_quaternion, defining __quatGT type and conjugateGT function.</entry>
<entry title="PROPOSAL">Extensions may be available through a separate file called glmext.h instead of being directly into the library core file.</entry>
<entry title="PROPOSAL">It would be interesting to suggest GLM extensions implementations directly in GLSL to increase portability. It may hopefully end by submitting extensions to ARB.</entry>
</issue>
<issue number="9" title="Should GLM be included into a namespace ?" statue="Unresolved" date="2005-02-18">
<entry title="DISCUTION">The use of a namespace allows to prevenf from any name collision problem with other libraries like STL. GLSL uses a reserved 'namespace' keyword but does not define it. OpenGL uses a C technic for the namespaces management with the 'gl' prefix. What name should we give to this namespace ? 'gl', 'glsl', 'glm' or 'sl' ? What is the best solution ? C-like or C++-like namespaces ?</entry>
<entry title="DISCUTION">Bug #3 says that 'not' is a C++ keyword. C-style namespaces use would resolves this bug but GLSL has been built from C upon a C++ logic.</entry>
</issue>
<issue number="8" title="Could the OpenGL API be considered ?" statue="Resolved" date="2005-03-04">
<entry title="DISCUTION">The interaction with OpenGL is not the purpose of GLM. However, GLM should be easily usable with OpenGL and some features could be welcome. i.e., using vec3 type with Vertex3fv function should simplify and optimize the program. Eventually, semantically speaking, vec3 is more accurate and stronger than addressing on a potential 3 floats table.</entry>
<entry title="RESOLUTION">If it is possible to make easy the interoperability between GLM and OpenGL, then this work is recommended if semantic stays correct. GLM must also remain independent towards OpenGL.</entry>
</issue>
<issue number="7" title="How to consider reserved keywords ?" statue="Partially resolved" date="2005-01-26">
<entry title="DISCUTION">GLSL specifications include unimplemented reserved keywords list. Their use must return an error. Some of them already exist in C++.</entry>
<entry title="RESOLUTION">GLM can only allow C++ reserved keywords. The others must be undefined so the compiler returns an error.</entry>
</issue>
<issue number="6" title="How to manage GLSL qualifiers ?" statue="Partially resolved" date="2005-03-04">
<entry title="DISCUTION">GLSL defines six variable qualifiers types : const, varying, uniform, attrib, in, out, inout.</entry>
<entry title="RESOLUTION">'const' variables are only usable in a local way into a shader. They are available for vertex and fragments shaders. GLSL's 'const' are similar to C++ 'static const', i.e. the variable only exists inside a compilation unit (.o files with GCC).</entry>
<entry title="RESOLUTION">'varying' variables offer a communication interface between vertex and fragment sahder. 'uniform' and 'attrib' variables are a way of communication between C/C++ program and shaders, so 'varying' are useless in the C++ program; so this qualifier is not allowed.</entry>
<entry title="SUGGESTION">Some programmers are already using 'in', 'ou' and 'inout' qualifiers for semantic purpose. They define them as empty '#define'.</entry>
<entry title="DISCUTION">It seems difficult to keep the same syntax than GLSL for 'uniform' and 'attrib' variables although this notion seems interesting. Why not keeping it only for their semantic properties ?</entry>
</issue>
<issue number="5" title="Should integrated variables be considered ?" statue="Resolved" date="2005-01-13">
<entry title="SUGGESTION">All integrated variables matches with OpenGL state variables. So there are all accessible from the OpenGL API.</entry>
</issue>
<issue number="4" title="Should sampler* types be considered ?" statue="Resolved" date="2005-03-05">
<entry title="DISCUTION">smapler* types come from GL_ARB_multitexure extension. Values matches with a texture unit.</entry>
<entry title="SUGGESTION">A sampler type would offer an additionnal semantic value.</entry>
<entry title="SUGGESTION">No, this is not the GLM objective.</entry>
</issue>
<issue number="3" title="How to manage specific access to *vec* types components ?" statue="Unresolved" date="2005-01-22">
<entry title="DISCUTION">GLSL allows several components to be accessed at the same time. Moreover, GLSL let the possibility to the user to order components as he wants. To implement such a possibility, 4² * 3 * 2 = 96 fuctions should be added for vec4 type, for example (components number : 4, access types : 3, readonly access and write access : 2).</entry>
<entry title="RESOLUTION">A solution witch reach GLSL conformance have been found. However it need lot of functions. This feature is coming in a futur release.</entry>
</issue>
<issue number="2" title="How to access to *vec* type components ?" statue="Closed" date="2005-01-15">
<entry title="DISCUTION">GLSL allows an access to a component with many different names, that explains the component notion. i.e. the first vec3 component is accessible with .x, .r, .s.</entry>
<entry title="PROPOSAL">A possibility would be creating three functions for each component.</entry>
<entry title="PROPOSAL">Another would be using the keyword 'union'.</entry>
<entry title="RESOLUTION">The first solution allows to keep components values in a private classes table, but in this case, the overloaded operator [] must be used to access values and/or functions per component that is not conform to GLSL specifications. The second respect GLSL rules but components are public. In this case, this is not a real problem so this second solution is kept.</entry>
</issue>
<issue number="1" title="How to consider dedicated functions to fragment shaders and ftransform function ?" statue="Closed" date="2005-01-12">
<entry title="RESOLUTION">GLSL specifications tell that 'fragment processing functions' are only available for fragment shaders and function ftransform is only available for vertex shaders. The C/C++ program must be considered as a third program type so this functions are not available.</entry>
</issue>
</issues>
<bugs>
<bug number="3" title="_xvec* class data and ISO C++ standard non compliance" statue="Resolved" date="2005-02-15">
<entry title="DISCUTION">'union' keyword is here to allow access to vector components with several different variables names. Moreover, templates are also used to create two vector type categories : _vec* and _ivec*. Eventually, anonymous structures are not allowed in ISO C++ norm.</entry>
<entry title="DISCUTION">Problem might come from the lack of supporting both templates and unions from Visual C++ 7.1.</entry>
<entry title="RESOLUTION">If -pedantic isn't used with G++, then code compiles correctly. As we are waiting for a better compromise, the code stays that way. As notified for the bug #4, the ultimate solution might be to avoid templates in vector definition.</entry>
</bug>
<bug number="2" title="'not' is a GCC keyword" statue="Partly resolved" date="2005-03-03">
<entry title="DISCUTION">GCC supports all C++ keywords that includes 'not', which is equivalent to '!' operator. So there is a problem with GLM because GLSL defines the 'not' function.</entry>
<entry title="PROPOSITION">Overloading the '!' operator or the 'not' keyword we can partly resolve the problem but leaving as ignored the GLM namespace concept. If the source code contains 'glm:not' string, then GCC gives an error.</entry>
<entry title="PROPOSITION">'not' is a C++ keyword so GLM mustn't define a 'not' function. However, all the compilers don't support this keyword (VC7.1). Does this name has to be changed ? For now, it is recommended to avoid using 'not'.</entry>
</bug>
<bug number="1" title="*vec* doesn't allow multiple components selection." statue="Unresolved" date="2005-01-30">
<entry title="DISCUTION">The GLSL specifications grant access to multiple components for vector types. i.e. with GLSL the following lines are correct : vec3 MyVector = vec4(1.0, 1.0, 1.0, 0.0).xyz.</entry>
<entry title="DISCUTION">It seems difficult to create an equal feature in C++ because 'x', 'y', and 'z' according to the previous example can be sorted in any order and be repeated from zero to four to a max of four components.</entry>
</bug>
</bugs>
<about-long date=" " title=" ">
<paragraph>
OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software
based on the <link href="http://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</link> specification.
</paragraph>
<paragraph>
GLM provides classes and functions designed and
implemented with the same naming conventions
and functionalities than GLSL so that
when a programmer knows GLSL, he knows GLM as well which makes it really easy to use.
</paragraph>
<paragraph>
This project isn't limited by GLSL features.
An extension system, based on the GLSL extension conventions,
provides extended capabilities: matrix transformations,
quaternions, half-based types, random numbers, etc...
</paragraph>
<paragraph>
This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDKs. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.
</paragraph>
<list name="GLM is written as a platform independent library with no dependence and officially supports the following compilers:">
<list-element><link href="http://http://gcc.gnu.org/">GCC</link> 3.4 and higher</list-element>
<list-element><link href="http://llvm.org/">LLVM</link> 2.3 through GCC 4.2 front-end and higher</list-element>
<list-element><link href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</link> 2005 and higher</list-element>
<list-element>Any C++ compiler following C++98 norm</list-element>
</list>
<paragraph>
The source code is under the <link href="./copying.txt">MIT license</link>.
</paragraph>
<paragraph>
Thanks for contributing to the project by <link href="https://sourceforge.net/apps/trac/ogl-math/newticket">submitting tickets</link> for bug reports and feature requests. (SF.net account required).
Any feedback is welcome at <a href="mailto://glm@g-truc.net">glm@g-truc.net</a>.
</paragraph>
</about-long>
<about-short>
<element>GLSL + Optional features = OpenGL Mathematics (GLM).</element>
<element>A C++ mathematics library for 3D graphics.</element>
</about-short>
<goodies>
<goodie date="16/10/2008" title="GLM Logo" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
</paragraph>
<source type="Download" href="./goodies/logo2560x1600.png">2560x1600</source>
<source type="Download" href="./goodies/logo1920x1200.png">1920x1200</source>
<source type="Download" href="./goodies/logo1600x1000.png">1600x1000</source>
<source type="Download" href="./goodies/logo1280x0800.png">1280x0800</source>
<source type="Download" href="./goodies/logo1024x0640.png">1024x0640</source>
</goodie>
<goodie date="16/10/2008" title="GLM Font" image="goodies/font.png" image-mini="image/font-mini.png">
<paragraph>
</paragraph>
<source type="Download" href="./goodies/tenby-five.otf">Font (.otf)</source>
</goodie>
</goodies>
<menu>
<menu-group name="Main">
<menu-entry name="Front page" href="./index.html" />
<menu-entry name="Downloads" href="./download.html" />
<menu-entry name="OpenGL SDK page" href="http://www.opengl.org/sdk/libs/GLM/" />
</menu-group>
<menu-group name="Documentation">
<menu-entry name="GLM Manual" href="./glm-0.9.1.pdf" />
<menu-entry name="GLM API" href="./api-0.9.1/index.html" />
<menu-entry name="Code samples" href="./code.html" />
<menu-entry name="GLSL Specification" href="http://www.opengl.org/registry/doc/GLSLangSpec.4.10.6.clean.pdf" />
<menu-entry name="OpenGL.org Toolkits forum" href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&amp;Board=10&amp;page=1" />
</menu-group>
<menu-group name="Developer">
<menu-entry name="Report a bug" href="https://sourceforge.net/apps/trac/ogl-math/newticket" />
<menu-entry name="SourceForge page" href="https://sourceforge.net/projects/ogl-math/" />
<menu-entry name="G-Truc Creation page" href="http://www.g-truc.net/project-0016.html#menu" />
<menu-entry name="Browse Git repository" href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary" />
<menu-entry name="Source snapshot" href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz" />
</menu-group>
<menu-link>
<menu-pic name="G-Truc" image="./common/g-truc.png" href="http://www.g-truc.net" />
</menu-link>
</menu>
</glm>