コード例 #1
0
        /// <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);
        }
コード例 #2
0
 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);
 }