diff options
Diffstat (limited to 'vulkan/Utils.cs')
| -rw-r--r-- | vulkan/Utils.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vulkan/Utils.cs b/vulkan/Utils.cs index bf629ed..9744b5f 100644 --- a/vulkan/Utils.cs +++ b/vulkan/Utils.cs @@ -16,6 +16,16 @@ namespace Vulkan { if (result != VkResult.Success) throw new InvalidOperationException ($"[{sourceFilePath}:{sourceLineNumber}->{caller}]{msg}: {result}"); } + public static VkExtensionProperties[] GetAvailableInstanceExtensions (string layerName = null) { + using (Utf8StringPointer pLayerName = layerName) { + CheckResult (vkEnumerateInstanceExtensionProperties (pLayerName, out uint pCount, IntPtr.Zero)); + VkExtensionProperties[] tmp = new VkExtensionProperties[pCount]; + CheckResult (vkEnumerateInstanceExtensionProperties (pLayerName, out pCount, tmp.Pin())); + tmp.Unpin(); + return tmp; + } + } + public static bool TryGetPhysicalDevice (VkInstance inst, VkPhysicalDeviceType deviceType, out VkPhysicalDevice phy) { CheckResult (vkEnumeratePhysicalDevices (inst, out uint phyCount, IntPtr.Zero)); |