swift wrapper around vulkan.
import VulkanKit
print("major:", Vulkan.Version.major.rawValue) // major: 1
print("minor:", Vulkan.Version.minor.rawValue) // minor: 3
print("patch:", Vulkan.Version.patch.rawValue) // patch: 283
print("Vulkan Instance Version:", Vulkan.Version.description)
// Vulkan Instance Version: 1.3.283
let vgi = Vulkan.GI()
vgi.initVulkan()
// available vulkan extensions:
// extension [1 of 17]: VK_KHR_device_group_creation
// extension [2 of 17]: VK_KHR_external_fence_capabilities
// extension [3 of 17]: VK_KHR_external_memory_capabilities
// extension [4 of 17]: VK_KHR_external_semaphore_capabilities
// extension [5 of 17]: VK_KHR_get_physical_device_properties2
// extension [6 of 17]: VK_KHR_get_surface_capabilities2
// extension [7 of 17]: VK_KHR_surface
// extension [8 of 17]: VK_EXT_debug_report
// extension [9 of 17]: VK_EXT_debug_utils
// extension [10 of 17]: VK_EXT_headless_surface
// extension [11 of 17]: VK_EXT_layer_settings
// extension [12 of 17]: VK_EXT_metal_surface
// extension [13 of 17]: VK_EXT_surface_maintenance1
// extension [14 of 17]: VK_EXT_swapchain_colorspace
// extension [15 of 17]: VK_MVK_macos_surface
// extension [16 of 17]: VK_KHR_portability_enumeration
// extension [17 of 17]: VK_LUNARG_direct_driver_loading
//
// success: vulkan instance created.
//
// available vulkan devices:
// device [1 of 1]: Apple M1 Pro
// type: integrated gpu
// api: 1.2.275
// swift-tools-version:5.10
import PackageDescription
let package = Package(
name: "MyVulkanPackage",
products: [
.library(
name: "MyVulkanLibrary",
targets: ["MyVulkanLibrary"]
)
],
dependencies: [
// add VulkanKit as a package dependency.
.package(url: "https://github.com/wabiverse/VulkanKit.git", branch: "main")
],
targets: [
.target(
name: "MyVulkanLibrary",
dependencies: [
// add the VulkanKit product as a target dependency.
.product(name: "VulkanKit", package: "VulkanKit")
],
swiftSettings: [
.interoperabilityMode(.Cxx)
]
)
]
)