1

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 テクスチャを作成するとうまくいきますが、この場合は望ましくありません。この設定が有効ではない理由を誰かが知っていますか?

4

1 に答える 1

0

CreateTexture2D() の 2 番目のパラメーターの入力として、長さが texDesc.ArraySize の D3D11_SUBRESOURCE_DATA の配列を提供する必要があります。

詳細については、このを参照してください。

于 2013-03-07T12:46:30.823 に答える