使用 DirectX 9,我想捕捉屏幕上的内容并在我的程序中显示它的较小版本。
为了捕捉它,我发现并正在使用 GetFrontBufferData。然而,它的工作方式是写入系统内存 (D3DPOOL_SYSTEMMEM) 中定义的表面。这导致我必须将屏幕截图传输回视频内存,然后才能绘制它。
正如您可以想象的那样,从(视频内存-> 系统内存-> 视频内存)进行的这种不必要的传输会导致我的程序出现相当大的快门。
有没有办法可以将图像存储在前端缓冲区中并将其放在视频内存的表面上?
这个问题是我最近的问题的衍生:Capture and Draw a ScreenShot using DirectX