From 9687b622f978972fa5582aca2f7e32778e209ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 22 Jul 2014 22:37:28 +0200 Subject: [PATCH] Use threaded shader compilation etc. also in tests. --- .../Test/AbstractShaderProgramGLTest.cpp | 29 +++++++------------ src/Magnum/Test/MeshGLTest.cpp | 16 +++++----- src/Magnum/Test/PrimitiveQueryGLTest.cpp | 13 +++++---- src/Magnum/Test/SampleQueryGLTest.cpp | 18 +++++------- 4 files changed, 34 insertions(+), 42 deletions(-) diff --git a/src/Magnum/Test/AbstractShaderProgramGLTest.cpp b/src/Magnum/Test/AbstractShaderProgramGLTest.cpp index d087ebd87..8e7aa2fbb 100644 --- a/src/Magnum/Test/AbstractShaderProgramGLTest.cpp +++ b/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(); diff --git a/src/Magnum/Test/MeshGLTest.cpp b/src/Magnum/Test/MeshGLTest.cpp index 0de49d3a9..48faa22a7 100644 --- a/src/Magnum/Test/MeshGLTest.cpp +++ b/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"); diff --git a/src/Magnum/Test/PrimitiveQueryGLTest.cpp b/src/Magnum/Test/PrimitiveQueryGLTest.cpp index 7099cd0ae..c85a70f05 100644 --- a/src/Magnum/Test/PrimitiveQueryGLTest.cpp +++ b/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()); } diff --git a/src/Magnum/Test/SampleQueryGLTest.cpp b/src/Magnum/Test/SampleQueryGLTest.cpp index 1d5acb6fd..e3f305f2b 100644 --- a/src/Magnum/Test/SampleQueryGLTest.cpp +++ b/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()); }