创建顶点缓冲区 DirectX11 时出错

Error when creating vertex buffer DirectX11

我正在尝试创建一个顶点缓冲区,但我不知道我做错了什么。

粒子结构如下所示:

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 和设备->CreateBuffer returns E_FAIL。有什么建议吗?

您不能在没有 CPU 访问标志的情况下创建动态缓冲区,否则无法用数据填充它。