IndexBuffer.IndexBuffer(IDirect3DIndexBuffer9,Type,Int32,Device,Usage,Pool) Constructor (Microsoft.DirectX.Direct3D)

Creates a new instance of the IndexBuffer class.


Visual Basic Public Sub New( _
    ByVal lp As IDirect3DIndexBuffer9, _
    ByVal typeIndexType As TypeLeave Site, _
    ByVal numberIndices As Integer, _
    ByVal device As Device, _
    ByVal usage As Usage, _
    ByVal pool As Pool _
C# public IndexBuffer(
    IDirect3DIndexBuffer9 lp,
    TypeLeave Site typeIndexType,
    int numberIndices,
    Device device,
    Usage usage,
    Pool pool
C++ public:
    IDirect3DIndexBuffer9 lp,
    TypeLeave SitetypeIndexType,
    int numberIndices,
    Usage usage,
    Pool pool
JScript public function IndexBuffer(
    lp : IDirect3DIndexBuffer9,
    typeIndexType : TypeLeave Site,
    numberIndices : int,
    device : Device,
    usage : Usage,
    pool : Pool


lp Microsoft.DirectX.PrivateImplementationDetails.IDirect3DIndexBuffer9
Unmanaged Component Object Model (COM) IDirect3DIndexBuffer9 interface pointer.
typeIndexType System.Type
Member of the TypeLeave Site that indicates the type of index data the buffer holds. This can be a value type or any type that contains only value types.
numberIndices System.Int32
Maximum number of indices the buffer can hold.
device Microsoft.DirectX.Direct3D.Device
The Device object to associate with the index buffer.
usage Microsoft.DirectX.Direct3D.Usage
Usage can be 0, which indicates no usage value. However, if usage is desired, use a combination of one or more Usage flags. It is good practice to match the param_Usage_usage parameter in the IndexBuffer constructor with the behavior flags in the Device constructor. See Remarks.
pool Microsoft.DirectX.Direct3D.Pool
Member of the Pool enumerated type that describes a valid memory class into which to place the resource.


Index buffers are memory resources used to hold indices. They are similar to surfaces and vertex buffers. The use of index buffers enables Microsoft Direct3D to avoid unnecessary data copying and to place the buffer in the optimal memory type for the expected usage.

To use index buffers, create an index buffer, lock it, fill it with indices, unlock it, pass it to Device.Indices, set up the vertices, set up the vertex shader, and call Device.DrawIndexedPrimitives for rendering.

The Caps.MaxVertexIndex member indicates the types of index buffers that are valid for rendering.



The method call is invalid. For example, a method's parameter might contain an invalid value.


The data is invalid.


Direct3D does not have enough display memory to perform the operation.

OutOfMemoryExceptionLeave Site

Direct3D could not allocate sufficient memory to complete the call.

See Also