ID3D11DeviceContext::IASetVertexBuffers method (d3d11.h)

Bind an array of vertex buffers to the input-assembler stage.

Syntax

void IASetVertexBuffers(
  [in]           UINT         StartSlot,
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppVertexBuffers,
  [in, optional] const UINT   *pStrides,
  [in, optional] const UINT   *pOffsets
);

Parameters

[in] StartSlot

Type: UINT

The first input slot for binding. The first vertex buffer is explicitly bound to the start slot; this causes each additional vertex buffer in the array to be implicitly bound to each subsequent input slot. The maximum of 16 or 32 input slots (ranges from 0 to D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1) are available; the maximum number of input slots depends on the feature level.

[in] NumBuffers

Type: UINT

The number of vertex buffers in the array. The number of buffers (plus the starting slot) can't exceed the total number of IA-stage input slots (ranges from 0 to D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot).

[in, optional] ppVertexBuffers

Type: ID3D11Buffer*

A pointer to an array of vertex buffers (see ID3D11Buffer). The vertex buffers must have been created with the D3D11_BIND_VERTEX_BUFFER flag.

[in, optional] pStrides

Type: const UINT*

Pointer to an array of stride values; one stride value for each buffer in the vertex-buffer array. Each stride is the size (in bytes) of the elements that are to be used from that vertex buffer.

[in, optional] pOffsets

Type: const UINT*

Pointer to an array of offset values; one offset value for each buffer in the vertex-buffer array. Each offset is the number of bytes between the first element of a vertex buffer and the first element that will be used.

Return value

None

Remarks

For info about creating vertex buffers, see How to: Create a Vertex Buffer.

Calling this method using a buffer that is currently bound for writing (that is, bound to the stream output pipeline stage) will effectively bind NULL instead because a buffer can't be bound as both an input and an output at the same time.

The debug layer will generate a warning whenever a resource is prevented from being bound simultaneously as an input and an output, but this will not prevent invalid data from being used by the runtime.

The method will hold a reference to the interfaces passed in. This differs from the device state behavior in Direct3D 10.

Windows Phone 8: This API is supported.

Requirements

Requirement Value
Target Platform Windows
Header d3d11.h
Library D3D11.lib

See also

ID3D11DeviceContext