无法在DirectX11中创建深度模板

时间:2014-08-14 14:05:40

标签: c++ directx directx-11

我有以下代码:

D3D11_TEXTURE2D_DESC descDepth;
memset(&descDepth, 0, sizeof(descDepth));
descDepth.Width = width;
descDepth.Height = height;
descDepth.MipLevels = 1;
descDepth.ArraySize = 1;
descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
descDepth.SampleDesc.Count = 1;
descDepth.SampleDesc.Quality = 0;
descDepth.Usage = D3D11_USAGE_DEFAULT;
descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;
descDepth.CPUAccessFlags = 0;
descDepth.MiscFlags = 0;
hr = g_d3dDevice->CreateTexture2D(&descDepth, nullptr, &g_depthStencil);

invalid argument错误。我真的不知道问题是什么。我之前使用过此代码,一切正常。

1 个答案:

答案 0 :(得分:0)

如果在设备创建时打开调试层,您应该在日志中发现DXGI_FORMAT_D24_UNORM_S8_UINT不是纹理格式,您需要使用DXGI_FORMAT_R24_UNORM_X8_TYPELESS作为纹理而另一个作为纹理格式深度模板视图。

相关问题