我试图创建一个顶点缓冲区,但我无法弄清楚我做错了什么。
粒子结构看起来像这样:
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。有什么建议吗?
答案 0 :(得分:2)
如果没有CPU访问标志,则无法创建动态缓冲区,否则无法用数据填充它。