Browse Source

Use object at least once before testing its label.

Otherwise my NVidia emits GL_INVALID_VALUE with message "that <object>
is not valid object", which isn't in the specs. I hate this "deferred
everything" approach in GL. Is this even legal optimization?
pull/68/head
Vladimír Vondruš 12 years ago
parent
commit
0dfbc6f833
  1. 8
      src/Magnum/Test/AbstractQueryGLTest.cpp
  2. 7
      src/Magnum/Test/AbstractTextureGLTest.cpp
  3. 7
      src/Magnum/Test/BufferGLTest.cpp
  4. 12
      src/Magnum/Test/FramebufferGLTest.cpp
  5. 8
      src/Magnum/Test/MeshGLTest.cpp
  6. 11
      src/Magnum/Test/RenderbufferGLTest.cpp

8
src/Magnum/Test/AbstractQueryGLTest.cpp

@ -106,7 +106,15 @@ void AbstractQueryGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
SampleQuery query;
query.begin(SampleQuery::Target::AnySamplesPassed);
query.end();
CORRADE_COMPARE(query.label(), "");
query.setLabel("MyQuery");

7
src/Magnum/Test/AbstractTextureGLTest.cpp

@ -93,7 +93,14 @@ void AbstractTextureGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
Texture2D texture;
texture.setMinificationFilter(Sampler::Filter::Linear);
CORRADE_COMPARE(texture.label(), "");
texture.setLabel("MyTexture");

7
src/Magnum/Test/BufferGLTest.cpp

@ -118,7 +118,14 @@ void BufferGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
Buffer buffer;
buffer.setData({nullptr, 3}, BufferUsage::StaticDraw);
CORRADE_COMPARE(buffer.label(), "");
buffer.setLabel("MyBuffer");

12
src/Magnum/Test/FramebufferGLTest.cpp

@ -199,7 +199,19 @@ void FramebufferGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
Renderbuffer renderbuffer;
#ifndef MAGNUM_TARGET_GLES2
renderbuffer.setStorage(RenderbufferFormat::RGBA8, {128, 128});
#else
renderbuffer.setStorage(RenderbufferFormat::RGBA4, {128, 128});
#endif
Framebuffer framebuffer({{}, Vector2i(32)});
framebuffer.attachRenderbuffer(Framebuffer::BufferAttachment(Framebuffer::BufferAttachment::Depth), renderbuffer);
CORRADE_COMPARE(framebuffer.label(), "");
MAGNUM_VERIFY_NO_ERROR();

8
src/Magnum/Test/MeshGLTest.cpp

@ -295,7 +295,15 @@ void MeshGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
Buffer buffer{Buffer::Target::ElementArray};
Mesh mesh;
mesh.setIndexBuffer(buffer, 0, Mesh::IndexType::UnsignedShort);
CORRADE_COMPARE(mesh.label(), "");
mesh.setLabel("MyMesh");

11
src/Magnum/Test/RenderbufferGLTest.cpp

@ -116,7 +116,18 @@ void RenderbufferGLTest::label() {
!Context::current()->isExtensionSupported<Extensions::GL::EXT::debug_label>())
CORRADE_SKIP("Required extension is not available");
{
/** @todo Is this even legal optimization? */
CORRADE_EXPECT_FAIL("The object must be used at least once before setting/querying label.");
CORRADE_VERIFY(false);
}
Renderbuffer renderbuffer;
#ifndef MAGNUM_TARGET_GLES2
renderbuffer.setStorage(RenderbufferFormat::RGBA8, {128, 128});
#else
renderbuffer.setStorage(RenderbufferFormat::RGBA4, {128, 128});
#endif
CORRADE_COMPARE(renderbuffer.label(), "");
renderbuffer.setLabel("MyRenderbuffer");

Loading…
Cancel
Save