创建具有CPU写访问权限的Texture2D数组

时间:2013-03-06 12:53:51

标签: directx directx-10

我正在尝试使用CPU写访问创建Texture2D数组。详细地说,我使用的代码如下所示:

D3D10_TEXTURE2D_DESC texDesc;

texDesc.Width               = 32;
texDesc.Height              = 32;
texDesc.MipLevels           = 1;
texDesc.ArraySize           = 2;
texDesc.SampleDesc.Count    = 1;
texDesc.SampleDesc.Quality  = 0;
texDesc.Usage               = D3D10_USAGE_DYNAMIC;
texDesc.CPUAccessFlags      = CPU_ACCESS_WRITE;
texDesc.Format              = DXGI_FORMAT_R32G32B32_FLOAT;
texDesc.BindFlags           = D3D10_BIND_SHADER_RESOURCE;
texDesc.MiscFlags           = 0;

ID3D10Texture2D* texture2D;
CHECK_SUCCESS(device->CreateTexture2D(&texDesc, NULL, &texture2D));

然而,这与E_INVALIDARG失败。创建具有相同尺寸(即32x32x2)和参数的3D纹理效果很好,但在这种情况下不需要。 有谁知道为什么这个设置无效?

1 个答案:

答案 0 :(得分:0)

您需要提供长度为texDesc.ArraySize的D3D11_SUBRESOURCE_DATA数组作为CreateTexture2D()的第二个参数的输入。

如需更多帮助,请参阅此example