Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕获鼠标光标并在图像缓冲区c上绘制#_C#_Directx_Buffer_Sharpdx_Dxgi - Fatal编程技术网

C# 捕获鼠标光标并在图像缓冲区c上绘制#

C# 捕获鼠标光标并在图像缓冲区c上绘制#,c#,directx,buffer,sharpdx,dxgi,C#,Directx,Buffer,Sharpdx,Dxgi,我正在开发一个屏幕录制应用程序,我可以捕获屏幕,但没有鼠标光标。我使用DXGI、SARDPDX和MediaFoundation。 我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送给mediafoundation的图像缓冲区在编码到视频之前已经包含鼠标光标?在这里看到了很多关于如何在屏幕捕获中包含鼠标光标的示例,但他们所做的是将两个图像转换为位图,然后将两者结合起来。我已经试过了,但是性能不好,cpu使用率很高,fps也很低。没有光标,我可以捕捉60帧的平滑。提前感谢可以实现你的任务,但是

我正在开发一个屏幕录制应用程序,我可以捕获屏幕,但没有鼠标光标。我使用DXGI、SARDPDX和MediaFoundation。
我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送给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)表面的支持来扩展了。由于它现在工作正常,代码>找到了它