diff --git a/src/gapi/d3d11.h b/src/gapi/d3d11.h index 894ae1e..4cba9c3 100644 --- a/src/gapi/d3d11.h +++ b/src/gapi/d3d11.h @@ -500,7 +500,7 @@ namespace GAPI { void bind(const MeshRange &range) const { UINT stride = sizeof(Vertex); UINT offset = 0;//range.vStart * stride; - deviceContext->IASetIndexBuffer(IB, DXGI_FORMAT_R16_UINT, 0); + deviceContext->IASetIndexBuffer(IB, sizeof(Index) == 2 ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT, 0); deviceContext->IASetVertexBuffers(0, 1, &VB, &stride, &offset); } diff --git a/src/gapi/d3d9.h b/src/gapi/d3d9.h index db04cc1..ff560c3 100644 --- a/src/gapi/d3d9.h +++ b/src/gapi/d3d9.h @@ -401,7 +401,7 @@ namespace GAPI { uint32 usage = D3DUSAGE_WRITEONLY | (dynamic ? D3DUSAGE_DYNAMIC : 0); D3DPOOL pool = dynamic ? D3DPOOL_DEFAULT : D3DPOOL_MANAGED; - D3DCHECK(device->CreateIndexBuffer (iCount * sizeof(Index), usage, D3DFMT_INDEX16, pool, &IB, NULL)); + D3DCHECK(device->CreateIndexBuffer (iCount * sizeof(Index), usage, sizeof(Index) == 2 ? D3DFMT_INDEX16 : D3DFMT_INDEX32, pool, &IB, NULL)); D3DCHECK(device->CreateVertexBuffer (vCount * sizeof(Vertex), usage, D3DFMT_UNKNOWN, pool, &VB, NULL)); update(indices, iCount, vertices, vCount);