| 671 | } |
| 672 | |
| 673 | void Model::CreateBuffers() |
| 674 | { |
| 675 | Assert_(meshes.Size() > 0); |
| 676 | |
| 677 | StructuredBufferInit sbInit; |
| 678 | sbInit.Stride = sizeof(MeshVertex); |
| 679 | sbInit.NumElements = vertices.Size();; |
| 680 | sbInit.InitData = vertices.Data(); |
| 681 | vertexBuffer.Initialize(sbInit); |
| 682 | |
| 683 | FormattedBufferInit fbInit; |
| 684 | fbInit.Format = DXGI_FORMAT_R16_UINT; |
| 685 | fbInit.NumElements = indices.Size(); |
| 686 | fbInit.InitData = indices.Data(); |
| 687 | indexBuffer.Initialize(fbInit); |
| 688 | |
| 689 | uint64 vtxOffset = 0; |
| 690 | uint64 idxOffset = 0; |
| 691 | const uint64 numMeshes = meshes.Size(); |
| 692 | for(uint64 i = 0; i < numMeshes; ++i) |
| 693 | { |
| 694 | uint64 vbOffset = vtxOffset * sizeof(MeshVertex); |
| 695 | uint64 ibOffset = idxOffset * sizeof(uint16); |
| 696 | meshes[i].InitCommon(&vertices[vtxOffset], &indices[idxOffset], vertexBuffer.GPUAddress + vbOffset, indexBuffer.GPUAddress + ibOffset, vtxOffset, idxOffset); |
| 697 | |
| 698 | vtxOffset += meshes[i].NumVertices(); |
| 699 | idxOffset += meshes[i].NumIndices(); |
| 700 | } |
| 701 | } |
| 702 | |
| 703 | // == Geometry helpers ============================================================================ |
| 704 |
nothing calls this directly
no test coverage detected