我是DirectX的新手,在阅读文档上花了一些时间之后,我知道有两个视频缓冲区,前屏幕缓冲区和backbuffer。我正在执行一个POC来验证最快的屏幕捕获方法,并且根据某些消息来源可能会做到这一点。(对我来说,前扣的访问太慢了)
但不幸的是,互联网上没有太多的好文章详细解释了理论。如果回答,我有一些问题可能会帮助他人。
- 后退缓冲区只是应用程序可以写入的表面吗?
- 背面缓冲应用程序是特定的吗?即每个DX应用程序的单独的后缓冲区?
- 如果我正在运行一些使用DirectX在屏幕上显示一些数据的应用程序,我可以捕获其后缓冲区吗?(根据FRAPS分析,可以将DLL挂在该应用程序上执行此操作。但是任何指南?)
- 是的。根据您使用的DirectX版本,后缓冲区是作为渲染目标创建的表面或纹理。
- 是的。每个应用程序都有自己的背部和前缓冲区。应用程序甚至不限于使用一个后缓冲区。相反,它可以使用三个或更多的缓冲区或根本不使用后缓冲区。
- 好吧,我不是挂接DirectX应用程序的专家,但这应该是可能的。基本上,您将用一种在显示缓冲区之前捕获缓冲区的方法替换
Present
方法。请参阅此处以获取一些其他信息。