I am having trouble at rendering vertices stored in a std::vector.
// Create and initialize the vertex buffer.
D3D11_BUFFER_DESC vertexBufferDesc;
ZeroMemory(&vertexBufferDesc, sizeof(D3D11_BUFFER_DESC));
vertexBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
vertexBufferDesc.ByteWidth = sizeof(VertexData) * this->vertex_data.size();
vertexBufferDesc.CPUAccessFlags = 0;
vertexBufferDesc.Usage = D3D11_USAGE_DEFAULT;
D3D11_SUBRESOURCE_DATA resourceDataVertex;
ZeroMemory(&resourceDataVertex, sizeof(D3D11_SUBRESOURCE_DATA));
resourceDataVertex.pSysMem = &(this->vertex_data);
HRESULT hr = pDevice->CreateBuffer(&vertexBufferDesc, &resourceDataVertex, &(this->pVertexBuffer));
if (FAILED(hr)) return false;
this->vertex_data being a std::vector<VertexData> with VertexData being:
// Vertex data
struct VertexData {
XMFLOAT3 v;
XMFLOAT2 vt;
XMFLOAT3 vn;
VertexData(XMFLOAT3 v, XMFLOAT2 vt, XMFLOAT3 vn) : v{ v }, vt{ vt }, vn{ vn } {}
};
Now I'm not sure doing resourceDataVertex.pSysMem = &(this->vertex_data); is a good idea. I can render another mesh without problem just by changing the ID3D11Buffer vertex buffer (said mesh being known at compile-time and stored in a C-Array).
This time around I simply get no render at all. I triple checked my object is in sight and vertex_data is fully populated.
Draw(6, 0);. Mesh is a cube face with just 2 triangles. Other mesh draws too with same drawing func - in a glitchy way but sure does ;) What about my pointer to data ? \$\endgroup\$