2017-05-19 135 views
1

我正在使用屏幕錄製應用程序,我可以捕獲屏幕但沒有鼠標光標。我使用了DXGI,SharpDX和媒體基金會。捕獲鼠標光標並在圖像緩衝區上繪圖c#

我的問題是。是否可以在圖像緩衝區中寫入鼠標光標,以便我發送到mediafoundation的圖像緩衝區在它編碼爲視頻之前已經有鼠標光標在它上面了?在這裏看到很多示例如何在屏幕捕獲中包含鼠標光標,但他們所做的是將兩個圖像都轉換爲位圖,然後將兩者結合起來。我已經嘗試過,但性能不好,CPU使用率非常高,fps也很低。沒有光標我可以捕捉60fps光滑。提前致謝

回答

0

它可能實現您的任務,但它需要從C + + C#上覆制一些代碼。在我的項目Desktop Screen Capture on Windows via Windows Desktop Duplication API with Drawing of Cursor's Image中,您可以找到合適的解決方案。它基於使用特殊的 Direct3D11紋理 - 它是使用MiscFlag - D3D11_RESOURCE_MISC_GDI_COMPATIBLE創建的。它允許通過IDXGISurface1::GetDC在表面上渲染GDI,並使用Windows函數DrawIconEx繪製光標圖像。遊標的繪圖由Windows功能執行,並在視頻內存中進行。

問候。

+0

我在IDXGISurface1 :: GetDC的堆棧。我無法在SharpDX中找到此代碼的封裝器。 – kripto

+0

爲什麼你找不到?檢查鏈接[SharpDX-DXGI API](http://sharpdx.org/wiki/class-library-api/dxgi/#api-Interfaces) - 它有'IDXGISurface1

  • GetDC
  • ???
  • ???

該接口通過添加對使用Windows圖形設備接口(GDI)呈現給Microsoft DirectX圖形基礎結構(DXGI)表面的支持來擴展該接口。

' –

+0

發現它感謝它現在的工作 – kripto