void BasicRenderer::DrawIndexedPrimitive(PrimitiveTypeEnum pt, ObjectGUID vbId, ObjectGUID ibId, uint32_t startIndex, uint32_t indexCount, uint32_t startVertex, float* color, float* xform) { if(!m_context) return; UpdateCbPerDraw(xform,color); // Set primitive topology m_context->IASetPrimitiveTopology( (D3D11_PRIMITIVE_TOPOLOGY)pt ); // set vertex buffer VertexBuffer* vb = reinterpret_cast<VertexBuffer*>(vbId); UINT stride = vb->GetStride(); UINT Offset = 0; ID3D11Buffer* buffer = vb->GetBuffer(); m_context->IASetVertexBuffers( 0, 1, &buffer, &stride, &Offset); // set index buffer IndexBuffer* ib = reinterpret_cast<IndexBuffer*>(ibId); m_context->IASetIndexBuffer(ib->GetBuffer(),(DXGI_FORMAT)ib->GetFormat(),0); m_context->DrawIndexed(indexCount,startIndex,startVertex); }