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

16
src/Magnum/Test/MeshGLTest.cpp

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

13
src/Magnum/Test/PrimitiveQueryGLTest.cpp

@ -62,15 +62,16 @@ void PrimitiveQueryGLTest::query() {
explicit MyShader() { explicit MyShader() {
Utility::Resource rs("QueryGLTest"); 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); Shader frag(Version::GL210, Shader::Type::Fragment);
vert.addSource(rs.get("MyShader.vert"));
frag.addSource(rs.get("MyShader.frag")); 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()); CORRADE_INTERNAL_ASSERT_OUTPUT(link());
} }

18
src/Magnum/Test/SampleQueryGLTest.cpp

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

Loading…
Cancel
Save