summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.fetch1
-rw-r--r--RepositoryExternal.mk17
-rw-r--r--RepositoryModule_host.mk1
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac5
-rw-r--r--download.lst1
-rw-r--r--glm/Makefile7
-rw-r--r--glm/Module_glm.mk20
-rw-r--r--glm/README3
-rw-r--r--glm/UnpackedTarball_glm.mk20
-rw-r--r--glm/Wshadow.patch2659
11 files changed, 2735 insertions, 0 deletions
diff --git a/Makefile.fetch b/Makefile.fetch
index 368bd72b5fe8..f5c5c2001281 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -119,6 +119,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR)
$(call fetch_Optional,FONTCONFIG,$(FONTCONFIG_TARBALL)) \
$(call fetch_Optional,FREETYPE,$(FREETYPE_TARBALL)) \
$(GOOGLE_DOCS_EXTENSION_PACK) \
+ $(call fetch_Optional,GLM,$(GLM_TARBALL)) \
$(call fetch_Optional,HSQLDB,$(HSQLDB_TARBALL)) \
$(call fetch_Optional,HUNSPELL,$(HUNSPELL_TARBALL)) \
$(call fetch_Optional,HYPHEN,$(HYPHEN_TARBALL)) \
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index e367cb451054..99614d9df9f5 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -126,6 +126,23 @@ endef
endif
+ifeq ($(SYSTEM_GLM),YES)
+
+gb_LinkTarget__use_glm_headers :=
+
+else
+
+define gb_LinkTarget__use_glm_headers
+$(call gb_LinkTarget_use_unpacked,$(1),glm)
+$(call gb_LinkTarget_set_include,$(1),\
+ -I$(call gb_UnpackedTarball_get_dir,glm) \
+ $$(INCLUDE) \
+)
+
+endef
+
+endif
+
ifeq (SANE,$(filter SANE,$(BUILD_TYPE)))
define gb_LinkTarget__use_sane_headers
diff --git a/RepositoryModule_host.mk b/RepositoryModule_host.mk
index 48d5518779e8..b35e3d0d5355 100644
--- a/RepositoryModule_host.mk
+++ b/RepositoryModule_host.mk
@@ -73,6 +73,7 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\
linguistic \
lotuswordpro \
$(call gb_Helper_optional,DESKTOP,l10ntools) \
+ $(call gb_Helper_optional,GLM,glm) \
$(call gb_Helper_optional,MARIADBC,mysqlc) \
$(call gb_Helper_optional,NLPSOLVER,nlpsolver) \
o3tl \
diff --git a/config_host.mk.in b/config_host.mk.in
index 8ec3a6cc5847..633768362124 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -498,6 +498,7 @@ export SYSTEM_FIREBIRD=@SYSTEM_FIREBIRD@
export SYSTEM_GENBRK=@SYSTEM_GENBRK@
export SYSTEM_GENCCODE=@SYSTEM_GENCCODE@
export SYSTEM_GENCMN=@SYSTEM_GENCMN@
+export SYSTEM_GLM=@SYSTEM_GLM@
export SYSTEM_GRAPHITE=@SYSTEM_GRAPHITE@
export SYSTEM_HARFBUZZ=@SYSTEM_HARFBUZZ@
export SYSTEM_HSQLDB=@SYSTEM_HSQLDB@
diff --git a/configure.ac b/configure.ac
index 4707ab22359d..19d0384c892e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8791,6 +8791,11 @@ fi
AC_SUBST([MDDS_CPPFLAGS])
dnl ===================================================================
+dnl Check for system glm
+dnl ===================================================================
+libo_CHECK_SYSTEM_MODULE([glm], [GLM], [glm >= 0.9.4])
+
+dnl ===================================================================
dnl Check for system vigra
dnl ===================================================================
AC_MSG_CHECKING([which vigra to use])
diff --git a/download.lst b/download.lst
index acbe37be4865..da5edd07439e 100644
--- a/download.lst
+++ b/download.lst
@@ -57,6 +57,7 @@ export FONT_PTSERIF_TARBALL := c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.
export FONT_SOURCECODE_TARBALL := 0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz
export FONT_SOURCESANS_TARBALL := 1e9ddfe25ac9577da709d7b2ea36f939-source-sans-font-1.036.tar.gz
export FREETYPE_TARBALL := dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2
+export GLM_TARBALL := f070164b78c643431abbc1a97a6d0211-glm-0.9.4.6.zip
export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
export HUNSPELL_TARBALL := 3121aaf3e13e5d88dfff13fb4a5f1ab8-hunspell-1.3.2.tar.gz
export HYPHEN_TARBALL := a2f6010987e1c601274ab5d63b72c944-hyphen-2.8.4.tar.gz
diff --git a/glm/Makefile b/glm/Makefile
new file mode 100644
index 000000000000..ccb1c85a04da
--- /dev/null
+++ b/glm/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/glm/Module_glm.mk b/glm/Module_glm.mk
new file mode 100644
index 000000000000..71ec270b889a
--- /dev/null
+++ b/glm/Module_glm.mk
@@ -0,0 +1,20 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,glm))
+
+ifeq ($(SYSTEM_GLM),NO)
+
+$(eval $(call gb_Module_add_targets,glm,\
+ UnpackedTarball_glm \
+))
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/glm/README b/glm/README
new file mode 100644
index 000000000000..30122f67b5e2
--- /dev/null
+++ b/glm/README
@@ -0,0 +1,3 @@
+Glm provides a header only library for OpenGL mathematics.
+
+It is available from http://glm.g-truc.net/0.9.4/index.html
diff --git a/glm/UnpackedTarball_glm.mk b/glm/UnpackedTarball_glm.mk
new file mode 100644
index 000000000000..79d93af8d120
--- /dev/null
+++ b/glm/UnpackedTarball_glm.mk
@@ -0,0 +1,20 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,glm))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,glm,$(GLM_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,glm,1))
+
+$(eval $(call gb_UnpackedTarball_add_patches,glm,\
+ glm/Wshadow.patch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/glm/Wshadow.patch b/glm/Wshadow.patch
new file mode 100644
index 000000000000..c6c9c6585782
--- /dev/null
+++ b/glm/Wshadow.patch
@@ -0,0 +1,2659 @@
+diff -ur glm.org/glm/core/_detail.hpp glm/glm/core/_detail.hpp
+--- glm.org/glm/core/_detail.hpp 2013-12-09 02:05:30.115442079 +0100
++++ glm/glm/core/_detail.hpp 2013-12-09 02:06:33.749941584 +0100
+@@ -136,12 +136,12 @@
+ i(0)
+ {}
+
+- GLM_FUNC_QUALIFIER uif32(float f) :
+- f(f)
++ GLM_FUNC_QUALIFIER uif32(float f_) :
++ f(f_)
+ {}
+
+- GLM_FUNC_QUALIFIER uif32(unsigned int i) :
+- i(i)
++ GLM_FUNC_QUALIFIER uif32(unsigned int i_) :
++ i(i_)
+ {}
+
+ float f;
+@@ -154,12 +154,12 @@
+ i(0)
+ {}
+
+- GLM_FUNC_QUALIFIER uif64(double f) :
+- f(f)
++ GLM_FUNC_QUALIFIER uif64(double f_) :
++ f(f_)
+ {}
+
+- GLM_FUNC_QUALIFIER uif64(uint64 i) :
+- i(i)
++ GLM_FUNC_QUALIFIER uif64(uint64 i_) :
++ i(i_)
+ {}
+
+ double f;
+diff -ur glm.org/glm/core/type_vec1.hpp glm/glm/core/type_vec1.hpp
+--- glm.org/glm/core/type_vec1.hpp 2013-12-08 17:04:59.706365245 +0100
++++ glm/glm/core/type_vec1.hpp 2013-12-08 17:07:20.079840510 +0100
+@@ -86,19 +86,19 @@
+ GLM_FUNC_DECL explicit tvec1(
+ ctor);
+ GLM_FUNC_DECL explicit tvec1(
+- value_type const & s);
++ value_type const & s_);
+
+ //////////////////////////////////////
+ // Swizzle constructors
+
+- GLM_FUNC_DECL tvec1(tref1<T> const & r);
++ GLM_FUNC_DECL tvec1(tref1<T> const & r_);
+
+ //////////////////////////////////////
+ // Convertion scalar constructors
+
+ //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
+ template <typename U>
+- GLM_FUNC_DECL explicit tvec1(U const & s);
++ GLM_FUNC_DECL explicit tvec1(U const & s_);
+
+ //////////////////////////////////////
+ // Convertion vector constructors
+@@ -121,19 +121,19 @@
+ GLM_FUNC_DECL tvec1<T> & operator= (tvec1<U> const & v);
+
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator+=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator+=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator+=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator-=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator-=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator-=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator*=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator*=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator*=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator/=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator/=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator/=(tvec1<U> const & v);
+ GLM_FUNC_DECL tvec1<T> & operator++();
+@@ -143,27 +143,27 @@
+ // Unary bit operators
+
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator%=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator%=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator%=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator&=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator&=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator&=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator|=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator|=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator|=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator^=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator^=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator^=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator<<=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator<<=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator<<=(tvec1<U> const & v);
+ template <typename U>
+- GLM_FUNC_DECL tvec1<T> & operator>>=(U const & s);
++ GLM_FUNC_DECL tvec1<T> & operator>>=(U const & s_);
+ template <typename U>
+ GLM_FUNC_DECL tvec1<T> & operator>>=(tvec1<U> const & v);
+
+diff -ur glm.org/glm/core/type_vec1.inl glm/glm/core/type_vec1.inl
+--- glm.org/glm/core/type_vec1.inl 2013-12-08 17:04:59.707365220 +0100
++++ glm/glm/core/type_vec1.inl 2013-12-08 17:07:20.081840460 +0100
+@@ -87,9 +87,9 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T>::tvec1
+ (
+- value_type const & s
++ value_type const & s_
+ ) :
+- x(s)
++ x(s_)
+ {}
+
+ //////////////////////////////////////
+@@ -98,9 +98,9 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T>::tvec1
+ (
+- tref1<T> const & r
++ tref1<T> const & r_
+ ) :
+- x(r.x)
++ x(r_.x)
+ {}
+
+ //////////////////////////////////////
+@@ -110,9 +110,9 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T>::tvec1
+ (
+- U const & s
++ U const & s_
+ ) :
+- x(value_type(s))
++ x(value_type(s_))
+ {}
+
+ //////////////////////////////////////
+@@ -173,10 +173,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x += T(s);
++ this->x += T(s_);
+ return *this;
+ }
+
+@@ -195,10 +195,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x -= T(s);
++ this->x -= T(s_);
+ return *this;
+ }
+
+@@ -217,10 +217,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x *= T(s);
++ this->x *= T(s_);
+ return *this;
+ }
+
+@@ -239,10 +239,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x /= T(s);
++ this->x /= T(s_);
+ return *this;
+ }
+
+@@ -301,10 +301,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x %= T(s);
++ this->x %= T(s_);
+ return *this;
+ }
+
+@@ -323,10 +323,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x &= T(s);
++ this->x &= T(s_);
+ return *this;
+ }
+
+@@ -345,10 +345,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x |= T(s);
++ this->x |= T(s_);
+ return *this;
+ }
+
+@@ -367,10 +367,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x ^= T(s);
++ this->x ^= T(s_);
+ return *this;
+ }
+
+@@ -389,10 +389,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x <<= T(s);
++ this->x <<= T(s_);
+ return *this;
+ }
+
+@@ -411,10 +411,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
+ (
+- U const & s
++ U const & s_
+ )
+ {
+- this->x >>= T(s);
++ this->x >>= T(s_);
+ return *this;
+ }
+
+@@ -434,21 +434,21 @@
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER T
+- tvec1<T>::swizzle(comp x) const
++ tvec1<T>::swizzle(comp x_) const
+ {
+- return (*this)[x];
++ return (*this)[x_];
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T>
+ tvec1<T>::swizzle
+ (
+- comp x,
++ comp x_,
+ comp y
+ ) const
+ {
+ return tvec2<T>(
+- (*this)[x],
++ (*this)[x_],
+ (*this)[y]);
+ }
+
+@@ -456,13 +456,13 @@
+ GLM_FUNC_QUALIFIER tvec3<T>
+ tvec1<T>::swizzle
+ (
+- comp x,
++ comp x_,
+ comp y,
+ comp z
+ ) const
+ {
+ return tvec3<T>(
+- (*this)[x],
++ (*this)[x_],
+ (*this)[y],
+ (*this)[z]);
+ }
+@@ -471,14 +471,14 @@
+ GLM_FUNC_QUALIFIER tvec4<T>
+ tvec1<T>::swizzle
+ (
+- comp x,
++ comp x_,
+ comp y,
+ comp z,
+ comp w
+ ) const
+ {
+ return tvec4<T>(
+- (*this)[x],
++ (*this)[x_],
+ (*this)[y],
+ (*this)[z],
+ (*this)[w]);
+@@ -488,11 +488,11 @@
+ GLM_FUNC_QUALIFIER tref1<T>
+ tvec1<T>::swizzle
+ (
+- comp x
++ comp x_
+ )
+ {
+ return tref1<T>(
+- (*this)[x]);
++ (*this)[x_]);
+ }
+
+ //////////////////////////////////////
+@@ -502,22 +502,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator+
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x + s);
++ v.x + s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator+
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s + v.x);
++ s_ + v.x);
+ }
+
+ template <typename T>
+@@ -536,22 +536,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator-
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x - s);
++ v.x - s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator-
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s - v.x);
++ s_ - v.x);
+ }
+
+ template <typename T>
+@@ -570,22 +570,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator*
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x * s);
++ v.x * s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator*
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s * v.x);
++ s_ * v.x);
+ }
+
+ template <typename T>
+@@ -604,22 +604,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator/
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x / s);
++ v.x / s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator/
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s / v.x);
++ s_ / v.x);
+ }
+
+ template <typename T>
+@@ -673,22 +673,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator%
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x % s);
++ v.x % s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator%
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s % v.x);
++ s_ % v.x);
+ }
+
+ template <typename T>
+@@ -706,22 +706,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator&
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x & s);
++ v.x & s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator&
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s & v.x);
++ s_ & v.x);
+ }
+
+ template <typename T>
+@@ -739,22 +739,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator|
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x | s);
++ v.x | s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator|
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s | v.x);
++ s_ | v.x);
+ }
+
+ template <typename T>
+@@ -772,22 +772,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator^
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x ^ s);
++ v.x ^ s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator^
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s ^ v.x);
++ s_ ^ v.x);
+ }
+
+ template <typename T>
+@@ -805,22 +805,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator<<
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x << s);
++ v.x << s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator<<
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s << v.x);
++ s_ << v.x);
+ }
+
+ template <typename T>
+@@ -838,22 +838,22 @@
+ GLM_FUNC_QUALIFIER tvec1<T> operator>>
+ (
+ tvec1<T> const & v,
+- typename tvec1<T>::value_type const & s
++ typename tvec1<T>::value_type const & s_
+ )
+ {
+ return tvec1<T>(
+- v.x >> s);
++ v.x >> s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec1<T> operator>>
+ (
+- typename tvec1<T>::value_type const & s,
++ typename tvec1<T>::value_type const & s_,
+ tvec1<T> const & v
+ )
+ {
+ return tvec1<T>(
+- s >> v.x);
++ s_ >> v.x);
+ }
+
+ template <typename T>
+@@ -883,9 +883,9 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref1<T>::tref1
+ (
+- T & x
++ T & x_
+ ) :
+- x(x)
++ x(x_)
+ {}
+
+ template <typename T>
+diff -ur glm.org/glm/core/type_vec2.inl glm/glm/core/type_vec2.inl
+--- glm.org/glm/core/type_vec2.inl 2013-12-08 17:04:59.705365270 +0100
++++ glm/glm/core/type_vec2.inl 2013-12-08 17:07:20.078840535 +0100
+@@ -91,10 +91,10 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T>::tvec2
+ (
+- value_type const & s
++ value_type const & s_
+ ) :
+- x(s),
+- y(s)
++ x(s_),
++ y(s_)
+ {}
+
+ template <typename T>
+@@ -113,10 +113,10 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T>::tvec2
+ (
+- tref2<T> const & r
++ tref2<T> const & r_
+ ) :
+- x(r.x),
+- y(r.y)
++ x(r_.x),
++ y(r_.y)
+ {}
+
+ //////////////////////////////////////
+@@ -126,10 +126,10 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec2<T>::tvec2
+ (
+- U const & x
++ U const & x_
+ ) :
+- x(value_type(x)),
+- y(value_type(x))
++ x(value_type(x_)),
++ y(value_type(x_))
+ {}
+
+ template <typename T>
+@@ -204,10 +204,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator+=(U s_)
+ {
+- this->x += T(s);
+- this->y += T(s);
++ this->x += T(s_);
++ this->y += T(s_);
+ return *this;
+ }
+
+@@ -225,10 +225,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator-=(U s_)
+ {
+- this->x -= T(s);
+- this->y -= T(s);
++ this->x -= T(s_);
++ this->y -= T(s_);
+ return *this;
+ }
+
+@@ -246,10 +246,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator*=(U s_)
+ {
+- this->x *= T(s);
+- this->y *= T(s);
++ this->x *= T(s_);
++ this->y *= T(s_);
+ return *this;
+ }
+
+@@ -267,10 +267,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator/=(U s_)
+ {
+- this->x /= T(s);
+- this->y /= T(s);
++ this->x /= T(s_);
++ this->y /= T(s_);
+ return *this;
+ }
+
+@@ -330,10 +330,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator%=(U s_)
+ {
+- this->x %= T(s);
+- this->y %= T(s);
++ this->x %= T(s_);
++ this->y %= T(s_);
+ return *this;
+ }
+
+@@ -351,10 +351,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator&=(U s_)
+ {
+- this->x &= T(s);
+- this->y &= T(s);
++ this->x &= T(s_);
++ this->y &= T(s_);
+ return *this;
+ }
+
+@@ -372,10 +372,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator|=(U s_)
+ {
+- this->x |= T(s);
+- this->y |= T(s);
++ this->x |= T(s_);
++ this->y |= T(s_);
+ return *this;
+ }
+
+@@ -393,10 +393,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator^=(U s_)
+ {
+- this->x ^= T(s);
+- this->y ^= T(s);
++ this->x ^= T(s_);
++ this->y ^= T(s_);
+ return *this;
+ }
+
+@@ -414,10 +414,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator<<=(U s_)
+ {
+- this->x <<= T(s);
+- this->y <<= T(s);
++ this->x <<= T(s_);
++ this->y <<= T(s_);
+ return *this;
+ }
+
+@@ -435,10 +435,10 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=(U s)
++ GLM_FUNC_QUALIFIER tvec2<T> & tvec2<T>::operator>>=(U s_)
+ {
+- this->x >>= T(s);
+- this->y >>= T(s);
++ this->x >>= T(s_);
++ this->y >>= T(s_);
+ return *this;
+ }
+
+@@ -460,50 +460,50 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER typename tvec2<T>::value_type tvec2<T>::swizzle
+ (
+- comp x
++ comp x_
+ ) const
+ {
+- return (*this)[x];
++ return (*this)[x_];
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T> tvec2<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ ) const
+ {
+ return tvec2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> tvec2<T>::swizzle
+ (
+- comp x,
+- comp y,
++ comp x_,
++ comp y_,
+ comp z
+ ) const
+ {
+ return tvec3<T>(
+- (*this)[x],
+- (*this)[y],
++ (*this)[x_],
++ (*this)[y_],
+ (*this)[z]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> tvec2<T>::swizzle
+ (
+- comp x,
+- comp y,
++ comp x_,
++ comp y_,
+ comp z,
+ comp w
+ ) const
+ {
+ return tvec4<T>(
+- (*this)[x],
+- (*this)[y],
++ (*this)[x_],
++ (*this)[y_],
+ (*this)[z],
+ (*this)[w]);
+ }
+@@ -511,13 +511,13 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref2<T> tvec2<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ )
+ {
+ return tref2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ //////////////////////////////////////
+@@ -527,12 +527,12 @@
+ GLM_FUNC_QUALIFIER tvec2<T> operator+
+ (
+ tvec2<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec2<T>(
+- v.x + T(s),
+- v.y + T(s));
++ v.x + T(s_),
++ v.y + T(s_));
+ }
+
+ template <typename T>
+@@ -942,11 +942,11 @@
+ template <typename T>
+ tref2<T>::tref2
+ (
+- T & x,
+- T & y
++ T & x_,
++ T & y_
+ ) :
+- x(x),
+- y(y)
++ x(x_),
++ y(y_)
+ {}
+
+ template <typename T>
+diff -ur glm.org/glm/core/type_vec3.hpp glm/glm/core/type_vec3.hpp
+--- glm.org/glm/core/type_vec3.hpp 2013-12-08 17:04:59.707365220 +0100
++++ glm/glm/core/type_vec3.hpp 2013-12-08 17:07:20.081840460 +0100
+@@ -170,15 +170,15 @@
+ }
+
+ template <int E0, int E1>
+- GLM_FUNC_DECL tvec3(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & s)
++ GLM_FUNC_DECL tvec3(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & s_)
+ {
+- *this = tvec3<T>(v(), s);
++ *this = tvec3<T>(v(), s_);
+ }
+
+ template <int E0, int E1>
+- GLM_FUNC_DECL tvec3(T const & s, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
++ GLM_FUNC_DECL tvec3(T const & s_, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
+ {
+- *this = tvec3<T>(s, v());
++ *this = tvec3<T>(s_, v());
+ }
+
+ //////////////////////////////////////
+diff -ur glm.org/glm/core/type_vec3.inl glm/glm/core/type_vec3.inl
+--- glm.org/glm/core/type_vec3.inl 2013-12-08 17:04:59.706365245 +0100
++++ glm/glm/core/type_vec3.inl 2013-12-08 17:07:20.079840510 +0100
+@@ -93,11 +93,11 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- value_type const & s
++ value_type const & s_
+ ) :
+- x(s),
+- y(s),
+- z(s)
++ x(s_),
++ y(s_),
++ z(s_)
+ {}
+
+ template <typename T>
+@@ -118,11 +118,11 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- tref3<T> const & r
++ tref3<T> const & r_
+ ) :
+- x(r.x),
+- y(r.y),
+- z(r.z)
++ x(r_.x),
++ y(r_.y),
++ z(r_.z)
+ {}
+
+ template <typename T>
+@@ -130,21 +130,21 @@
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+ tref2<A> const & v,
+- B const & s
++ B const & s_
+ ) :
+ x(value_type(v.x)),
+ y(value_type(v.y)),
+- z(value_type(s))
++ z(value_type(s_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- A const & s,
++ A const & s_,
+ tref2<B> const & v
+ ) :
+- x(value_type(s)),
++ x(value_type(s_)),
+ y(value_type(v.x)),
+ z(value_type(v.y))
+ {}
+@@ -156,24 +156,24 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- U const & s
++ U const & s_
+ ) :
+- x(value_type(s)),
+- y(value_type(s)),
+- z(value_type(s))
++ x(value_type(s_)),
++ y(value_type(s_)),
++ z(value_type(s_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B, typename C>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- A const & x,
+- B const & y,
+- C const & z
++ A const & x_,
++ B const & y_,
++ C const & z_
+ ) :
+- x(value_type(x)),
+- y(value_type(y)),
+- z(value_type(z))
++ x(value_type(x_)),
++ y(value_type(y_)),
++ z(value_type(z_))
+ {}
+
+ //////////////////////////////////////
+@@ -184,21 +184,21 @@
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+ tvec2<A> const & v,
+- B const & s
++ B const & s_
+ ) :
+ x(value_type(v.x)),
+ y(value_type(v.y)),
+- z(value_type(s))
++ z(value_type(s_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B>
+ GLM_FUNC_QUALIFIER tvec3<T>::tvec3
+ (
+- A const & s,
++ A const & s_,
+ tvec2<B> const & v
+ ) :
+- x(value_type(s)),
++ x(value_type(s_)),
+ y(value_type(v.x)),
+ z(value_type(v.y))
+ {}
+@@ -255,11 +255,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator+=(U s_)
+ {
+- this->x += T(s);
+- this->y += T(s);
+- this->z += T(s);
++ this->x += T(s_);
++ this->y += T(s_);
++ this->z += T(s_);
+ return *this;
+ }
+
+@@ -278,11 +278,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator-=(U s_)
+ {
+- this->x -= T(s);
+- this->y -= T(s);
+- this->z -= T(s);
++ this->x -= T(s_);
++ this->y -= T(s_);
++ this->z -= T(s_);
+ return *this;
+ }
+
+@@ -301,11 +301,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator*=(U s_)
+ {
+- this->x *= T(s);
+- this->y *= T(s);
+- this->z *= T(s);
++ this->x *= T(s_);
++ this->y *= T(s_);
++ this->z *= T(s_);
+ return *this;
+ }
+
+@@ -324,11 +324,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator/=(U s_)
+ {
+- this->x /= T(s);
+- this->y /= T(s);
+- this->z /= T(s);
++ this->x /= T(s_);
++ this->y /= T(s_);
++ this->z /= T(s_);
+ return *this;
+ }
+
+@@ -391,11 +391,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator%=(U s_)
+ {
+- this->x %= s;
+- this->y %= s;
+- this->z %= s;
++ this->x %= s_;
++ this->y %= s_;
++ this->z %= s_;
+ return *this;
+ }
+
+@@ -414,11 +414,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator&=(U s_)
+ {
+- this->x &= s;
+- this->y &= s;
+- this->z &= s;
++ this->x &= s_;
++ this->y &= s_;
++ this->z &= s_;
+ return *this;
+ }
+
+@@ -437,11 +437,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator|=(U s_)
+ {
+- this->x |= s;
+- this->y |= s;
+- this->z |= s;
++ this->x |= s_;
++ this->y |= s_;
++ this->z |= s_;
+ return *this;
+ }
+
+@@ -460,11 +460,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator^=(U s_)
+ {
+- this->x ^= s;
+- this->y ^= s;
+- this->z ^= s;
++ this->x ^= s_;
++ this->y ^= s_;
++ this->z ^= s_;
+ return *this;
+ }
+
+@@ -483,11 +483,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator<<=(U s_)
+ {
+- this->x <<= s;
+- this->y <<= s;
+- this->z <<= s;
++ this->x <<= s_;
++ this->y <<= s_;
++ this->z <<= s_;
+ return *this;
+ }
+
+@@ -506,11 +506,11 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=(U s)
++ GLM_FUNC_QUALIFIER tvec3<T> & tvec3<T>::operator>>=(U s_)
+ {
+- this->x >>= T(s);
+- this->y >>= T(s);
+- this->z >>= T(s);
++ this->x >>= T(s_);
++ this->y >>= T(s_);
++ this->z >>= T(s_);
+ return *this;
+ }
+
+@@ -534,78 +534,78 @@
+ GLM_FUNC_QUALIFIER typename tvec3<T>::value_type
+ tvec3<T>::swizzle
+ (
+- comp x
++ comp x_
+ ) const
+ {
+- return (*this)[x];
++ return (*this)[x_];
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T> tvec3<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ ) const
+ {
+ return tvec2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> tvec3<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z
++ comp x_,
++ comp y_,
++ comp z_
+ ) const
+ {
+ return tvec3<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> tvec3<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z,
++ comp x_,
++ comp y_,
++ comp z_,
+ comp w
+ ) const
+ {
+ return tvec4<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z],
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_],
+ (*this)[w]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref2<T> tvec3<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ )
+ {
+ return tref2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref3<T> tvec3<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z
++ comp x_,
++ comp y_,
++ comp z_
+ )
+ {
+ return tref3<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_]);
+ }
+
+ //////////////////////////////////////
+@@ -615,26 +615,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator+
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x + T(s),
+- v.y + T(s),
+- v.z + T(s));
++ v.x + T(s_),
++ v.y + T(s_),
++ v.z + T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator+
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) + v.x,
+- T(s) + v.y,
+- T(s) + v.z);
++ T(s_) + v.x,
++ T(s_) + v.y,
++ T(s_) + v.z);
+ }
+
+ template <typename T>
+@@ -655,26 +655,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator-
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x - T(s),
+- v.y - T(s),
+- v.z - T(s));
++ v.x - T(s_),
++ v.y - T(s_),
++ v.z - T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator-
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) - v.x,
+- T(s) - v.y,
+- T(s) - v.z);
++ T(s_) - v.x,
++ T(s_) - v.y,
++ T(s_) - v.z);
+ }
+
+ template <typename T>
+@@ -695,26 +695,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator*
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x * T(s),
+- v.y * T(s),
+- v.z * T(s));
++ v.x * T(s_),
++ v.y * T(s_),
++ v.z * T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator*
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) * v.x,
+- T(s) * v.y,
+- T(s) * v.z);
++ T(s_) * v.x,
++ T(s_) * v.y,
++ T(s_) * v.z);
+ }
+
+ template <typename T>
+@@ -735,26 +735,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator/
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x / T(s),
+- v.y / T(s),
+- v.z / T(s));
++ v.x / T(s_),
++ v.y / T(s_),
++ v.z / T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator/
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) / v.x,
+- T(s) / v.y,
+- T(s) / v.z);
++ T(s_) / v.x,
++ T(s_) / v.y,
++ T(s_) / v.z);
+ }
+
+ template <typename T>
+@@ -816,26 +816,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator%
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x % T(s),
+- v.y % T(s),
+- v.z % T(s));
++ v.x % T(s_),
++ v.y % T(s_),
++ v.z % T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator%
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) % v.x,
+- T(s) % v.y,
+- T(s) % v.z);
++ T(s_) % v.x,
++ T(s_) % v.y,
++ T(s_) % v.z);
+ }
+
+ template <typename T>
+@@ -855,26 +855,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator&
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x & T(s),
+- v.y & T(s),
+- v.z & T(s));
++ v.x & T(s_),
++ v.y & T(s_),
++ v.z & T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator&
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) & v.x,
+- T(s) & v.y,
+- T(s) & v.z);
++ T(s_) & v.x,
++ T(s_) & v.y,
++ T(s_) & v.z);
+ }
+
+ template <typename T>
+@@ -894,26 +894,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator|
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x | T(s),
+- v.y | T(s),
+- v.z | T(s));
++ v.x | T(s_),
++ v.y | T(s_),
++ v.z | T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator|
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) | v.x,
+- T(s) | v.y,
+- T(s) | v.z);
++ T(s_) | v.x,
++ T(s_) | v.y,
++ T(s_) | v.z);
+ }
+
+ template <typename T>
+@@ -933,26 +933,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator^
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x ^ T(s),
+- v.y ^ T(s),
+- v.z ^ T(s));
++ v.x ^ T(s_),
++ v.y ^ T(s_),
++ v.z ^ T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator^
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) ^ v.x,
+- T(s) ^ v.y,
+- T(s) ^ v.z);
++ T(s_) ^ v.x,
++ T(s_) ^ v.y,
++ T(s_) ^ v.z);
+ }
+
+ template <typename T>
+@@ -972,26 +972,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator<<
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x << T(s),
+- v.y << T(s),
+- v.z << T(s));
++ v.x << T(s_),
++ v.y << T(s_),
++ v.z << T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator<<
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- T(s) << v.x,
+- T(s) << v.y,
+- T(s) << v.z);
++ T(s_) << v.x,
++ T(s_) << v.y,
++ T(s_) << v.z);
+ }
+
+ template <typename T>
+@@ -1011,26 +1011,26 @@
+ GLM_FUNC_QUALIFIER tvec3<T> operator>>
+ (
+ tvec3<T> const & v,
+- T const & s
++ T const & s_
+ )
+ {
+ return tvec3<T>(
+- v.x >> T(s),
+- v.y >> T(s),
+- v.z >> T(s));
++ v.x >> T(s_),
++ v.y >> T(s_),
++ v.z >> T(s_));
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> operator>>
+ (
+- T const & s,
++ T const & s_,
+ tvec3<T> const & v
+ )
+ {
+ return tvec3<T>(
+- s >> T(v.x),
+- s >> T(v.y),
+- s >> T(v.z));
++ s_ >> T(v.x),
++ s_ >> T(v.y),
++ s_ >> T(v.z));
+ }
+
+ template <typename T>
+@@ -1062,10 +1062,10 @@
+ // tref definition
+
+ template <typename T>
+- GLM_FUNC_QUALIFIER tref3<T>::tref3(T & x, T & y, T & z) :
+- x(x),
+- y(y),
+- z(z)
++ GLM_FUNC_QUALIFIER tref3<T>::tref3(T & x_, T & y_, T & z_) :
++ x(x_),
++ y(y_),
++ z(z_)
+ {}
+
+ template <typename T>
+diff -ur glm.org/glm/core/type_vec4.hpp glm/glm/core/type_vec4.hpp
+--- glm.org/glm/core/type_vec4.hpp 2013-12-08 17:04:59.705365270 +0100
++++ glm/glm/core/type_vec4.hpp 2013-12-08 17:07:20.078840535 +0100
+@@ -177,33 +177,33 @@
+ }
+
+ template <int E0, int E1>
+- GLM_FUNC_DECL tvec4(T const & x, T const & y, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
++ GLM_FUNC_DECL tvec4(T const & x_, T const & y_, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
+ {
+- *this = tvec4<T>(x, y, v());
++ *this = tvec4<T>(x_, y_, v());
+ }
+
+ template <int E0, int E1>
+- GLM_FUNC_DECL tvec4(T const & x, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & w)
++ GLM_FUNC_DECL tvec4(T const & x_, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & w_)
+ {
+- *this = tvec4<T>(x, v(), w);
++ *this = tvec4<T>(x_, v(), w);
+ }
+
+ template <int E0, int E1>
+- GLM_FUNC_DECL tvec4(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & z, T const & w)
++ GLM_FUNC_DECL tvec4(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & z_, T const & w_)
+ {
+- *this = tvec4<T>(v(), z, w);
++ *this = tvec4<T>(v(), z_, w_);
+ }
+
+ template <int E0, int E1, int E2>
+- GLM_FUNC_DECL tvec4(glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v, T const & w)
++ GLM_FUNC_DECL tvec4(glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v, T const & w_)
+ {
+- *this = tvec4<T>(v(), w);
++ *this = tvec4<T>(v(), w_);
+ }
+
+ template <int E0, int E1, int E2>
+- GLM_FUNC_DECL tvec4(T const & x, glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v)
++ GLM_FUNC_DECL tvec4(T const & x_, glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v)
+ {
+- *this = tvec4<T>(x, v());
++ *this = tvec4<T>(x_, v());
+ }
+
+ //////////////////////////////////////
+diff -ur glm.org/glm/core/type_vec4.inl glm/glm/core/type_vec4.inl
+--- glm.org/glm/core/type_vec4.inl 2013-12-08 17:04:59.706365245 +0100
++++ glm/glm/core/type_vec4.inl 2013-12-08 17:07:20.079840510 +0100
+@@ -95,12 +95,12 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- value_type const & s
++ value_type const & s_
+ ) :
+- x(s),
+- y(s),
+- z(s),
+- w(s)
++ x(s_),
++ y(s_),
++ z(s_),
++ w(s_)
+ {}
+
+ template <typename T>
+@@ -123,12 +123,12 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- tref4<T> const & r
++ tref4<T> const & r_
+ ) :
+- x(r.x),
+- y(r.y),
+- z(r.z),
+- w(r.w)
++ x(r_.x),
++ y(r_.y),
++ z(r_.z),
++ w(r_.w)
+ {}
+
+ template <typename T>
+@@ -178,22 +178,22 @@
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+ tref3<A> const & v,
+- B const & s
++ B const & s_
+ ) :
+ x(value_type(v.x)),
+ y(value_type(v.y)),
+ z(value_type(v.z)),
+- w(value_type(s))
++ w(value_type(s_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- A const & s,
++ A const & s_,
+ tref3<B> const & v
+ ) :
+- x(value_type(s)),
++ x(value_type(s_)),
+ y(value_type(v.x)),
+ z(value_type(v.y)),
+ w(value_type(v.z))
+@@ -245,27 +245,27 @@
+ template <typename U>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- U const & x
++ U const & x_
+ ) :
+- x(value_type(x)),
+- y(value_type(x)),
+- z(value_type(x)),
+- w(value_type(x))
++ x(value_type(x_)),
++ y(value_type(x_)),
++ z(value_type(x_)),
++ w(value_type(x_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B, typename C, typename D>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- A const & x,
+- B const & y,
+- C const & z,
+- D const & w
+- ) :
+- x(value_type(x)),
+- y(value_type(y)),
+- z(value_type(z)),
+- w(value_type(w))
++ A const & x_,
++ B const & y_,
++ C const & z_,
++ D const & w_
++ ) :
++ x(value_type(x_)),
++ y(value_type(y_)),
++ z(value_type(z_)),
++ w(value_type(w_))
+ {}
+
+ //////////////////////////////////////
+@@ -318,22 +318,22 @@
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+ tvec3<A> const & v,
+- B const & s
++ B const & s_
+ ) :
+ x(value_type(v.x)),
+ y(value_type(v.y)),
+ z(value_type(v.z)),
+- w(value_type(s))
++ w(value_type(s_))
+ {}
+
+ template <typename T>
+ template <typename A, typename B>
+ GLM_FUNC_QUALIFIER tvec4<T>::tvec4
+ (
+- A const & s,
++ A const & s_,
+ tvec3<B> const & v
+ ) :
+- x(value_type(s)),
++ x(value_type(s_)),
+ y(value_type(v.x)),
+ z(value_type(v.y)),
+ w(value_type(v.z))
+@@ -396,12 +396,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator+= (U s_)
+ {
+- this->x += T(s);
+- this->y += T(s);
+- this->z += T(s);
+- this->w += T(s);
++ this->x += T(s_);
++ this->y += T(s_);
++ this->z += T(s_);
++ this->w += T(s_);
+ return *this;
+ }
+
+@@ -421,12 +421,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator-= (U s_)
+ {
+- this->x -= T(s);
+- this->y -= T(s);
+- this->z -= T(s);
+- this->w -= T(s);
++ this->x -= T(s_);
++ this->y -= T(s_);
++ this->z -= T(s_);
++ this->w -= T(s_);
+ return *this;
+ }
+
+@@ -446,12 +446,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator*= (U s_)
+ {
+- this->x *= T(s);
+- this->y *= T(s);
+- this->z *= T(s);
+- this->w *= T(s);
++ this->x *= T(s_);
++ this->y *= T(s_);
++ this->z *= T(s_);
++ this->w *= T(s_);
+ return *this;
+ }
+
+@@ -471,12 +471,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator/= (U s_)
+ {
+- this->x /= T(s);
+- this->y /= T(s);
+- this->z /= T(s);
+- this->w /= T(s);
++ this->x /= T(s_);
++ this->y /= T(s_);
++ this->z /= T(s_);
++ this->w /= T(s_);
+ return *this;
+ }
+
+@@ -519,12 +519,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator%= (U s_)
+ {
+- this->x %= T(s);
+- this->y %= T(s);
+- this->z %= T(s);
+- this->w %= T(s);
++ this->x %= T(s_);
++ this->y %= T(s_);
++ this->z %= T(s_);
++ this->w %= T(s_);
+ return *this;
+ }
+
+@@ -544,12 +544,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator&= (U s_)
+ {
+- this->x &= T(s);
+- this->y &= T(s);
+- this->z &= T(s);
+- this->w &= T(s);
++ this->x &= T(s_);
++ this->y &= T(s_);
++ this->z &= T(s_);
++ this->w &= T(s_);
+ return *this;
+ }
+
+@@ -569,12 +569,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator|= (U s_)
+ {
+- this->x |= T(s);
+- this->y |= T(s);
+- this->z |= T(s);
+- this->w |= T(s);
++ this->x |= T(s_);
++ this->y |= T(s_);
++ this->z |= T(s_);
++ this->w |= T(s_);
+ return *this;
+ }
+
+@@ -594,12 +594,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator^= (U s_)
+ {
+- this->x ^= T(s);
+- this->y ^= T(s);
+- this->z ^= T(s);
+- this->w ^= T(s);
++ this->x ^= T(s_);
++ this->y ^= T(s_);
++ this->z ^= T(s_);
++ this->w ^= T(s_);
+ return *this;
+ }
+
+@@ -619,12 +619,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator<<= (U s_)
+ {
+- this->x <<= T(s);
+- this->y <<= T(s);
+- this->z <<= T(s);
+- this->w <<= T(s);
++ this->x <<= T(s_);
++ this->y <<= T(s_);
++ this->z <<= T(s_);
++ this->w <<= T(s_);
+ return *this;
+ }
+
+@@ -644,12 +644,12 @@
+
+ template <typename T>
+ template <typename U>
+- GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>= (U s)
++ GLM_FUNC_QUALIFIER tvec4<T> & tvec4<T>::operator>>= (U s_)
+ {
+- this->x >>= T(s);
+- this->y >>= T(s);
+- this->z >>= T(s);
+- this->w >>= T(s);
++ this->x >>= T(s_);
++ this->y >>= T(s_);
++ this->z >>= T(s_);
++ this->w >>= T(s_);
+ return *this;
+ }
+
+@@ -674,94 +674,94 @@
+ GLM_FUNC_QUALIFIER typename tvec4<T>::value_type
+ tvec4<T>::swizzle
+ (
+- comp x
++ comp x_
+ ) const
+ {
+- return (*this)[x];
++ return (*this)[x_];
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec2<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ ) const
+ {
+ return tvec2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec3<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z
++ comp x_,
++ comp y_,
++ comp z_
+ ) const
+ {
+ return tvec3<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z,
+- comp w
++ comp x_,
++ comp y_,
++ comp z_,
++ comp w_
+ ) const
+ {
+ return tvec4<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z],
+- (*this)[w]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_],
++ (*this)[w_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref2<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y
++ comp x_,
++ comp y_
+ )
+ {
+ return tref2<T>(
+- (*this)[x],
+- (*this)[y]);
++ (*this)[x_],
++ (*this)[y_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref3<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z
++ comp x_,
++ comp y_,
++ comp z_
+ )
+ {
+ return tref3<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_]);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tref4<T> tvec4<T>::swizzle
+ (
+- comp x,
+- comp y,
+- comp z,
+- comp w
++ comp x_,
++ comp y_,
++ comp z_,
++ comp w_
+ )
+ {
+ return tref4<T>(
+- (*this)[x],
+- (*this)[y],
+- (*this)[z],
+- (*this)[w]);
++ (*this)[x_],
++ (*this)[y_],
++ (*this)[z_],
++ (*this)[w_]);
+ }
+
+ //////////////////////////////////////
+@@ -771,28 +771,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator+
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x + s,
+- v.y + s,
+- v.z + s,
+- v.w + s);
++ v.x + s_,
++ v.y + s_,
++ v.z + s_,
++ v.w + s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator+
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s + v.x,
+- s + v.y,
+- s + v.z,
+- s + v.w);
++ s_ + v.x,
++ s_ + v.y,
++ s_ + v.z,
++ s_ + v.w);
+ }
+
+ template <typename T>
+@@ -814,28 +814,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator-
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x - s,
+- v.y - s,
+- v.z - s,
+- v.w - s);
++ v.x - s_,
++ v.y - s_,
++ v.z - s_,
++ v.w - s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator-
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s - v.x,
+- s - v.y,
+- s - v.z,
+- s - v.w);
++ s_ - v.x,
++ s_ - v.y,
++ s_ - v.z,
++ s_ - v.w);
+ }
+
+ template <typename T>
+@@ -857,28 +857,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator*
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x * s,
+- v.y * s,
+- v.z * s,
+- v.w * s);
++ v.x * s_,
++ v.y * s_,
++ v.z * s_,
++ v.w * s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator*
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s * v.x,
+- s * v.y,
+- s * v.z,
+- s * v.w);
++ s_ * v.x,
++ s_ * v.y,
++ s_ * v.z,
++ s_ * v.w);
+ }
+
+ template <typename T>
+@@ -900,28 +900,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator/
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x / s,
+- v.y / s,
+- v.z / s,
+- v.w / s);
++ v.x / s_,
++ v.y / s_,
++ v.z / s_,
++ v.w / s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator/
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s / v.x,
+- s / v.y,
+- s / v.z,
+- s / v.w);
++ s_ / v.x,
++ s_ / v.y,
++ s_ / v.z,
++ s_ / v.w);
+ }
+
+ template <typename T>
+@@ -1012,28 +1012,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator%
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x % s,
+- v.y % s,
+- v.z % s,
+- v.w % s);
++ v.x % s_,
++ v.y % s_,
++ v.z % s_,
++ v.w % s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator%
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s % v.x,
+- s % v.y,
+- s % v.z,
+- s % v.w);
++ s_ % v.x,
++ s_ % v.y,
++ s_ % v.z,
++ s_ % v.w);
+ }
+
+ template <typename T>
+@@ -1054,28 +1054,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator&
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x & s,
+- v.y & s,
+- v.z & s,
+- v.w & s);
++ v.x & s_,
++ v.y & s_,
++ v.z & s_,
++ v.w & s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator&
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s & v.x,
+- s & v.y,
+- s & v.z,
+- s & v.w);
++ s_ & v.x,
++ s_ & v.y,
++ s_ & v.z,
++ s_ & v.w);
+ }
+
+ template <typename T>
+@@ -1096,28 +1096,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator|
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x | s,
+- v.y | s,
+- v.z | s,
+- v.w | s);
++ v.x | s_,
++ v.y | s_,
++ v.z | s_,
++ v.w | s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator|
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s | v.x,
+- s | v.y,
+- s | v.z,
+- s | v.w);
++ s_ | v.x,
++ s_ | v.y,
++ s_ | v.z,
++ s_ | v.w);
+ }
+
+ template <typename T>
+@@ -1138,28 +1138,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator^
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x ^ s,
+- v.y ^ s,
+- v.z ^ s,
+- v.w ^ s);
++ v.x ^ s_,
++ v.y ^ s_,
++ v.z ^ s_,
++ v.w ^ s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator^
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s ^ v.x,
+- s ^ v.y,
+- s ^ v.z,
+- s ^ v.w);
++ s_ ^ v.x,
++ s_ ^ v.y,
++ s_ ^ v.z,
++ s_ ^ v.w);
+ }
+
+ template <typename T>
+@@ -1180,28 +1180,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator<<
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x << s,
+- v.y << s,
+- v.z << s,
+- v.w << s);
++ v.x << s_,
++ v.y << s_,
++ v.z << s_,
++ v.w << s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator<<
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s << v.x,
+- s << v.y,
+- s << v.z,
+- s << v.w);
++ s_ << v.x,
++ s_ << v.y,
++ s_ << v.z,
++ s_ << v.w);
+ }
+
+ template <typename T>
+@@ -1222,28 +1222,28 @@
+ GLM_FUNC_QUALIFIER tvec4<T> operator>>
+ (
+ tvec4<T> const & v,
+- typename tvec4<T>::value_type const & s
++ typename tvec4<T>::value_type const & s_
+ )
+ {
+ return tvec4<T>(
+- v.x >> s,
+- v.y >> s,
+- v.z >> s,
+- v.w >> s);
++ v.x >> s_,
++ v.y >> s_,
++ v.z >> s_,
++ v.w >> s_);
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tvec4<T> operator>>
+ (
+- typename tvec4<T>::value_type const & s,
++ typename tvec4<T>::value_type const & s_,
+ tvec4<T> const & v
+ )
+ {
+ return tvec4<T>(
+- s >> v.x,
+- s >> v.y,
+- s >> v.z,
+- s >> v.w);
++ s_ >> v.x,
++ s_ >> v.y,
++ s_ >> v.z,
++ s_ >> v.w);
+ }
+
+ template <typename T>
+@@ -1279,15 +1279,15 @@
+ template <typename T>
+ tref4<T>::tref4
+ (
+- T & x,
+- T & y,
+- T & z,
+- T & w
+- ) :
+- x(x),
+- y(y),
+- z(z),
+- w(w)
++ T & x_,
++ T & y_,
++ T & z_,
++ T & w_
++ ) :
++ x(x_),
++ y(y_),
++ z(z_),
++ w(w_)
+ {}
+
+ template <typename T>
+diff -ur glm.org/glm/gtc/quaternion.inl glm/glm/gtc/quaternion.inl
+--- glm.org/glm/gtc/quaternion.inl 2013-12-08 17:04:59.707365220 +0100
++++ glm/glm/gtc/quaternion.inl 2013-12-08 17:07:20.081840460 +0100
+@@ -60,15 +60,15 @@
+ template <typename T>
+ GLM_FUNC_QUALIFIER tquat<T>::tquat
+ (
+- value_type const & w,
+- value_type const & x,
+- value_type const & y,
+- value_type const & z
++ value_type const & w_,
++ value_type const & x_,
++ value_type const & y_,
++ value_type const & z_
+ ) :
+- x(x),
+- y(y),
+- z(z),
+- w(w)
++ x(x_),
++ y(y_),
++ z(z_),
++ w(w_)
+ {}
+
+ //////////////////////////////////////////////////////////////