Microsoft から親切に提供されたデスクトップ複製 API サンプルを変更して、画面をキャプチャし、ネットワーク経由でアプリケーションに更新を送信します。実際にデータを送信する方法を知っています。私の問題は、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
。このデータを有線で (できるだけ効率的に) 送信する必要があります。
この答えは正しい方向に進んでいるようですが、私は Windows プログラミングが初めてなので、追加のヘルプが必要です。
これは私が想像できる唯一の解決策ですIDXGIObject::GetPrivateData