DirectX 截屏问题

bamboo2000 bamboo2000 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下三段代码中,只有第一段能截屏,但仍然截不到分层窗口(像QQ的登录窗口),谁能给出一段DirectX的正常截屏代码,效率不要太低!

// ============ 11111 ================
g_pD3DDevice.CreateOffscreenPlainSurface(Screen.Width, Screen.Height, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, pSurface, nil);
g_pD3DDevice.GetFrontBufferData(0, pSurface);
D3DXSaveSurfaceToFile(PWidechar(filename), D3DXIFF_BMP, pSurface, nil, nil);

// ============= 22222 =============
g_pD3DDevice.CreateOffscreenPlainSurface(Screen.Width, Screen.Height, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, pSurface, nil);
g_pD3DDevice.GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, pBackSurface);
D3DXLoadSurfaceFromSurface(pSurface, nil, nil, pBackSurface, nil, nil, D3DX_FILTER_NONE, 0);
D3DXSaveSurfaceToFile(PWidechar(filename), D3DXIFF_BMP, pSurface, nil, nil);

// ============== 33333 =============
g_pD3DDevice.GetRenderTarget( 0, pSurface );
g_pD3DDevice.CreateOffscreenPlainSurface(Screen.Width, Screen.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, pBackSurface, nil);
g_pD3DDevice.GetRenderTargetData( pSurface,pBackSurface );
D3DXSaveSurfaceToFile(PWidechar(filename), D3DXIFF_BMP, pBackSurface, nil, nil);

...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
bamboo2000
图形处理/算法 19,463 成员 50,678 内容