VideoDXGICaptor.h 854 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <d3d11.h>
  3. #include <dxgi1_2.h>
  4. class VideoDXGICaptor
  5. {
  6. public:
  7. VideoDXGICaptor();
  8. ~VideoDXGICaptor();
  9. public:
  10. BOOL Init();
  11. VOID Deinit();
  12. public:
  13. virtual BOOL CaptureImage(RECT& rect, void* pData, INT& nLen);
  14. virtual BOOL CaptureImage(void* pData, INT& nLen);
  15. virtual BOOL ResetDevice();
  16. private:
  17. BOOL AttatchToThread(VOID);
  18. BOOL QueryFrame(void* pImgData, INT& nImgSize);
  19. BOOL QueryFrame(void* pImgData, INT& nImgSize, int z);
  20. private:
  21. IDXGIResource* zhDesktopResource;
  22. DXGI_OUTDUPL_FRAME_INFO zFrameInfo;
  23. ID3D11Texture2D* zhAcquiredDesktopImage;
  24. IDXGISurface* zhStagingSurf;
  25. private:
  26. BOOL m_bInit;
  27. int m_iWidth, m_iHeight;
  28. ID3D11Device* m_hDevice;
  29. ID3D11DeviceContext* m_hContext;
  30. IDXGIOutputDuplication* m_hDeskDupl;
  31. DXGI_OUTPUT_DESC m_dxgiOutDesc;
  32. };