public D3DHardwareIndexBuffer( HardwareBufferManagerBase manager, IndexType type, int numIndices, BufferUsage usage, D3D.Device device, bool useSystemMemory, bool useShadowBuffer )
: base( manager, type, numIndices, usage, useSystemMemory, useShadowBuffer )
{
#if !NO_AXIOM_D3D_MANAGE_BUFFERS
d3dPool = useSystemMemory ? D3D.Pool.SystemMemory :
// If not system mem, use managed pool UNLESS buffer is discardable
// if discardable, keeping the software backing is expensive
( ( usage & BufferUsage.Discardable ) != 0 ) ? D3D.Pool.Default : D3D.Pool.Managed;
#else
d3dPool = useSystemMemory ? Pool.SystemMemory : Pool.Default;
#endif
device = D3DRenderSystem.ActiveD3D9Device; // temp hack (update to 1.7)
// create the buffer
d3dBuffer = new D3D.IndexBuffer(
device,
sizeInBytes,
D3DHelper.ConvertEnum( usage ),
d3dPool,
type == IndexType.Size16 );
}