Ejemplo n.º 1
0
        internal unsafe VulkanPhysicalDevice(Vk vk, VulkanContext context, PhysicalDevice physicalDevice) : base(vk)
        {
            if (context.Instance is null)
            {
                throw new NullReferenceException(nameof(context.Instance));
            }

            _Context        = context;
            _PhysicalDevice = physicalDevice;
            VK.GetPhysicalDeviceProperties(this, out PhysicalDeviceProperties properties);

            APIVersion    = properties.ApiVersion;
            DriverVersion = properties.DriverVersion;
            VendorID      = properties.VendorID;
            DeviceID      = properties.DeviceID;
            Type          = properties.DeviceType;
            Name          = SilkMarshal.PtrToString((nint)properties.DeviceName);

            SwapChainSupportDetails = GetSwapChainSupport();
            _Extensions             = GetExtensions();
        }