The SetVertex and Index buffers part:
CreateBuffers(mvg->dev, &mvg->pVB, &mvg->pIB);
UINT stride = sizeof(VERTS);
UINT offset = 0;
mvg->devcon->IASetVertexBuffers(0, 1, &mvg->pVB, &stride, &offset);
mvg->devcon->IASetIndexBuffer(mvg->pIB, DXGI_FORMAT_R32_UINT, 0);
The input layout:
pFXT = pFX->GetTechniqueByName("RENDER");
if(pFXT)
{
pFXT->GetDesc(&techDesc);
D3D11_INPUT_ELEMENT_DESC ied[] =
{
{ "ANCHOR", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
D3DX11_PASS_DESC PassDesc;
pFXT->GetPassByIndex(0)->GetDesc( &PassDesc );
dev->CreateInputLayout( ied, 1, PassDesc.pIAInputSignature, PassDesc.IAInputSignatureSize, &pLayout);
}
the draw call:
mvg->devcon->ClearRenderTargetView( mvg->rtv, D3DXCOLOR(0.0f,0.0f,0.0f,1) );
mvg->devcon->ClearDepthStencilView( mvg->dsv, D3D11_CLEAR_DEPTH, 1.0f, 0 );
mvg->devcon->IASetInputLayout( mvg->pLayout );
mvg->devcon->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
mvg->view->SetMatrix(&vMat.m[0][0]);
mvg->prj->SetMatrix(&pMat.m[0][0]);
for( UINT p = 0; p < mvg->techDesc.Passes; p++ )
{
//apply technique
mvg->pFXT->GetPassByIndex( p )->Apply(0, mvg->devcon);
//draw billboard
mvg->devcon->DrawIndexed(38400, 0, 0);
}