假设我有一个全屏运行的OpenGL游戏(Left 4 Dead 2).我想以编程方式获取它的屏幕抓取然后将其写入视频文件.
我尝试过GDI,D3D和OpenGL方法(例如glReadPixels),并在捕获流中接收空白屏幕或闪烁.
有任何想法吗?
对于它的价值,一个类似于我想要实现的东西的典型例子是Fraps.
我正在尝试使用LD_PRELOAD方法捕获来自我的游戏的图像,通过提供我自己的库,以便拦截OpenGL调用.这个方法适用于简单的演示OpenGL代码(请参阅此项目的文件demo.cpp,make.sh,load.sh),但是对于我认为使用OpenGL的FPS游戏UrbanTerror不起作用.我自己提供的函数gettimeofday被正确调用,但是由于某些原因我的glXSwapBuffers不是.这些游戏使用OpenGL的方式有何不同?如果是这样,怎么样?有关如何加入UrT和/或其他FPS游戏的任何提示都将受到欢迎.我在Ubuntu 11上.