创建顶点缓冲区DirectX11时出错

时间:2015-05-10 13:13:23

标签: c++ directx-11 vertex-buffer

我试图创建一个顶点缓冲区,但我无法弄清楚我做错了什么。

粒子结构看起来像这样:

struct ParticleVertex12
{
    float x;
    float y;
    float z;
};

这是我创建缓冲区的代码:

ID3D11Buffer* mVertexBuffer;

D3D11_BUFFER_DESC desc;
memset( &desc, 0, sizeof( desc ) );

desc.BindFlags    = D3D11_BIND_VERTEX_BUFFER;
desc.Usage        = D3D11_USAGE_DYNAMIC;
desc.ByteWidth    = sizeof(ParticleVertex12) * NR_OF_PARTICLES;


HRESULT hr = S_OK;
hr         = device->CreateBuffer( &desc, nullptr, &mVertexBuffer );
return hr;

NR_OF_PARTICLES == 1000和device-> CreateBuffer返回E_FAIL。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果没有CPU访问标志,则无法创建动态缓冲区,否则无法用数据填充它。