I had post a topic(http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/010612.html) to discuss the low speed of readback from pbuffer,but it seems that no one can give me a satisfied solve method,but in current the pbuffer is the only method of offscreen rendering as I know,I don’t know the other method to do it,so if someone know the other way,please tell me.
I suggested glCopyTexSubImage2D() in your previous (identical ) thread and you didn’t state what effect this method had on yor app. It should have been dramatic.
What was the result ?
You can render to a Bitmap. Try searching for “PFD_DRAW_TO_BITMAP” with google. You won’t possibly get hardware acceleration with that, but pixel readbacks can be very fast.
Anyhow, it would be very nice from you of you actually answered to suggestions from others. In your recent thread, you got two potential solutions or workarounds for your problem. If you don’t bother answering those, why do you expect more proposals?
It would be also nice if you posted follow-ups to the same problem in the same thread instead of always starting new ones (currently there are four threads for your problem on the main page!). Doing so not only gives a better overview over the forum threads, it is also a necessity for a useful search functionality. After all, discussions of a problem here are not only for the original poster, but also for others to come with the same problem.
Thanks for your reply,but you mistake my question.What I said “the buffer that stores the image” is the front buffer created by “wglCreateContext()”,it is not the one my app readback.I’m writting a video composition app using OpenGL,I allocate a pbuffer as the place of readering final image,and then use the “render to texture” method to display the final rendered image in a window,but my app also need to display the final image in a external monitor,so I use the “glReadPixel()” from the rendering place(now is the pbuffer) to get the image data and sent it to monitor through a D/A conversion card.I can not read the image stored in front buffer to display in monitor because the window’s size is not the same as image size.But I found the pbuffer’s readback speed is very slow(only 2M bytes/sc),and the video displayed in monitor is not continuous.I think I can not use the pbuffer as my app’s rendering place just for the sake of above,so I’m seeking the new method of off-screen rendering,it can get the OpenGL hardware acceleration,and can readback the data at a speed >50M bytes/sc.OK,I had explained my question and requires in detail,I wish more friends give useful suggestions.