Browse Source

GCC 4.4 compatibility: std::reference_wrapper-related issues.

Vladimír Vondruš 12 years ago
parent
commit
4d538c9453
  1. 2
      src/Magnum/Shaders/Flat.cpp
  2. 2
      src/Magnum/Shaders/MeshVisualizer.cpp
  3. 2
      src/Magnum/Shaders/Phong.cpp
  4. 2
      src/Magnum/Shaders/VertexColor.cpp
  5. 14
      src/Magnum/Test/AbstractShaderProgramGLTest.cpp
  6. 8
      src/Magnum/Test/MeshGLTest.cpp
  7. 4
      src/Magnum/Test/PrimitiveQueryGLTest.cpp
  8. 5
      src/Magnum/Test/SampleQueryGLTest.cpp
  9. 4
      src/Magnum/TextureTools/DistanceField.cpp

2
src/Magnum/Shaders/Flat.cpp

@ -70,7 +70,7 @@ template<UnsignedInt dimensions> Flat<dimensions>::Flat(const Flags flags): tran
std::initializer_list<std::reference_wrapper<Shader>> ss{std::ref(frag), std::ref(vert)};
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile(ss));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
#ifndef MAGNUM_TARGET_GLES
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::explicit_attrib_location>(version))

2
src/Magnum/Shaders/MeshVisualizer.cpp

@ -88,7 +88,7 @@ MeshVisualizer::MeshVisualizer(const Flags flags): flags(flags), transformationP
#endif
Shader::compile({std::ref(vert), std::ref(frag)});
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
#ifndef MAGNUM_TARGET_GLES
if(geom) attachShader(*geom);
#endif

2
src/Magnum/Shaders/Phong.cpp

@ -67,7 +67,7 @@ Phong::Phong(const Flags flags): transformationMatrixUniform(0), projectionMatri
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
#ifndef MAGNUM_TARGET_GLES
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::explicit_attrib_location>(version))

2
src/Magnum/Shaders/VertexColor.cpp

@ -73,7 +73,7 @@ template<UnsignedInt dimensions> VertexColor<dimensions>::VertexColor(): transfo
std::initializer_list<std::reference_wrapper<Shader>> ss{std::ref(frag), std::ref(vert)};
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile(ss));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
#ifndef MAGNUM_TARGET_GLES
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::explicit_attrib_location>(version))

14
src/Magnum/Test/AbstractShaderProgramGLTest.cpp

@ -190,7 +190,8 @@ void AbstractShaderProgramGLTest::create() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShaders({vert, frag});
/* GCC 4.4 has explicit std::reference_wrapper constructor */
program.attachShaders({std::ref(vert), std::ref(frag)});
MAGNUM_VERIFY_NO_ERROR();
@ -231,7 +232,8 @@ void AbstractShaderProgramGLTest::createMultipleOutputs() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShaders({vert, frag});
/* GCC 4.4 has explicit std::reference_wrapper constructor */
program.attachShaders({std::ref(vert), std::ref(frag)});
MAGNUM_VERIFY_NO_ERROR();
@ -268,7 +270,8 @@ void AbstractShaderProgramGLTest::createMultipleOutputsIndexed() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShaders({vert, frag});
/* GCC 4.4 has explicit std::reference_wrapper constructor */
program.attachShaders({std::ref(vert), std::ref(frag)});
MAGNUM_VERIFY_NO_ERROR();
@ -311,9 +314,10 @@ MyShader::MyShader() {
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
Shader::compile({vert, frag});
/* GCC 4.4 has explicit std::reference_wrapper constructor */
Shader::compile({std::ref(vert), std::ref(frag)});
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
bindAttributeLocation(0, "position");
link();

8
src/Magnum/Test/MeshGLTest.cpp

@ -386,7 +386,7 @@ FloatShader::FloatShader(const std::string& type, const std::string& conversion)
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
bindAttributeLocation(0, "value");
@ -416,7 +416,7 @@ IntegerShader::IntegerShader(const std::string& type) {
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
bindAttributeLocation(0, "value");
@ -442,7 +442,7 @@ DoubleShader::DoubleShader(const std::string& type, const std::string& outputTyp
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
bindAttributeLocation(0, "value");
@ -1127,7 +1127,7 @@ MultipleShader::MultipleShader() {
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
bindAttributeLocation(Position::Location, "position");
bindAttributeLocation(Normal::Location, "normal");

4
src/Magnum/Test/PrimitiveQueryGLTest.cpp

@ -69,9 +69,9 @@ void PrimitiveQueryGLTest::query() {
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
CORRADE_INTERNAL_ASSERT_OUTPUT(link());
}

5
src/Magnum/Test/SampleQueryGLTest.cpp

@ -80,9 +80,10 @@ MyShader::MyShader() {
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
/* GCC 4.4 has explicit std::reference_wrapper constructor */
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
CORRADE_INTERNAL_ASSERT_OUTPUT(link());
}

4
src/Magnum/TextureTools/DistanceField.cpp

@ -92,9 +92,9 @@ DistanceFieldShader::DistanceFieldShader(): radiusUniform(0), scalingUniform(1)
.addSource(rs.get("DistanceFieldShader.vert"));
frag.addSource(rs.get("DistanceFieldShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({std::ref(vert), std::ref(frag)}));
attachShaders({vert, frag});
attachShaders({std::ref(vert), std::ref(frag)});
/* Older GLSL doesn't have gl_VertexID, vertices must be supplied explicitly */
#ifndef MAGNUM_TARGET_GLES

Loading…
Cancel
Save