/// <summary> /// Set the vertex buffers /// </summary> /// <param name="vertexBuffers">The vertex buffers to set</param> /// <param name="startSlot">The slot on the device array to start setting vertex buffers to</param> /// <typeparam name="T">The type of the vertex in <see cref="VertexBuffer{TVertex}"/></typeparam> public void SetVertexBuffers <T>(ReadOnlySpan <VertexBuffer <T> > vertexBuffers, uint startSlot = 0) where T : unmanaged { Debug.Assert(StackSentinel.SafeToStackalloc <D3D12_VERTEX_BUFFER_VIEW>(vertexBuffers.Length)); D3D12_VERTEX_BUFFER_VIEW *views = stackalloc D3D12_VERTEX_BUFFER_VIEW[vertexBuffers.Length]; for (int i = 0; i < vertexBuffers.Length; i++) { views[i] = vertexBuffers[i].BufferView; } _list.Get()->IASetVertexBuffers(startSlot, (uint)vertexBuffers.Length, views); }
public void IASetVertexBuffers([NativeTypeName("UINT")] uint StartSlot, [NativeTypeName("UINT")] uint NumViews, [NativeTypeName("const D3D12_VERTEX_BUFFER_VIEW *")] D3D12_VERTEX_BUFFER_VIEW *pViews) { ((delegate * unmanaged <ID3D12GraphicsCommandList2 *, uint, uint, D3D12_VERTEX_BUFFER_VIEW *, void>)(lpVtbl[44]))((ID3D12GraphicsCommandList2 *)Unsafe.AsPointer(ref this), StartSlot, NumViews, pViews); }