From 78da1d6bd3659c3b0860c4b3c40e8ebf4148f564 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 9 May 2011 23:42:30 +0100 Subject: [PATCH] Reset all pixel store state before snapshoting. --- glretrace_main.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/glretrace_main.cpp b/glretrace_main.cpp index 9144de6..abed8ed 100644 --- a/glretrace_main.cpp +++ b/glretrace_main.cpp @@ -112,7 +112,21 @@ static void snapshot(Image::Image &image) { glGetIntegerv(GL_DRAW_BUFFER, &drawbuffer); glGetIntegerv(GL_READ_BUFFER, &readbuffer); glReadBuffer(drawbuffer); + + glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); + glPixelStorei(GL_PACK_SWAP_BYTES, GL_FALSE); + glPixelStorei(GL_PACK_LSB_FIRST, GL_FALSE); + glPixelStorei(GL_PACK_ROW_LENGTH, 0); + glPixelStorei(GL_PACK_IMAGE_HEIGHT, 0); + glPixelStorei(GL_PACK_SKIP_ROWS, 0); + glPixelStorei(GL_PACK_SKIP_PIXELS, 0); + glPixelStorei(GL_PACK_SKIP_IMAGES, 0); + glPixelStorei(GL_PACK_ALIGNMENT, 1); + glReadPixels(0, 0, image.width, image.height, GL_RGBA, GL_UNSIGNED_BYTE, image.pixels); + + glPopClientAttrib(); + glReadBuffer(readbuffer); } -- 2.7.4