I want to create fraps for linux. Using XShmGetImage() and friends is too slow. So my first approach was to create a fullscreen opengl app and do glReadPixels(). But this performs very badly when there are two opengl applications running at the same time (fps drops from
Now what are my options besides modifying the wine source?
Do you mean the thing described at www.fraps.com?
It's certainly interesting, and hooking calls makes sense. There's for sure a point in it. However there may still be problems:
* There are some closed source games for Linux which load the library at run time. Your approach will fail here, just as it does with Wine. I don't know which games are affected, but I have read about this when searching for a workaround for the slow mouse pointer problem with fglrx.
* The fglrx driver: glReadPixels, glWritePixels, glTexImage2D and friends are _terribly_ slow with this driver( 1 fps when accessing the back buffer). Just follow the Direct3D discussions or search the archives, this problem has been discussed before, and it will come up again(At least when my DX7 patches are ready). Your glReadPixels approach won't work for radeon cards. I don't know a fix / workaround. If you have one, I'd really be glad!
Stefan