使用DirectX 9我想捕捉屏幕上的内容,并在我的程序中显示它的较小版本。
要捕获它,我发现并使用GetFrontBufferData。然而,它的工作方式是写入系统存储器中定义的表面(D3DPOOL_SYSTEMMEM)。这导致我不得不将屏幕截图转移回视频内存,以便我可以绘制它。
你可以想象这种不必要的转移(视频内存 - >系统内存 - >视频内存)会导致我的程序中出现相当多的快门。
有没有办法让图像存储在前置缓冲区并将其放在视频内存的表面上?
这个问题脱离了我最近提出的问题:Capture and Draw a ScreenShot using DirectX