From 6caf12c9f2112fe7706f50b48886ca8adbe16413 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 10 May 2013 21:44:07 +0100 Subject: [PATCH] glstate: Don't dump garbage when glReadPixels fail. --- retrace/glstate_images.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/retrace/glstate_images.cpp b/retrace/glstate_images.cpp index b95b8cc..f0b4edd 100644 --- a/retrace/glstate_images.cpp +++ b/retrace/glstate_images.cpp @@ -890,6 +890,8 @@ dumpReadBufferImage(JSONWriter &json, GLint width, GLint height, GLenum format, image::Image *image = new image::Image(width, height, channels, true); + while (glGetError() != GL_NO_ERROR) {} + // TODO: reset imaging state too context.resetPixelPackState(); @@ -897,7 +899,16 @@ dumpReadBufferImage(JSONWriter &json, GLint width, GLint height, GLenum format, context.restorePixelPackState(); - json.writeImage(image, formatToString(internalFormat)); + GLenum error = glGetError(); + if (error != GL_NO_ERROR) { + do { + std::cerr << "warning: " << enumToString(error) << " while reading framebuffer\n"; + error = glGetError(); + } while(error != GL_NO_ERROR); + json.writeNull(); + } else { + json.writeImage(image, formatToString(internalFormat)); + } delete image; } -- 2.43.0