Browse Source

GCC 4.5 compatibility: can't use initializer list here.

Don't know why.
Vladimír Vondruš 13 years ago
parent
commit
777f67ab9f
  1. 7
      src/Shaders/DistanceFieldVectorShader.cpp
  2. 10
      src/Shaders/FlatShader.cpp
  3. 7
      src/Shaders/VectorShader.cpp

7
src/Shaders/DistanceFieldVectorShader.cpp

@ -41,11 +41,14 @@ namespace {
template<UnsignedInt dimensions> DistanceFieldVectorShader<dimensions>::DistanceFieldVectorShader(): transformationProjectionMatrixUniform(0), colorUniform(1), outlineColorUniform(2), outlineRangeUniform(3), smoothnessUniform(4) { template<UnsignedInt dimensions> DistanceFieldVectorShader<dimensions>::DistanceFieldVectorShader(): transformationProjectionMatrixUniform(0), colorUniform(1), outlineColorUniform(2), outlineRangeUniform(3), smoothnessUniform(4) {
Corrade::Utility::Resource rs("MagnumShaders"); Corrade::Utility::Resource rs("MagnumShaders");
/* Weird bug in GCC 4.5 - cannot use initializer list here, although the
same thing works in PhongShader flawlessly */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Version v = Context::current()->supportedVersion({Version::GL320, Version::GL210}); std::initializer_list<Version> vs{Version::GL320, Version::GL210};
#else #else
Version v = Context::current()->supportedVersion({Version::GLES300, Version::GLES200}); std::initializer_list<Version> vs{Version::GLES300, Version::GLES200};
#endif #endif
Version v = Context::current()->supportedVersion(vs);
Shader vertexShader(v, Shader::Type::Vertex); Shader vertexShader(v, Shader::Type::Vertex);
vertexShader.addSource(rs.get("compatibility.glsl")); vertexShader.addSource(rs.get("compatibility.glsl"));

10
src/Shaders/FlatShader.cpp

@ -41,21 +41,13 @@ template<UnsignedInt dimensions> FlatShader<dimensions>::FlatShader(): transform
Corrade::Utility::Resource rs("MagnumShaders"); Corrade::Utility::Resource rs("MagnumShaders");
/* Weird bug in GCC 4.5 - cannot use initializer list here, although the /* Weird bug in GCC 4.5 - cannot use initializer list here, although the
same thing works in PhongShader flawlessly*/ same thing works in PhongShader flawlessly */
#ifndef CORRADE_GCC45_COMPATIBILITY
#ifndef MAGNUM_TARGET_GLES
Version v = Context::current()->supportedVersion({Version::GL320, Version::GL210});
#else
Version v = Context::current()->supportedVersion({Version::GLES300, Version::GLES200});
#endif
#else
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
std::initializer_list<Version> vs{Version::GL320, Version::GL210}; std::initializer_list<Version> vs{Version::GL320, Version::GL210};
#else #else
std::initializer_list<Version> vs{Version::GLES300, Version::GLES200}; std::initializer_list<Version> vs{Version::GLES300, Version::GLES200};
#endif #endif
Version v = Context::current()->supportedVersion(vs); Version v = Context::current()->supportedVersion(vs);
#endif
Shader vertexShader(v, Shader::Type::Vertex); Shader vertexShader(v, Shader::Type::Vertex);
vertexShader.addSource(rs.get("compatibility.glsl")); vertexShader.addSource(rs.get("compatibility.glsl"));

7
src/Shaders/VectorShader.cpp

@ -41,11 +41,14 @@ namespace {
template<UnsignedInt dimensions> VectorShader<dimensions>::VectorShader(): transformationProjectionMatrixUniform(0), colorUniform(1) { template<UnsignedInt dimensions> VectorShader<dimensions>::VectorShader(): transformationProjectionMatrixUniform(0), colorUniform(1) {
Corrade::Utility::Resource rs("MagnumShaders"); Corrade::Utility::Resource rs("MagnumShaders");
/* Weird bug in GCC 4.5 - cannot use initializer list here, although the
same thing works in PhongShader flawlessly */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Version v = Context::current()->supportedVersion({Version::GL320, Version::GL210}); std::initializer_list<Version> vs{Version::GL320, Version::GL210};
#else #else
Version v = Context::current()->supportedVersion({Version::GLES300, Version::GLES200}); std::initializer_list<Version> vs{Version::GLES300, Version::GLES200};
#endif #endif
Version v = Context::current()->supportedVersion(vs);
Shader vertexShader(v, Shader::Type::Vertex); Shader vertexShader(v, Shader::Type::Vertex);
vertexShader.addSource(rs.get("compatibility.glsl")); vertexShader.addSource(rs.get("compatibility.glsl"));

Loading…
Cancel
Save