Original Post
I want to read out the color buffer into a memory block of my application in order to implement some features like showing a thumbnail view of the client area, or saving the rendering content of the client area as a disk image fiIe. Our current method is to first render the scene and then call glReadPixels().
However, there is an annoying issue with this method. In my application, there are usually several graphics layers shown in the client area and I need to create one thumbnail for each layer. With the above method, I have to render one graphics layer at a time and then call glReadPixels() to get the buffer pixels for the current layer. The visual result of repeating this two-step process looks like playing PowerPoint slides. So I want to know if there is a method via which I can disable rendering but still get the pixels? Just like press "Ctrl+Q" in Internet Explorer 9 to get thumbnail views for all web pages, without rendering these pages one by one.
However, there is an annoying issue with this method. In my application, there are usually several graphics layers shown in the client area and I need to create one thumbnail for each layer. With the above method, I have to render one graphics layer at a time and then call glReadPixels() to get the buffer pixels for the current layer. The visual result of repeating this two-step process looks like playing PowerPoint slides. So I want to know if there is a method via which I can disable rendering but still get the pixels? Just like press "Ctrl+Q" in Internet Explorer 9 to get thumbnail views for all web pages, without rendering these pages one by one.