- glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
- glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
- glPixelStorei(GL_PACK_SWAP_BYTES, GL_FALSE);
+ glGetIntegerv(GL_PACK_IMAGE_HEIGHT, &pack_image_height);
+ glGetIntegerv(GL_PACK_LSB_FIRST, &pack_lsb_first);
+ glGetIntegerv(GL_PACK_ROW_LENGTH, &pack_row_length);
+ glGetIntegerv(GL_PACK_SKIP_IMAGES, &pack_skip_images);
+ glGetIntegerv(GL_PACK_SKIP_PIXELS, &pack_skip_pixels);
+ glGetIntegerv(GL_PACK_SKIP_ROWS, &pack_skip_rows);
+ glGetIntegerv(GL_PACK_SWAP_BYTES, &pack_swap_bytes);
+ glGetIntegerv(GL_PIXEL_PACK_BUFFER_BINDING, &pixel_pack_buffer_binding);
+ }
+
+ // Reset state for compact images
+ glPixelStorei(GL_PACK_ALIGNMENT, 1);
+ if (!ES) {
+ glPixelStorei(GL_PACK_IMAGE_HEIGHT, 0);