创建顶点缓冲区 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 访问标志的情况下创建动态缓冲区,否则无法用数据填充它。
我正在尝试创建一个顶点缓冲区,但我不知道我做错了什么。
粒子结构如下所示:
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 访问标志的情况下创建动态缓冲区,否则无法用数据填充它。