1

我是 DirectX 的新手,花了一些时间阅读文档后,我才知道有两个视频缓冲区,即 FrontBuffer 和 BackBuffer。我正在执行 POC 以验证最快的屏幕捕获方法,并且根据某些消息来源的 BackBuffer 可能会做到这一点。(FrontBuffer 访问对我来说太慢了)

但不幸的是,互联网上没有那么多好的文章详细解释这个理论。如果得到解答,我有一些问题也可能对其他人有所帮助。

  1. 后台缓冲区只是应用程序可以写入的表面吗?
  2. 后台缓冲区应用程序是特定的吗?即每个 DX 应用程序的单独后台缓冲区?
  3. 如果我正在运行一些使用 DirectX 在屏幕上显示一些数据的应用程序,我可以捕获它的后台缓冲区吗?(根据 FRAPS 分析,可以将 DLL 连接到应用程序来执行此操作。但是有什么指导方针吗?)
4

1 回答 1

3
  1. 是的。根据您使用的 DirectX 版本,后台缓冲区是作为渲染目标创建的表面或纹理。
  2. 是的。每个应用程序都有自己的后端和前端缓冲区。应用程序甚至不限于使用一个后台缓冲区。相反,它可以使用三个或更多缓冲区或根本不使用后台缓冲区。
  3. 好吧,我不是挂钩 DirectX 应用程序的专家,但这应该是可能的。基本上,您将使用Present在呈现缓冲区之前捕获缓冲区的方法替换该方法。有关一些附加信息,请参见此处
于 2012-11-01T09:04:50.580 回答