2017-09-06 105 views
1

上午使用bitblt API来捕获窗口屏幕大约需要30到40毫秒,但我想以更快的方式做到这一点,所以是任何其他内置API或建议我最好的屏幕捕获驱动程序。哪个Windows API捕获屏幕比Bitblt或任何其他镜像驱动程序更快?

这是我的代码。

ret = BitBlt(m_pGDI->hDoubleBufferWorker,0,0,this->m_screenWidth, 
      this->m_screenHeight,hDisplayDC,this->m_scrennOffsetX,this->m_scrennOffsetY,SRCCOPY|CAPTUREBLT);   
     if(!ret) 
     { 
      int err= GetLastError(); 
      ErrorLogger::Log("Error : Desktop : Bitblt failed%d",err);  
     } 

回答

0

我发现了一种以更快的方式捕获桌面屏幕的解决方案。

我使用Direct3D11它花费大约5到20毫秒的单帧,它比BitBlt减少50%的时间消耗。