Exemple #1
0
        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);
    }
Exemple #3
0
        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));
 }