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(); }