Browse Source

Use threaded shader compilation etc. also in tests.

pull/68/head
Vladimír Vondruš 12 years ago
parent
commit
9687b622f9
  1. 29
      src/Magnum/Test/AbstractShaderProgramGLTest.cpp
  2. 16
      src/Magnum/Test/MeshGLTest.cpp
  3. 13
      src/Magnum/Test/PrimitiveQueryGLTest.cpp
  4. 18
      src/Magnum/Test/SampleQueryGLTest.cpp

29
src/Magnum/Test/AbstractShaderProgramGLTest.cpp

@ -138,7 +138,7 @@ void AbstractShaderProgramGLTest::label() {
namespace {
struct MyPublicShader: AbstractShaderProgram {
using AbstractShaderProgram::attachShader;
using AbstractShaderProgram::attachShaders;
using AbstractShaderProgram::bindAttributeLocation;
#ifndef MAGNUM_TARGET_GLES
using AbstractShaderProgram::bindFragmentDataLocationIndexed;
@ -173,8 +173,7 @@ void AbstractShaderProgramGLTest::create() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShader(vert);
program.attachShader(frag);
program.attachShaders({vert, frag});
MAGNUM_VERIFY_NO_ERROR();
@ -215,8 +214,7 @@ void AbstractShaderProgramGLTest::createMultipleOutputs() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShader(vert);
program.attachShader(frag);
program.attachShaders({vert, frag});
MAGNUM_VERIFY_NO_ERROR();
@ -253,8 +251,7 @@ void AbstractShaderProgramGLTest::createMultipleOutputsIndexed() {
CORRADE_VERIFY(fragCompiled);
MyPublicShader program;
program.attachShader(vert);
program.attachShader(frag);
program.attachShaders({vert, frag});
MAGNUM_VERIFY_NO_ERROR();
@ -289,21 +286,17 @@ MyShader::MyShader() {
#ifndef MAGNUM_TARGET_GLES
Shader vert(Version::GL210, Shader::Type::Vertex);
#else
Shader vert(Version::GLES200, Shader::Type::Vertex);
#endif
vert.addSource(rs.get("MyShader.vert"))
.compile();
attachShader(vert);
#ifndef MAGNUM_TARGET_GLES
Shader frag(Version::GL210, Shader::Type::Fragment);
#else
Shader vert(Version::GLES200, Shader::Type::Vertex);
Shader frag(Version::GLES200, Shader::Type::Fragment);
#endif
frag.addSource(rs.get("MyShader.frag"))
.compile();
attachShader(frag);
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
Shader::compile({vert, frag});
attachShaders({vert, frag});
bindAttributeLocation(0, "position");
link();

16
src/Magnum/Test/MeshGLTest.cpp

@ -369,8 +369,8 @@ FloatShader::FloatShader(const std::string& type, const std::string& conversion)
#endif
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShader(vert);
attachShader(frag);
attachShaders({vert, frag});
bindAttributeLocation(0, "value");
@ -398,8 +398,8 @@ IntegerShader::IntegerShader(const std::string& type) {
"void main() { result = valueInterpolated; }\n");
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShader(vert);
attachShader(frag);
attachShaders({vert, frag});
bindAttributeLocation(0, "value");
@ -423,8 +423,8 @@ DoubleShader::DoubleShader(const std::string& type, const std::string& outputTyp
"void main() { result = valueInterpolated; }\n");
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShader(vert);
attachShader(frag);
attachShaders({vert, frag});
bindAttributeLocation(0, "value");
@ -1095,8 +1095,8 @@ MultipleShader::MultipleShader() {
"void main() { gl_FragColor = valueInterpolated; }\n");
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShader(vert);
attachShader(frag);
attachShaders({vert, frag});
bindAttributeLocation(Position::Location, "position");
bindAttributeLocation(Normal::Location, "normal");

13
src/Magnum/Test/PrimitiveQueryGLTest.cpp

@ -62,15 +62,16 @@ void PrimitiveQueryGLTest::query() {
explicit MyShader() {
Utility::Resource rs("QueryGLTest");
Shader vert(Version::GL210, Shader::Type::Vertex);
vert.addSource(rs.get("MyShader.vert"));
CORRADE_INTERNAL_ASSERT_OUTPUT(vert.compile());
attachShader(vert);
Shader vert(Version::GL210, Shader::Type::Vertex);
Shader frag(Version::GL210, Shader::Type::Fragment);
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(frag.compile());
attachShader(frag);
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShaders({vert, frag});
CORRADE_INTERNAL_ASSERT_OUTPUT(link());
}

18
src/Magnum/Test/SampleQueryGLTest.cpp

@ -68,23 +68,21 @@ namespace {
#ifndef DOXYGEN_GENERATING_OUTPUT
MyShader::MyShader() {
Utility::Resource rs("QueryGLTest");
#ifndef MAGNUM_TARGET_GLES
Shader vert(Version::GL210, Shader::Type::Vertex);
#else
Shader vert(Version::GLES200, Shader::Type::Vertex);
#endif
vert.addSource(rs.get("MyShader.vert"));
CORRADE_INTERNAL_ASSERT_OUTPUT(vert.compile());
attachShader(vert);
#ifndef MAGNUM_TARGET_GLES
Shader vert(Version::GL210, Shader::Type::Vertex);
Shader frag(Version::GL210, Shader::Type::Fragment);
#else
Shader vert(Version::GLES200, Shader::Type::Vertex);
Shader frag(Version::GLES200, Shader::Type::Fragment);
#endif
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag"));
CORRADE_INTERNAL_ASSERT_OUTPUT(frag.compile());
attachShader(frag);
CORRADE_INTERNAL_ASSERT_OUTPUT(Shader::compile({vert, frag}));
attachShaders({vert, frag});
CORRADE_INTERNAL_ASSERT_OUTPUT(link());
}

Loading…
Cancel
Save