|
|
|
|
@ -33,14 +33,75 @@ class AbstractQueryGLTest: public AbstractOpenGLTester {
|
|
|
|
|
public: |
|
|
|
|
explicit AbstractQueryGLTest(); |
|
|
|
|
|
|
|
|
|
void construct(); |
|
|
|
|
void constructCopy(); |
|
|
|
|
void constructMove(); |
|
|
|
|
|
|
|
|
|
void label(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
AbstractQueryGLTest::AbstractQueryGLTest() { |
|
|
|
|
addTests({&AbstractQueryGLTest::label}); |
|
|
|
|
addTests({&AbstractQueryGLTest::construct, |
|
|
|
|
&AbstractQueryGLTest::constructCopy, |
|
|
|
|
&AbstractQueryGLTest::constructMove, |
|
|
|
|
|
|
|
|
|
&AbstractQueryGLTest::label}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AbstractQueryGLTest::construct() { |
|
|
|
|
#ifdef MAGNUM_TARGET_GLES2 |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::EXT::occlusion_query_boolean>()) |
|
|
|
|
CORRADE_SKIP(Extensions::GL::EXT::occlusion_query_boolean::string() + std::string(" is not supported.")); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
const SampleQuery query; |
|
|
|
|
|
|
|
|
|
MAGNUM_VERIFY_NO_ERROR(); |
|
|
|
|
CORRADE_VERIFY(query.id() > 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MAGNUM_VERIFY_NO_ERROR(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AbstractQueryGLTest::constructCopy() { |
|
|
|
|
CORRADE_VERIFY(!(std::is_constructible<SampleQuery, const SampleQuery&>{})); |
|
|
|
|
CORRADE_VERIFY(!(std::is_assignable<SampleQuery, const SampleQuery&>{})); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AbstractQueryGLTest::constructMove() { |
|
|
|
|
#ifdef MAGNUM_TARGET_GLES2 |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::EXT::occlusion_query_boolean>()) |
|
|
|
|
CORRADE_SKIP(Extensions::GL::EXT::occlusion_query_boolean::string() + std::string(" is not supported.")); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
SampleQuery a; |
|
|
|
|
const Int id = a.id(); |
|
|
|
|
|
|
|
|
|
MAGNUM_VERIFY_NO_ERROR(); |
|
|
|
|
CORRADE_VERIFY(id > 0); |
|
|
|
|
|
|
|
|
|
SampleQuery b(std::move(a)); |
|
|
|
|
|
|
|
|
|
CORRADE_COMPARE(a.id(), 0); |
|
|
|
|
CORRADE_COMPARE(b.id(), id); |
|
|
|
|
|
|
|
|
|
SampleQuery c; |
|
|
|
|
const Int cId = c.id(); |
|
|
|
|
c = std::move(b); |
|
|
|
|
|
|
|
|
|
MAGNUM_VERIFY_NO_ERROR(); |
|
|
|
|
CORRADE_VERIFY(cId > 0); |
|
|
|
|
CORRADE_COMPARE(b.id(), cId); |
|
|
|
|
CORRADE_COMPARE(c.id(), id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AbstractQueryGLTest::label() { |
|
|
|
|
#ifdef MAGNUM_TARGET_GLES2 |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::EXT::occlusion_query_boolean>()) |
|
|
|
|
CORRADE_SKIP(Extensions::GL::EXT::occlusion_query_boolean::string() + std::string(" is not supported.")); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* No-Op version is tested in AbstractObjectGLTest */ |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::KHR::debug>() && |
|
|
|
|
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>()) |
|
|
|
|
|