From d008d59c79fb2a415c3694d4b4c671b8a5ec0006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 16 Mar 2019 14:40:51 +0100 Subject: [PATCH] GL: fix MeshGLTest::bindScratchVaoWhenEnteringExternalSection(). Would fail on an incomplete framebuffer error on framebuffer-less windowless contexts. Didn't happen before, I think it's because of a new check in a new Mesa. --- src/Magnum/GL/Test/MeshGLTest.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Magnum/GL/Test/MeshGLTest.cpp b/src/Magnum/GL/Test/MeshGLTest.cpp index 9d27f72f7..1d82a513b 100644 --- a/src/Magnum/GL/Test/MeshGLTest.cpp +++ b/src/Magnum/GL/Test/MeshGLTest.cpp @@ -2468,6 +2468,21 @@ void MeshGLTest::bindScratchVaoWhenEnteringExternalSection() { .setIndexBuffer(indices, 0, MeshIndexType::UnsignedByte); { + /* Bind a scratch framebuffer so glDrawArrays() doesn't complain about + an incomplete framebuffer in case we're on a framebuffer-less + context */ + Renderbuffer renderbuffer; + renderbuffer.setStorage( + #ifndef MAGNUM_TARGET_GLES2 + RenderbufferFormat::RGBA8, + #else + RenderbufferFormat::RGBA4, + #endif + Vector2i{1}); + Framebuffer framebuffer{{{}, Vector2i{1}}}; + framebuffer.attachRenderbuffer(Framebuffer::ColorAttachment{0}, renderbuffer) + .bind(); + /* Should bind a scratch VAO only on desktop with core profile and be a no-op everywhere else */ Context::current().resetState(Context::State::EnterExternal