I have an OpenGL application with the size of 800x600 running on my linux machine (X11). The content of this application (the rendered image) s开发者_如何学编程hould be exported via network to another PC. First of all, i want to know if it is possible to take snapshots of the applications window with about 30 Hz, save them to jpeg and export them to the other machine via HTTP or whatever (like the IP Cameras are doing). Is it possbile to read the graphic's cards memory (Radeon HD 5800) in a fast way so that i can get a framerate of about 30 pictures per second?
If you're willing to tolerate some latency Pixel Buffer Objects (PBOs) should get you some decent read-back throughput.
libjpeg-turbo looks like a good solution for high-speed JPEG encoding.
If you don't have the source to the app you're trying to monitor then LD_PRELOAD
hacks combined with the above should work.
You may want to take a look at VirtualGL which does exactly what you aim for.
精彩评论