Browse Source

Shaders: simplified [DistanceField]Vector and VertexColor shader tests.

findsdl-include-root
Vladimír Vondruš 7 years ago
parent
commit
2d1d9f4b29
  1. 59
      src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp
  2. 59
      src/Magnum/Shaders/Test/VectorGLTest.cpp
  3. 59
      src/Magnum/Shaders/Test/VertexColorGLTest.cpp

59
src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp

@ -31,36 +31,22 @@ namespace Magnum { namespace Shaders { namespace Test { namespace {
struct DistanceFieldVectorGLTest: GL::OpenGLTester { struct DistanceFieldVectorGLTest: GL::OpenGLTester {
explicit DistanceFieldVectorGLTest(); explicit DistanceFieldVectorGLTest();
void construct2D(); template<UnsignedInt dimensions> void construct();
void construct3D(); template<UnsignedInt dimensions> void constructMove();
void constructMove2D();
void constructMove3D();
}; };
DistanceFieldVectorGLTest::DistanceFieldVectorGLTest() { DistanceFieldVectorGLTest::DistanceFieldVectorGLTest() {
addTests({&DistanceFieldVectorGLTest::construct2D, addTests<DistanceFieldVectorGLTest>({
&DistanceFieldVectorGLTest::construct3D, &DistanceFieldVectorGLTest::construct<2>,
&DistanceFieldVectorGLTest::construct<3>,
&DistanceFieldVectorGLTest::constructMove2D, &DistanceFieldVectorGLTest::constructMove<2>,
&DistanceFieldVectorGLTest::constructMove3D}); &DistanceFieldVectorGLTest::constructMove<3>});
} }
void DistanceFieldVectorGLTest::construct2D() { template<UnsignedInt dimensions> void DistanceFieldVectorGLTest::construct() {
DistanceFieldVector2D shader; setTestCaseTemplateName(std::to_string(dimensions));
CORRADE_VERIFY(shader.id());
{
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("macOS drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
MAGNUM_VERIFY_NO_GL_ERROR();
}
void DistanceFieldVectorGLTest::construct3D() { DistanceFieldVector<dimensions> shader;
DistanceFieldVector3D shader;
CORRADE_VERIFY(shader.id()); CORRADE_VERIFY(shader.id());
{ {
#ifdef CORRADE_TARGET_APPLE #ifdef CORRADE_TARGET_APPLE
@ -72,35 +58,20 @@ void DistanceFieldVectorGLTest::construct3D() {
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
} }
void DistanceFieldVectorGLTest::constructMove2D() { template<UnsignedInt dimensions> void DistanceFieldVectorGLTest::constructMove() {
DistanceFieldVector2D a; setTestCaseTemplateName(std::to_string(dimensions));
const GLuint id = a.id();
CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR();
DistanceFieldVector2D b{std::move(a)};
CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id());
DistanceFieldVector2D c{NoCreate};
c = std::move(b);
CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id());
}
void DistanceFieldVectorGLTest::constructMove3D() { DistanceFieldVector<dimensions> a;
DistanceFieldVector3D a;
const GLuint id = a.id(); const GLuint id = a.id();
CORRADE_VERIFY(id); CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
DistanceFieldVector3D b{std::move(a)}; DistanceFieldVector<dimensions> b{std::move(a)};
CORRADE_COMPARE(b.id(), id); CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id()); CORRADE_VERIFY(!a.id());
DistanceFieldVector3D c{NoCreate}; DistanceFieldVector<dimensions> c{NoCreate};
c = std::move(b); c = std::move(b);
CORRADE_COMPARE(c.id(), id); CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id()); CORRADE_VERIFY(!b.id());

59
src/Magnum/Shaders/Test/VectorGLTest.cpp

@ -31,36 +31,22 @@ namespace Magnum { namespace Shaders { namespace Test { namespace {
struct VectorGLTest: GL::OpenGLTester { struct VectorGLTest: GL::OpenGLTester {
explicit VectorGLTest(); explicit VectorGLTest();
void construct2D(); template<UnsignedInt dimensions> void construct();
void construct3D(); template<UnsignedInt dimensions> void constructMove();
void constructMove2D();
void constructMove3D();
}; };
VectorGLTest::VectorGLTest() { VectorGLTest::VectorGLTest() {
addTests({&VectorGLTest::construct2D, addTests<VectorGLTest>({
&VectorGLTest::construct3D, &VectorGLTest::construct<2>,
&VectorGLTest::construct<3>,
&VectorGLTest::constructMove2D, &VectorGLTest::constructMove<2>,
&VectorGLTest::constructMove3D}); &VectorGLTest::constructMove<3>});
} }
void VectorGLTest::construct2D() { template<UnsignedInt dimensions> void VectorGLTest::construct() {
Vector2D shader; setTestCaseTemplateName(std::to_string(dimensions));
CORRADE_VERIFY(shader.id());
{
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("macOS drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
MAGNUM_VERIFY_NO_GL_ERROR();
}
void VectorGLTest::construct3D() { Vector<dimensions> shader;
Vector3D shader;
CORRADE_VERIFY(shader.id()); CORRADE_VERIFY(shader.id());
{ {
#ifdef CORRADE_TARGET_APPLE #ifdef CORRADE_TARGET_APPLE
@ -72,35 +58,20 @@ void VectorGLTest::construct3D() {
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
} }
void VectorGLTest::constructMove2D() { template<UnsignedInt dimensions> void VectorGLTest::constructMove() {
Vector2D a; setTestCaseTemplateName(std::to_string(dimensions));
const GLuint id = a.id();
CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR();
Vector2D b{std::move(a)};
CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id());
Vector2D c{NoCreate};
c = std::move(b);
CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id());
}
void VectorGLTest::constructMove3D() { Vector<dimensions> a;
Vector3D a;
const GLuint id = a.id(); const GLuint id = a.id();
CORRADE_VERIFY(id); CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
Vector3D b{std::move(a)}; Vector<dimensions> b{std::move(a)};
CORRADE_COMPARE(b.id(), id); CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id()); CORRADE_VERIFY(!a.id());
Vector3D c{NoCreate}; Vector<dimensions> c{NoCreate};
c = std::move(b); c = std::move(b);
CORRADE_COMPARE(c.id(), id); CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id()); CORRADE_VERIFY(!b.id());

59
src/Magnum/Shaders/Test/VertexColorGLTest.cpp

@ -31,36 +31,22 @@ namespace Magnum { namespace Shaders { namespace Test { namespace {
struct VertexColorGLTest: GL::OpenGLTester { struct VertexColorGLTest: GL::OpenGLTester {
explicit VertexColorGLTest(); explicit VertexColorGLTest();
void construct2D(); template<UnsignedInt dimensions> void construct();
void construct3D(); template<UnsignedInt dimensions> void constructMove();
void constructMove2D();
void constructMove3D();
}; };
VertexColorGLTest::VertexColorGLTest() { VertexColorGLTest::VertexColorGLTest() {
addTests({&VertexColorGLTest::construct2D, addTests<VertexColorGLTest>({
&VertexColorGLTest::construct3D, &VertexColorGLTest::construct<2>,
&VertexColorGLTest::construct<3>,
&VertexColorGLTest::constructMove2D, &VertexColorGLTest::constructMove<2>,
&VertexColorGLTest::constructMove3D}); &VertexColorGLTest::constructMove<3>});
} }
void VertexColorGLTest::construct2D() { template<UnsignedInt dimensions> void VertexColorGLTest::construct() {
VertexColor2D shader; setTestCaseTemplateName(std::to_string(dimensions));
CORRADE_VERIFY(shader.id());
{
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("macOS drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
MAGNUM_VERIFY_NO_GL_ERROR();
}
void VertexColorGLTest::construct3D() { VertexColor<dimensions> shader;
VertexColor3D shader;
CORRADE_VERIFY(shader.id()); CORRADE_VERIFY(shader.id());
{ {
#ifdef CORRADE_TARGET_APPLE #ifdef CORRADE_TARGET_APPLE
@ -72,35 +58,20 @@ void VertexColorGLTest::construct3D() {
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
} }
void VertexColorGLTest::constructMove2D() { template<UnsignedInt dimensions> void VertexColorGLTest::constructMove() {
VertexColor2D a; setTestCaseTemplateName(std::to_string(dimensions));
const GLuint id = a.id();
CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR();
VertexColor2D b{std::move(a)};
CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id());
VertexColor2D c{NoCreate};
c = std::move(b);
CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id());
}
void VertexColorGLTest::constructMove3D() { VertexColor<dimensions> a;
VertexColor3D a;
const GLuint id = a.id(); const GLuint id = a.id();
CORRADE_VERIFY(id); CORRADE_VERIFY(id);
MAGNUM_VERIFY_NO_GL_ERROR(); MAGNUM_VERIFY_NO_GL_ERROR();
VertexColor3D b{std::move(a)}; VertexColor<dimensions> b{std::move(a)};
CORRADE_COMPARE(b.id(), id); CORRADE_COMPARE(b.id(), id);
CORRADE_VERIFY(!a.id()); CORRADE_VERIFY(!a.id());
VertexColor3D c{NoCreate}; VertexColor<dimensions> c{NoCreate};
c = std::move(b); c = std::move(b);
CORRADE_COMPARE(c.id(), id); CORRADE_COMPARE(c.id(), id);
CORRADE_VERIFY(!b.id()); CORRADE_VERIFY(!b.id());

Loading…
Cancel
Save