我正在制作一个屏幕录制应用程序,我可以捕捉屏幕,但没有鼠标光标。我使用了DXGI,SharpDX和Media Foundation。
我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送到mediafoundation的图像缓冲区在编码为视频之前已经有鼠标光标?在这里看到很多样本如何在屏幕捕获中包含鼠标光标,但他们所做的是将两个图像转换为位图然后将两者结合起来。我已经尝试过,但性能不好,CPU使用率很高,而且fps也很低。没有光标我可以捕捉60fps平滑。在此先感谢
答案 0 :(得分: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功能执行,并在视频内存的上下文中完成。
问候。