public T EnumAdapterByGpuPreference <T>(int index, GpuPreference gpuPreference) where T : IDXGIAdapter { Result result = EnumAdapterByGpuPreference(index, gpuPreference, typeof(T).GUID, out IntPtr adapterPtr); if (result.Failure) { return(default);
/// <summary> /// Gets the number of available adapters by given <see cref="GpuPreference"/> from this factory. /// </summary> /// <param name="gpuPreference">The <see cref="GpuPreference"/></param> /// <returns>The number of adapters</returns> public int GetAdapterByGpuPreference(GpuPreference gpuPreference) { int count = 0; for (int adapterIndex = 0; EnumAdapterByGpuPreference(adapterIndex, gpuPreference, out IDXGIAdapter1? adapter).Success; adapterIndex++) { count++; adapter !.Dispose(); } return(count); }
public ImmutableArray <T> EnumAdaptersByGpuPreference <T>(GpuPreference gpuPreference) where T : IDXGIAdapter { var adapters = ImmutableArray.CreateBuilder <T>(); var type = typeof(T); for (int index = 0; EnumAdapterByGpuPreference(index, gpuPreference, type.GUID, out IntPtr adapterPtr) != ResultCode.NotFound; ++index) { adapters.Add(FromPointer <T>(adapterPtr)); } return(adapters.ToImmutable()); }
public T[] EnumAdaptersByGpuPreference <T>(GpuPreference gpuPreference) where T : IDXGIAdapter { var adapters = new List <T>(); var type = typeof(T); for (int adapterIndex = 0; EnumAdapterByGpuPreference(adapterIndex, gpuPreference, type.GUID, out IntPtr adapterPtr) != ResultCode.NotFound; ++adapterIndex) { var adapter = FromPointer <T>(adapterPtr); adapters.Add(adapter); } return(adapters.ToArray()); }
public Result EnumAdapterByGpuPreference <T>(int index, GpuPreference gpuPreference, out T?adapter) where T : IDXGIAdapter { Result result = EnumAdapterByGpuPreference(index, gpuPreference, typeof(T).GUID, out IntPtr adapterPtr); if (result.Success) { adapter = MarshallingHelpers.FromPointer <T>(adapterPtr); return(result); } adapter = null; return(result); }
public T EnumAdapterByGpuPreference <T>(int index, GpuPreference gpuPreference) where T : IDXGIAdapter { EnumAdapterByGpuPreference(index, gpuPreference, typeof(T).GUID, out IntPtr adapterPtr).CheckError(); return(MarshallingHelpers.FromPointer <T>(adapterPtr)); }