使用DXGI Output Duplication与Direct3D捕获桌面时图像数据全为0的问题求助
DXGI Output Duplication与Direct3D捕获桌面时图像数据全为0的问题求助
大家好,我最近在开发一个用C#结合DXGI Output Duplication和Direct3D实现的桌面截图应用。目前已经完成了DXGI初始化、Direct3D设备创建、输出复制的初始化流程,也能正常捕获到帧,但捕获到的图像数据全是0,保存出来的PNG文件是全黑的,完全没有实际的桌面内容。
下面是我应用的部分代码(核心初始化逻辑已实现,适配器枚举部分还在编写中):
using Silk.NET.Core.Native; using Silk.NET.Direct3D11; using Silk.NET.DXGI; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace TestApp; public class Program { public const int DXGI_ERROR_NOT_FOUND = unchecked((int)0x887A0002); public unsafe static void Main() { Console.WriteLine("Initializing DXGI..."); using var dxgi = DXGI.GetApi(); using var factory = dxgi.CreateDXGIFactory1<IDXGIFactory1>(); Console.WriteLine("DXGI Factory created."); Console.WriteLine("Enumerating adapters and find..."); // 后续适配器枚举、设备创建及输出复制逻辑已实现,但未贴全 } }
我已经确认DXGI工厂能正常创建,设备初始化也没报错,但就是拿不到有效的图像数据,实在卡在这里了,有没有大佬能帮我排查下问题?麻烦大家指点一下!
备注:内容来源于stack exchange,提问作者vitkuz573
相关产品推荐
相关产品推荐

