diff --git a/glm/core/func_common.hpp b/glm/core/func_common.hpp
index f184c45e..fcf7eb76 100644
--- a/glm/core/func_common.hpp
+++ b/glm/core/func_common.hpp
@@ -50,7 +50,7 @@ namespace glm
/// @see GLSL abs man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType abs(genType const & x);
+ GLM_FUNC_DECL genType abs(genType const & x);
/// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
///
@@ -59,7 +59,7 @@ namespace glm
/// @see GLSL sign man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType sign(genType const & x);
+ GLM_FUNC_DECL genType sign(genType const & x);
/// Returns a value equal to the nearest integer that is less then or equal to x.
///
@@ -68,7 +68,7 @@ namespace glm
/// @see GLSL floor man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType floor(genType const & x);
+ GLM_FUNC_DECL genType floor(genType const & x);
/// Returns a value equal to the nearest integer to x
/// whose absolute value is not larger than the absolute value of x.
@@ -78,7 +78,7 @@ namespace glm
/// @see GLSL trunc man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType trunc(genType const & x);
+ GLM_FUNC_DECL genType trunc(genType const & x);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
@@ -91,7 +91,7 @@ namespace glm
/// @see GLSL round man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType round(genType const & x);
+ GLM_FUNC_DECL genType round(genType const & x);
/// Returns a value equal to the nearest integer to x.
/// A fractional part of 0.5 will round toward the nearest even
@@ -103,7 +103,7 @@ namespace glm
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
/// @see New round to even technique
template
- genType roundEven(genType const & x);
+ GLM_FUNC_DECL genType roundEven(genType const & x);
/// Returns a value equal to the nearest integer
/// that is greater than or equal to x.
@@ -113,7 +113,7 @@ namespace glm
/// @see GLSL ceil man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType ceil(genType const & x);
+ GLM_FUNC_DECL genType ceil(genType const & x);
/// Return x - floor(x).
///
@@ -122,7 +122,7 @@ namespace glm
/// @see GLSL fract man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType fract(genType const & x);
+ GLM_FUNC_DECL genType fract(genType const & x);
/// Modulus. Returns x - y * floor(x / y)
/// for each component in x using the floating point value y.
@@ -132,7 +132,7 @@ namespace glm
/// @see GLSL mod man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType mod(
+ GLM_FUNC_DECL genType mod(
genType const & x,
genType const & y);
@@ -144,7 +144,7 @@ namespace glm
/// @see GLSL mod man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType mod(
+ GLM_FUNC_DECL genType mod(
genType const & x,
typename genType::value_type const & y);
@@ -158,7 +158,7 @@ namespace glm
/// @see GLSL modf man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType modf(
+ GLM_FUNC_DECL genType modf(
genType const & x,
genType & i);
@@ -169,12 +169,12 @@ namespace glm
/// @see GLSL min man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType min(
+ GLM_FUNC_DECL genType min(
genType const & x,
genType const & y);
template
- genType min(
+ GLM_FUNC_DECL genType min(
genType const & x,
typename genType::value_type const & y);
@@ -185,12 +185,12 @@ namespace glm
/// @see GLSL max man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType max(
+ GLM_FUNC_DECL genType max(
genType const & x,
genType const & y);
template
- genType max(
+ GLM_FUNC_DECL genType max(
genType const & x,
typename genType::value_type const & y);
@@ -202,13 +202,13 @@ namespace glm
/// @see GLSL clamp man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType clamp(
+ GLM_FUNC_DECL genType clamp(
genType const & x,
genType const & minVal,
genType const & maxVal);
template
- genType clamp(
+ GLM_FUNC_DECL genType clamp(
genType const & x,
typename genType::value_type const & minVal,
typename genType::value_type const & maxVal);
@@ -256,19 +256,19 @@ namespace glm
/// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
/// @endcode
template
- genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
+ GLM_FUNC_DECL genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
//! Returns 0.0 if x < edge, otherwise it returns 1.0.
//!
/// @see GLSL step man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType step(
+ GLM_FUNC_DECL genType step(
genType const & edge,
genType const & x);
template
- genType step(
+ GLM_FUNC_DECL genType step(
typename genType::value_type const & edge,
genType const & x);
@@ -287,13 +287,13 @@ namespace glm
/// @see GLSL smoothstep man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType smoothstep(
+ GLM_FUNC_DECL genType smoothstep(
genType const & edge0,
genType const & edge1,
genType const & x);
template
- genType smoothstep(
+ GLM_FUNC_DECL genType smoothstep(
typename genType::value_type const & edge0,
typename genType::value_type const & edge1,
genType const & x);
@@ -311,7 +311,7 @@ namespace glm
/// @see GLSL isnan man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- typename genType::bool_type isnan(genType const & x);
+ GLM_FUNC_DECL typename genType::bool_type isnan(genType const & x);
/// Returns true if x holds a positive infinity or negative
/// infinity representation in the underlying implementation's
@@ -324,7 +324,7 @@ namespace glm
/// @see GLSL isinf man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- typename genType::bool_type isinf(genType const & x);
+ GLM_FUNC_DECL typename genType::bool_type isinf(genType const & x);
/// Returns a signed integer value representing
/// the encoding of a floating-point value. The floatingpoint
@@ -336,7 +336,7 @@ namespace glm
/// @see GLSL floatBitsToInt man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genIType floatBitsToInt(genType const & value);
+ GLM_FUNC_DECL genIType floatBitsToInt(genType const & value);
/// Returns a unsigned integer value representing
/// the encoding of a floating-point value. The floatingpoint
@@ -348,7 +348,7 @@ namespace glm
/// @see GLSL floatBitsToUint man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genUType floatBitsToUint(genType const & value);
+ GLM_FUNC_DECL genUType floatBitsToUint(genType const & value);
/// Returns a floating-point value corresponding to a signed
/// integer encoding of a floating-point value.
@@ -364,7 +364,7 @@ namespace glm
///
/// @todo Clarify this declaration, we don't need to actually specify the return type
template
- genType intBitsToFloat(genIType const & value);
+ GLM_FUNC_DECL genType intBitsToFloat(genIType const & value);
/// Returns a floating-point value corresponding to a
/// unsigned integer encoding of a floating-point value.
@@ -380,7 +380,7 @@ namespace glm
///
/// @todo Clarify this declaration, we don't need to actually specify the return type
template
- genType uintBitsToFloat(genUType const & value);
+ GLM_FUNC_DECL genType uintBitsToFloat(genUType const & value);
/// Computes and returns a * b + c.
///
@@ -389,7 +389,7 @@ namespace glm
/// @see GLSL fma man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType fma(genType const & a, genType const & b, genType const & c);
+ GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
/// Splits x into a floating-point significand in the range
/// [0.5, 1.0) and an integral exponent of two, such that:
@@ -406,7 +406,7 @@ namespace glm
/// @see GLSL frexp man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType frexp(genType const & x, genIType & exp);
+ GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
/// Builds a floating-point number from x and the
/// corresponding integral exponent of two in exp, returning:
@@ -420,7 +420,7 @@ namespace glm
/// @see GLSL ldexp man page;
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- genType ldexp(genType const & x, genIType const & exp);
+ GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
/// @}
}//namespace glm
diff --git a/glm/core/func_exponential.hpp b/glm/core/func_exponential.hpp
index 03da794a..dc76fcbb 100644
--- a/glm/core/func_exponential.hpp
+++ b/glm/core/func_exponential.hpp
@@ -50,7 +50,7 @@ namespace glm
/// @see GLSL pow man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType pow(genType const & base, genType const & exponent);
+ GLM_FUNC_DECL genType pow(genType const & base, genType const & exponent);
/// Returns the natural exponentiation of x, i.e., e^x.
///
@@ -60,7 +60,7 @@ namespace glm
/// @see GLSL exp man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType exp(genType const & x);
+ GLM_FUNC_DECL genType exp(genType const & x);
/// Returns the natural logarithm of x, i.e.,
/// returns the value y which satisfies the equation x = e^y.
@@ -72,7 +72,7 @@ namespace glm
/// @see GLSL log man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType log(genType const & x);
+ GLM_FUNC_DECL genType log(genType const & x);
/// Returns 2 raised to the x power.
///
@@ -82,7 +82,7 @@ namespace glm
/// @see GLSL exp2 man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType exp2(genType const & x);
+ GLM_FUNC_DECL genType exp2(genType const & x);
/// Returns the base 2 log of x, i.e., returns the value y,
/// which satisfies the equation x = 2 ^ y.
@@ -93,7 +93,7 @@ namespace glm
/// @see GLSL log2 man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType log2(genType const & x);
+ GLM_FUNC_DECL genType log2(genType const & x);
/// Returns the positive square root of x.
///
@@ -103,7 +103,7 @@ namespace glm
/// @see GLSL sqrt man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType sqrt(genType const & x);
+ GLM_FUNC_DECL genType sqrt(genType const & x);
/// Returns the reciprocal of the positive square root of x.
///
@@ -113,7 +113,7 @@ namespace glm
/// @see GLSL inversesqrt man page
/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions
template
- genType inversesqrt(genType const & x);
+ GLM_FUNC_DECL genType inversesqrt(genType const & x);
/// @}
}//namespace glm
diff --git a/glm/core/func_geometric.hpp b/glm/core/func_geometric.hpp
index 8d12bbd4..c221084f 100644
--- a/glm/core/func_geometric.hpp
+++ b/glm/core/func_geometric.hpp
@@ -48,7 +48,7 @@ namespace glm
/// @see GLSL length man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- typename genType::value_type length(
+ GLM_FUNC_DECL typename genType::value_type length(
genType const & x);
/// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
@@ -58,7 +58,7 @@ namespace glm
/// @see GLSL distance man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- typename genType::value_type distance(
+ GLM_FUNC_DECL typename genType::value_type distance(
genType const & p0,
genType const & p1);
@@ -69,7 +69,7 @@ namespace glm
/// @see GLSL dot man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- typename genType::value_type dot(
+ GLM_FUNC_DECL typename genType::value_type dot(
genType const & x,
genType const & y);
@@ -80,7 +80,7 @@ namespace glm
/// @see GLSL cross man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- detail::tvec3 cross(
+ GLM_FUNC_DECL detail::tvec3 cross(
detail::tvec3 const & x,
detail::tvec3 const & y);
@@ -89,7 +89,7 @@ namespace glm
/// @see GLSL normalize man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- genType normalize(
+ GLM_FUNC_DECL genType normalize(
genType const & x);
/// If dot(Nref, I) < 0.0, return N, otherwise, return -N.
@@ -99,7 +99,7 @@ namespace glm
/// @see GLSL faceforward man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- genType faceforward(
+ GLM_FUNC_DECL genType faceforward(
genType const & N,
genType const & I,
genType const & Nref);
@@ -112,7 +112,7 @@ namespace glm
/// @see GLSL reflect man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- genType reflect(
+ GLM_FUNC_DECL genType reflect(
genType const & I,
genType const & N);
@@ -125,7 +125,7 @@ namespace glm
/// @see GLSL refract man page
/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions
template
- genType refract(
+ GLM_FUNC_DECL genType refract(
genType const & I,
genType const & N,
typename genType::value_type const & eta);
diff --git a/glm/core/func_integer.hpp b/glm/core/func_integer.hpp
index 2b6f993e..df9a4015 100644
--- a/glm/core/func_integer.hpp
+++ b/glm/core/func_integer.hpp
@@ -52,7 +52,7 @@ namespace glm
/// @see GLSL uaddCarry man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- genUType uaddCarry(
+ GLM_FUNC_DECL genUType uaddCarry(
genUType const & x,
genUType const & y,
genUType & carry);
@@ -66,7 +66,7 @@ namespace glm
/// @see GLSL usubBorrow man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- genUType usubBorrow(
+ GLM_FUNC_DECL genUType usubBorrow(
genUType const & x,
genUType const & y,
genUType & borrow);
@@ -80,7 +80,7 @@ namespace glm
/// @see GLSL umulExtended man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- void umulExtended(
+ GLM_FUNC_DECL void umulExtended(
genUType const & x,
genUType const & y,
genUType & msb,
@@ -95,7 +95,7 @@ namespace glm
/// @see GLSL imulExtended man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- void imulExtended(
+ GLM_FUNC_DECL void imulExtended(
genIType const & x,
genIType const & y,
genIType & msb,
@@ -117,7 +117,7 @@ namespace glm
/// @see GLSL bitfieldExtract man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- genIUType bitfieldExtract(
+ GLM_FUNC_DECL genIUType bitfieldExtract(
genIUType const & Value,
int const & Offset,
int const & Bits);
@@ -137,7 +137,7 @@ namespace glm
/// @see GLSL bitfieldInsert man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- genIUType bitfieldInsert(
+ GLM_FUNC_DECL genIUType bitfieldInsert(
genIUType const & Base,
genIUType const & Insert,
int const & Offset,
@@ -152,7 +152,7 @@ namespace glm
/// @see GLSL bitfieldReverse man page
/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions
template
- genIUType bitfieldReverse(genIUType const & Value);
+ GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const & Value);
/// Returns the number of bits set to 1 in the binary representation of value.
///
@@ -163,7 +163,7 @@ namespace glm
///
/// @todo Clarify the declaration to specify that scalars are suported.
template class genIUType>
- typename genIUType::signed_type bitCount(genIUType const & Value);
+ GLM_FUNC_DECL typename genIUType::signed_type bitCount(genIUType const & Value);
/// Returns the bit number of the least significant bit set to
/// 1 in the binary representation of value.
@@ -176,7 +176,7 @@ namespace glm
///
/// @todo Clarify the declaration to specify that scalars are suported.
template class genIUType>
- typename genIUType::signed_type findLSB(genIUType const & Value);
+ GLM_FUNC_DECL typename genIUType::signed_type findLSB(genIUType const & Value);
/// Returns the bit number of the most significant bit in the binary representation of value.
/// For positive integers, the result will be the bit number of the most significant bit set to 1.
@@ -190,7 +190,7 @@ namespace glm
///
/// @todo Clarify the declaration to specify that scalars are suported.
template class genIUType>
- typename genIUType::signed_type findMSB(genIUType const & Value);
+ GLM_FUNC_DECL typename genIUType::signed_type findMSB(genIUType const & Value);
/// @}
}//namespace glm
diff --git a/glm/core/func_matrix.hpp b/glm/core/func_matrix.hpp
index 00fc1e15..3c92cbba 100644
--- a/glm/core/func_matrix.hpp
+++ b/glm/core/func_matrix.hpp
@@ -53,7 +53,7 @@ namespace glm
/// @see GLSL matrixCompMult man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- matType matrixCompMult(
+ GLM_FUNC_DECL matType matrixCompMult(
matType const & x,
matType const & y);
@@ -68,7 +68,7 @@ namespace glm
///
/// @todo Clarify the declaration to specify that matType doesn't have to be provided when used.
template
- matType outerProduct(
+ GLM_FUNC_DECL matType outerProduct(
vecType const & c,
vecType const & r);
@@ -79,7 +79,7 @@ namespace glm
/// @see GLSL transpose man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- typename matType::transpose_type transpose(
+ GLM_FUNC_DECL typename matType::transpose_type transpose(
matType const & x);
/// Return the determinant of a mat2 matrix.
@@ -89,7 +89,7 @@ namespace glm
/// @see GLSL determinant man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- typename detail::tmat2x2::value_type determinant(
+ GLM_FUNC_DECL typename detail::tmat2x2::value_type determinant(
detail::tmat2x2 const & m);
/// Return the determinant of a mat3 matrix.
@@ -99,7 +99,7 @@ namespace glm
/// @see GLSL determinant man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- typename detail::tmat3x3::value_type determinant(
+ GLM_FUNC_DECL typename detail::tmat3x3::value_type determinant(
detail::tmat3x3 const & m);
/// Return the determinant of a mat4 matrix.
@@ -109,7 +109,7 @@ namespace glm
/// @see GLSL determinant man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- typename detail::tmat4x4::value_type determinant(
+ GLM_FUNC_DECL typename detail::tmat4x4::value_type determinant(
detail::tmat4x4 const & m);
/// Return the inverse of a mat2 matrix.
@@ -119,7 +119,7 @@ namespace glm
/// @see GLSL inverse man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- detail::tmat2x2 inverse(
+ GLM_FUNC_DECL detail::tmat2x2 inverse(
detail::tmat2x2 const & m);
/// Return the inverse of a mat3 matrix.
@@ -129,7 +129,7 @@ namespace glm
/// @see GLSL inverse man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- detail::tmat3x3 inverse(
+ GLM_FUNC_DECL detail::tmat3x3 inverse(
detail::tmat3x3 const & m);
/// Return the inverse of a mat4 matrix.
@@ -139,7 +139,7 @@ namespace glm
/// @see GLSL inverse man page
/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions
template
- detail::tmat4x4 inverse(
+ GLM_FUNC_DECL detail::tmat4x4 inverse(
detail::tmat4x4 const & m);
/// @}
diff --git a/glm/core/func_noise.hpp b/glm/core/func_noise.hpp
index 985d0fc8..3e5f8741 100644
--- a/glm/core/func_noise.hpp
+++ b/glm/core/func_noise.hpp
@@ -50,7 +50,7 @@ namespace glm
/// @see GLSL noise1 man page
/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions
template
- typename genType::value_type noise1(genType const & x);
+ GLM_FUNC_DECL typename genType::value_type noise1(genType const & x);
/// Returns a 2D noise value based on the input value x.
///
@@ -59,7 +59,7 @@ namespace glm
/// @see GLSL noise2 man page
/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions
template
- detail::tvec2 noise2(genType const & x);
+ GLM_FUNC_DECL detail::tvec2 noise2(genType const & x);
/// Returns a 3D noise value based on the input value x.
///
@@ -68,7 +68,7 @@ namespace glm
/// @see GLSL noise3 man page
/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions
template
- detail::tvec3 noise3(genType const & x);
+ GLM_FUNC_DECL detail::tvec3 noise3(genType const & x);
/// Returns a 4D noise value based on the input value x.
///
@@ -77,7 +77,7 @@ namespace glm
/// @see GLSL noise4 man page
/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions
template
- detail::tvec4 noise4(genType const & x);
+ GLM_FUNC_DECL detail::tvec4 noise4(genType const & x);
/// @}
}//namespace glm
diff --git a/glm/core/func_packing.hpp b/glm/core/func_packing.hpp
index 2eb580e5..b4312e12 100644
--- a/glm/core/func_packing.hpp
+++ b/glm/core/func_packing.hpp
@@ -52,7 +52,7 @@ namespace glm
//!
/// @see GLSL packUnorm2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::uint32 packUnorm2x16(detail::tvec2 const & v);
+ GLM_FUNC_DECL detail::uint32 packUnorm2x16(detail::tvec2 const & v);
//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.
//! Then, the results are packed into the returned 32-bit unsigned integer.
@@ -65,7 +65,7 @@ namespace glm
//!
/// @see GLSL packSnorm2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::uint32 packSnorm2x16(detail::tvec2 const & v);
+ GLM_FUNC_DECL detail::uint32 packSnorm2x16(detail::tvec2 const & v);
//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.
//! Then, the results are packed into the returned 32-bit unsigned integer.
@@ -78,7 +78,7 @@ namespace glm
//!
/// @see GLSL packUnorm4x8 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::uint32 packUnorm4x8(detail::tvec4 const & v);
+ GLM_FUNC_DECL detail::uint32 packUnorm4x8(detail::tvec4 const & v);
//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.
//! Then, the results are packed into the returned 32-bit unsigned integer.
@@ -91,7 +91,7 @@ namespace glm
//!
/// @see GLSL packSnorm4x8 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::uint32 packSnorm4x8(detail::tvec4 const & v);
+ GLM_FUNC_DECL detail::uint32 packSnorm4x8(detail::tvec4 const & v);
//! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
//! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.
@@ -104,7 +104,7 @@ namespace glm
//!
/// @see GLSL unpackUnorm2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::tvec2 unpackUnorm2x16(detail::uint32 const & p);
+ GLM_FUNC_DECL detail::tvec2 unpackUnorm2x16(detail::uint32 const & p);
//! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
//! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.
@@ -117,7 +117,7 @@ namespace glm
//!
/// @see GLSL unpackSnorm2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::tvec2 unpackSnorm2x16(detail::uint32 const & p);
+ GLM_FUNC_DECL detail::tvec2 unpackSnorm2x16(detail::uint32 const & p);
/// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
/// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.
@@ -130,7 +130,7 @@ namespace glm
///
/// @see GLSL unpackUnorm4x8 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::tvec4 unpackUnorm4x8(detail::uint32 const & p);
+ GLM_FUNC_DECL detail::tvec4 unpackUnorm4x8(detail::uint32 const & p);
/// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
/// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.
@@ -143,7 +143,7 @@ namespace glm
///
/// @see GLSL unpackSnorm4x8 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::tvec4 unpackSnorm4x8(detail::uint32 const & p);
+ GLM_FUNC_DECL detail::tvec4 unpackSnorm4x8(detail::uint32 const & p);
/// Returns a double-precision value obtained by packing the components of v into a 64-bit value.
/// If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified.
@@ -153,7 +153,7 @@ namespace glm
///
/// @see GLSL packDouble2x32 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- double packDouble2x32(detail::tvec2 const & v);
+ GLM_FUNC_DECL double packDouble2x32(detail::tvec2 const & v);
/// Returns a two-component unsigned integer vector representation of v.
/// The bit-level representation of v is preserved.
@@ -162,7 +162,7 @@ namespace glm
///
/// @see GLSL unpackDouble2x32 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- detail::tvec2 unpackDouble2x32(double const & v);
+ GLM_FUNC_DECL detail::tvec2 unpackDouble2x32(double const & v);
/// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector
/// to the 16-bit floating-point representation found in the OpenGL Specification,
@@ -172,7 +172,7 @@ namespace glm
///
/// @see GLSL packHalf2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- uint packHalf2x16(vec2 const & v);
+ GLM_FUNC_DECL uint packHalf2x16(vec2 const & v);
/// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values,
/// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification,
@@ -182,7 +182,7 @@ namespace glm
///
/// @see GLSL unpackHalf2x16 man page
/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- vec2 unpackHalf2x16(uint const & v);
+ GLM_FUNC_DECL vec2 unpackHalf2x16(uint const & v);
/// @}
}//namespace glm
diff --git a/glm/core/func_trigonometric.hpp b/glm/core/func_trigonometric.hpp
index 1e983fa2..9954d9ce 100644
--- a/glm/core/func_trigonometric.hpp
+++ b/glm/core/func_trigonometric.hpp
@@ -52,7 +52,7 @@ namespace glm
/// @see GLSL radians man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType radians(genType const & degrees);
+ GLM_FUNC_DECL genType radians(genType const & degrees);
/// Converts radians to degrees and returns the result.
///
@@ -61,7 +61,7 @@ namespace glm
/// @see GLSL degrees man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType degrees(genType const & radians);
+ GLM_FUNC_DECL genType degrees(genType const & radians);
/// The standard trigonometric sine function.
/// The values returned by this function will range from [-1, 1].
@@ -71,7 +71,7 @@ namespace glm
/// @see GLSL sin man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType sin(genType const & angle);
+ GLM_FUNC_DECL genType sin(genType const & angle);
/// The standard trigonometric cosine function.
/// The values returned by this function will range from [-1, 1].
@@ -81,7 +81,7 @@ namespace glm
/// @see GLSL cos man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType cos(genType const & angle);
+ GLM_FUNC_DECL genType cos(genType const & angle);
/// The standard trigonometric tangent function.
///
@@ -90,7 +90,7 @@ namespace glm
/// @see GLSL tan man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType tan(genType const & angle);
+ GLM_FUNC_DECL genType tan(genType const & angle);
/// Arc sine. Returns an angle whose sine is x.
/// The range of values returned by this function is [-PI/2, PI/2].
@@ -101,7 +101,7 @@ namespace glm
/// @see GLSL asin man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType asin(genType const & x);
+ GLM_FUNC_DECL genType asin(genType const & x);
/// Arc cosine. Returns an angle whose sine is x.
/// The range of values returned by this function is [0, PI].
@@ -112,7 +112,7 @@ namespace glm
/// @see GLSL acos man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType acos(genType const & x);
+ GLM_FUNC_DECL genType acos(genType const & x);
/// Arc tangent. Returns an angle whose tangent is y/x.
/// The signs of x and y are used to determine what
@@ -125,7 +125,7 @@ namespace glm
/// @see GLSL atan man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType atan(genType const & y, genType const & x);
+ GLM_FUNC_DECL genType atan(genType const & y, genType const & x);
/// Arc tangent. Returns an angle whose tangent is y_over_x.
/// The range of values returned by this function is [-PI/2, PI/2].
@@ -135,7 +135,7 @@ namespace glm
/// @see GLSL atan man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType atan(genType const & y_over_x);
+ GLM_FUNC_DECL genType atan(genType const & y_over_x);
/// Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2
///
@@ -144,7 +144,7 @@ namespace glm
/// @see GLSL sinh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType sinh(genType const & angle);
+ GLM_FUNC_DECL genType sinh(genType const & angle);
/// Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2
///
@@ -153,7 +153,7 @@ namespace glm
/// @see GLSL cosh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType cosh(genType const & angle);
+ GLM_FUNC_DECL genType cosh(genType const & angle);
/// Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
///
@@ -162,7 +162,7 @@ namespace glm
/// @see GLSL tanh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType tanh(genType const & angle);
+ GLM_FUNC_DECL genType tanh(genType const & angle);
/// Arc hyperbolic sine; returns the inverse of sinh.
///
@@ -171,7 +171,7 @@ namespace glm
/// @see GLSL asinh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType asinh(genType const & x);
+ GLM_FUNC_DECL genType asinh(genType const & x);
/// Arc hyperbolic cosine; returns the non-negative inverse
/// of cosh. Results are undefined if x < 1.
@@ -181,7 +181,7 @@ namespace glm
/// @see GLSL acosh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType acosh(genType const & x);
+ GLM_FUNC_DECL genType acosh(genType const & x);
/// Arc hyperbolic tangent; returns the inverse of tanh.
/// Results are undefined if abs(x) >= 1.
@@ -191,7 +191,7 @@ namespace glm
/// @see GLSL atanh man page
/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
template
- genType atanh(genType const & x);
+ GLM_FUNC_DECL genType atanh(genType const & x);
/// @}
}//namespace glm
diff --git a/glm/core/func_vector_relational.hpp b/glm/core/func_vector_relational.hpp
index 74fab40c..4ffe14ea 100644
--- a/glm/core/func_vector_relational.hpp
+++ b/glm/core/func_vector_relational.hpp
@@ -55,7 +55,7 @@ namespace glm
/// @see GLSL lessThan man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type lessThan(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type lessThan(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x <= y.
///
@@ -64,7 +64,7 @@ namespace glm
/// @see GLSL lessThanEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x > y.
///
@@ -73,7 +73,7 @@ namespace glm
/// @see GLSL greaterThan man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type greaterThan(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type greaterThan(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x >= y.
///
@@ -82,7 +82,7 @@ namespace glm
/// @see GLSL greaterThanEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x == y.
///
@@ -91,7 +91,7 @@ namespace glm
/// @see GLSL equal man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type equal(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type equal(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x != y.
///
@@ -100,7 +100,7 @@ namespace glm
/// @see GLSL notEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template
- typename vecType::bool_type notEqual(vecType const & x, vecType const & y);
+ GLM_FUNC_DECL typename vecType::bool_type notEqual(vecType const & x, vecType const & y);
/// Returns true if any component of x is true.
///
@@ -109,7 +109,7 @@ namespace glm
/// @see GLSL any man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template class vecType>
- bool any(vecType const & v);
+ GLM_FUNC_DECL bool any(vecType const & v);
/// Returns true if all components of x are true.
///
@@ -118,7 +118,7 @@ namespace glm
/// @see GLSL all man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template class vecType>
- bool all(vecType const & v);
+ GLM_FUNC_DECL bool all(vecType const & v);
/// Returns the component-wise logical complement of x.
/// /!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.
@@ -128,7 +128,7 @@ namespace glm
/// @see GLSL not man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
template class vecType>
- vecType not_(vecType const & v);
+ GLM_FUNC_DECL vecType not_(vecType const & v);
/// @}
}//namespace glm
diff --git a/glm/core/type_mat2x2.hpp b/glm/core/type_mat2x2.hpp
index c8bda944..9d756d8b 100644
--- a/glm/core/type_mat2x2.hpp
+++ b/glm/core/type_mat2x2.hpp
@@ -154,107 +154,107 @@ namespace detail
// Binary operators
template
- tmat2x2 operator+ (
+ GLM_FUNC_DECL tmat2x2 operator+ (
tmat2x2 const & m,
typename tmat2x2::value_type const & s);
template
- tmat2x2 operator+ (
+ GLM_FUNC_DECL tmat2x2 operator+ (
typename tmat2x2::value_type const & s,
tmat2x2 const & m);
template
- tmat2x2 operator+ (
+ GLM_FUNC_DECL tmat2x2 operator+ (
tmat2x2 const & m1,
tmat2x2 const & m2);
template
- tmat2x2 operator- (
+ GLM_FUNC_DECL tmat2x2 operator- (
tmat2x2 const & m,
typename tmat2x2::value_type const & s);
template
- tmat2x2 operator- (
+ GLM_FUNC_DECL tmat2x2 operator- (
typename tmat2x2::value_type const & s,
tmat2x2 const & m);
template
- tmat2x2 operator- (
+ GLM_FUNC_DECL tmat2x2 operator- (
tmat2x2 const & m1,
tmat2x2 const & m2);
template
- tmat2x2 operator* (
+ GLM_FUNC_DECL tmat2x2 operator* (
tmat2x2 const & m,
typename tmat2x2::value_type const & s);
template
- tmat2x2 operator* (
+ GLM_FUNC_DECL tmat2x2 operator* (
typename tmat2x2::value_type const & s,
tmat2x2 const & m);
template
- typename tmat2x2::col_type operator* (
+ GLM_FUNC_DECL typename tmat2x2::col_type operator* (
tmat2x2 const & m,
typename tmat2x2::row_type const & v);
template
- typename tmat2x2::row_type operator* (
+ GLM_FUNC_DECL typename tmat2x2::row_type operator* (
typename tmat2x2::col_type const & v,
tmat2x2 const & m);
template
- tmat2x2 operator* (
+ GLM_FUNC_DECL tmat2x2 operator* (
tmat2x2 const & m1,
tmat2x2 const & m2);
template
- tmat3x2 operator* (
+ GLM_FUNC_DECL tmat3x2 operator* (
tmat2x2 const & m1,
tmat3x2 const & m2);
template
- tmat4x2 operator* (
+ GLM_FUNC_DECL tmat4x2 operator* (
tmat2x2 const & m1,
tmat4x2 const & m2);
template
- tmat2x2 operator/ (
+ GLM_FUNC_DECL tmat2x2 operator/ (
tmat2x2 const & m,
typename tmat2x2::value_type const & s);
template
- tmat2x2 operator/ (
+ GLM_FUNC_DECL tmat2x2 operator/ (
typename tmat2x2::value_type const & s,
tmat2x2 const & m);
template
- typename tmat2x2::col_type operator/ (
+ GLM_FUNC_DECL typename tmat2x2::col_type operator/ (
tmat2x2 const & m,
typename tmat2x2::row_type const & v);
template
- typename tmat2x2::row_type operator/ (
+ GLM_FUNC_DECL typename tmat2x2::row_type operator/ (
typename tmat2x2::col_type const & v,
tmat2x2 const & m);
template
- tmat2x2 operator/ (
+ GLM_FUNC_DECL tmat2x2 operator/ (
tmat2x2 const & m1,
tmat2x2 const & m2);
// Unary constant operators
template
- tmat2x2 const operator- (
+ GLM_FUNC_DECL tmat2x2 const operator- (
tmat2x2