小编orf*_*orf的帖子

c ++ Directx11捕获屏幕并保存到文件

我有将texture2d保存到文件的问题,它总是给我黑色图像.这是代码:

HRESULT hr = SwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), reinterpret_cast< void** >( &g_pSurface ) );
if( g_pSurface )
{
    ID3D11Texture2D* pNewTexture = NULL;

    D3D11_TEXTURE2D_DESC description;
    g_pSurface->GetDesc( &description );
    description.BindFlags = 0;
    description.CPUAccessFlags = D3D11_CPU_ACCESS_READ | D3D11_CPU_ACCESS_WRITE;
    description.Usage = D3D11_USAGE_STAGING;

    HRESULT hr = d3d11Device->CreateTexture2D( &description, NULL, &pNewTexture );
    if( pNewTexture )
    {
        d3d11DevCon->CopyResource( pNewTexture, g_pSurface );

        hr=D3DX11SaveTextureToFileA(d3d11DevCon, pNewTexture, D3DX11_IFF_BMP, "screen.bmp");
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c++ screenshot save directx-11 texture2d

4
推荐指数
1
解决办法
8696
查看次数

标签 统计

c++ ×1

directx-11 ×1

save ×1

screenshot ×1

texture2d ×1