Ejemplo n.º 1
0
        /// <summary>
        /// Initializes the physical device.
        /// </summary>
        public override void Initialize(ISurface surface)
        {
            base.Initialize(surface);

            // - Get the vulkan library
            var library = Library as VulkanLibrary;

            // - Makes a new drawing surface
            DrawingSurface = surface.CreateVKSurface(library.Handle);

            // - Gets all devices
            var devices = library.Handle.EnumeratePhysicalDevices();

            // - Filter all non graphic devices
            var suitableDevices = FilterSuitableDevices(devices, DrawingSurface);

            // - Order devices by priority (performance)
            var orderedDevices = OrderDeviceBySuitability(suitableDevices);

            // - Takes the first suitable device
            Handle = orderedDevices.First();
        }