diff --git a/src/Magnum/MultisampleTexture.h b/src/Magnum/MultisampleTexture.h index 64b57a7aa..35f132213 100644 --- a/src/Magnum/MultisampleTexture.h +++ b/src/Magnum/MultisampleTexture.h @@ -40,9 +40,10 @@ namespace Magnum { namespace Implementation { template constexpr GLenum multisampleTextureTarget(); - template<> constexpr GLenum multisampleTextureTarget<2>() { return GL_TEXTURE_2D_MULTISAMPLE; } + /* GCC 4.5 doesn't have constexpr, so it needs inline */ + template<> constexpr inline GLenum multisampleTextureTarget<2>() { return GL_TEXTURE_2D_MULTISAMPLE; } #ifndef MAGNUM_TARGET_GLES - template<> constexpr GLenum multisampleTextureTarget<3>() { return GL_TEXTURE_2D_MULTISAMPLE_ARRAY; } + template<> constexpr inline GLenum multisampleTextureTarget<3>() { return GL_TEXTURE_2D_MULTISAMPLE_ARRAY; } #endif template typename DimensionTraits::VectorType maxMultisampleTextureSize(); diff --git a/src/Magnum/Texture.h b/src/Magnum/Texture.h index 3bfc75139..d1d1b8af9 100644 --- a/src/Magnum/Texture.h +++ b/src/Magnum/Texture.h @@ -40,11 +40,12 @@ namespace Magnum { namespace Implementation { template constexpr GLenum textureTarget(); + /* GCC 4.5 doesn't have constexpr, so it needs inline */ #ifndef MAGNUM_TARGET_GLES - template<> constexpr GLenum textureTarget<1>() { return GL_TEXTURE_1D; } + template<> constexpr inline GLenum textureTarget<1>() { return GL_TEXTURE_1D; } #endif - template<> constexpr GLenum textureTarget<2>() { return GL_TEXTURE_2D; } - template<> constexpr GLenum textureTarget<3>() { + template<> constexpr inline GLenum textureTarget<2>() { return GL_TEXTURE_2D; } + template<> constexpr inline GLenum textureTarget<3>() { #ifndef MAGNUM_TARGET_GLES2 return GL_TEXTURE_3D; #else diff --git a/src/Magnum/TextureArray.h b/src/Magnum/TextureArray.h index c6568a1f3..fd4a81892 100644 --- a/src/Magnum/TextureArray.h +++ b/src/Magnum/TextureArray.h @@ -41,10 +41,11 @@ namespace Magnum { namespace Implementation { template constexpr GLenum textureArrayTarget(); + /* GCC 4.5 doesn't have constexpr, so it needs inline */ #ifndef MAGNUM_TARGET_GLES - template<> constexpr GLenum textureArrayTarget<1>() { return GL_TEXTURE_1D_ARRAY; } + template<> constexpr inline GLenum textureArrayTarget<1>() { return GL_TEXTURE_1D_ARRAY; } #endif - template<> constexpr GLenum textureArrayTarget<2>() { return GL_TEXTURE_2D_ARRAY; } + template<> constexpr inline GLenum textureArrayTarget<2>() { return GL_TEXTURE_2D_ARRAY; } } /**