C# 捕获鼠标光标并在图像缓冲区c上绘制#
我正在开发一个屏幕录制应用程序,我可以捕获屏幕,但没有鼠标光标。我使用DXGI、SARDPDX和MediaFoundation。C# 捕获鼠标光标并在图像缓冲区c上绘制#,c#,directx,buffer,sharpdx,dxgi,C#,Directx,Buffer,Sharpdx,Dxgi,我正在开发一个屏幕录制应用程序,我可以捕获屏幕,但没有鼠标光标。我使用DXGI、SARDPDX和MediaFoundation。 我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送给mediafoundation的图像缓冲区在编码到视频之前已经包含鼠标光标?在这里看到了很多关于如何在屏幕捕获中包含鼠标光标的示例,但他们所做的是将两个图像转换为位图,然后将两者结合起来。我已经试过了,但是性能不好,cpu使用率很高,fps也很低。没有光标,我可以捕捉60帧的平滑。提前感谢可以实现你的任务,但是
我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送给mediafoundation的图像缓冲区在编码到视频之前已经包含鼠标光标?在这里看到了很多关于如何在屏幕捕获中包含鼠标光标的示例,但他们所做的是将两个图像转换为位图,然后将两者结合起来。我已经试过了,但是性能不好,cpu使用率很高,fps也很低。没有光标,我可以捕捉60帧的平滑。提前感谢可以实现你的任务,但是需要在C++上从C++中复制一些代码。在我的项目中,你可以找到合适的解决方案。它是基于使用特殊的 Direct3D11纹理-它是使用
miscsflag
-D3D11\u资源\u MISC\u GDI\u兼容创建的
。它允许通过IDXGISurface1::GetDC
在曲面上进行GDI渲染,并使用Windows函数DrawIconEx绘制光标图像。光标的绘制由Windows函数执行,并在视频内存上下文中完成
.< /p> 可以实现您的任务,但需要在C++上从C++中复制一些代码。在我的项目中,你可以找到合适的解决方案。它是基于使用特殊的 Direct3D11纹理-它是使用
miscsflag
-D3D11\u资源\u MISC\u GDI\u兼容创建的
。它允许通过IDXGISurface1::GetDC
在曲面上进行GDI渲染,并使用Windows函数DrawIconEx绘制光标图像。光标的绘制由Windows函数执行,并在视频内存上下文中完成
问候。我在IDXGISurface1::GetDC工作。我在SharpDX中找不到此代码的包装。为什么找不到?检查链接-它有
IDXGISurface1- GetDC
?- ?
该接口通过添加对使用Windows图形设备接口(GDI)渲染到Microsoft DirectX图形基础结构(DXGI)表面的支持来扩展。
发现它多亏了它现在在IDXGISurface1::GetDC工作的m堆栈。我在SharpDX中找不到此代码的包装。为什么找不到?检查链接-它有IDXGISurface1- GetDC
?- ?
该接口通过添加对使用Windows图形设备接口(GDI)渲染到Microsoft DirectX图形基础结构(DXGI)表面的支持来扩展了。由于它现在工作正常,代码>找到了它