/// <summary> /// Creates a new DX-interop accelerator. /// </summary> /// <param name="accelerator">The source accelerator.</param> /// <param name="d3dDevice">The target DX device.</param> /// <returns>The created DX-interop accelerator.</returns> public static DirectXInteropAccelerator CreateDirectXInteropAccelerator( this Accelerator accelerator, Device d3dDevice) { if (d3dDevice == null) { throw new ArgumentNullException(nameof(d3dDevice)); } return(accelerator.CreateExtension <DirectXInteropAccelerator, ExtensionProvider>( new ExtensionProvider(d3dDevice))); }
/// <summary> /// Creates a new provider key-value-pair-sorting implementation for radix sort. /// </summary> /// <param name="accelerator">The accelerator.</param> /// <returns>The created scan provider.</returns> internal static RadixSortPairsProviderImplementation CreateRadixSortPairsProviderImplementation( this Accelerator accelerator) { return(accelerator.CreateExtension <RadixSortPairsProviderImplementation, RadixSortPairsExtension>( new RadixSortPairsExtension())); }
/// <summary> /// Creates a new provider implementation for scan. /// </summary> /// <param name="accelerator">The accelerator.</param> /// <returns>The created provider.</returns> internal static ScanProviderImplementation CreateScanProviderImplementation(this Accelerator accelerator) { return(accelerator.CreateExtension <ScanProviderImplementation, ScanExtension>( new ScanExtension())); }