我在映射顶点缓存时遇到了问题。当我这样做:
ID3D11Buffer* pD3DSingleVertexBuffer;
...
pD3DImmediateContext->Map(pD3DSingleVertexBuffer, NULL, D3D11_MAP_WRITE_DISCARD, NULL, &mappedSubresource);
一切正常,所有框架都能正常工作。然而,当我做这样的事情时:
Microsoft::WRL::ComPtr<ID3D11Buffer> pD3DSingleVertexBuffer;
...
pD3DImmediateContext->Map(pD3DSingleVertexBuffer.Get(), NULL, D3D11_MAP_WRITE_DISCARD, NULL, &mappedSubresource);
页面没有任何渲染,但应用程序并未崩溃,也没有任何错误提示。
你知道我做错了什么吗?
pD3DImmediateContext->IASetVertexBuffers(0, 1, &pD3DSingleVertexBuffer, &stride, &offset);
而不是这个pD3DImmediateContext->IASetVertexBuffers(0, 1, pD3DSingleVertexBuffer.GetAddressOf(), &stride, &offset);
- Bartosz Boczula