【发布时间】:2016-11-05 00:54:45
【问题描述】:
我正在修改桌面复制 api 示例 kindly provided by Microsoft 以捕获屏幕并通过网络将更新发送到我的应用程序。我知道如何实际发送数据;我的问题是从 ID3D11Texture2D 对象获取数据。
ID3D11Texture2D* m_AcquiredDesktopImage;
IDXGIResource* desktopResource = nullptr;
DXGI_OUTDUPL_FRAME_INFO FrameInfo;
// Get new frame
HRESULT hr = m_DeskDupl->AcquireNextFrame(500, &FrameInfo, &desktopResource);
// QI for IDXGIResource
hr = desktopResource->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast<void **>(&m_AcquiredDesktopImage));
此时,我认为屏幕更新在m_AcquiredDesktopImage。我需要通过网络传输这些数据(尽可能高效)。
This answer 似乎在正确的轨道上,但我是 Windows 编程新手,所以我需要一些额外的帮助。
这是我能想到的唯一使用IDXGIObject::GetPrivateData
【问题讨论】:
标签: c++ windows winapi directx dxgi