aboutsummaryrefslogtreecommitdiffstatsci
path: root/vulkan/Utils.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-08 22:22:54 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-08 22:22:54 +0100
commitb8051560dbadef834062037283f1d8de32522296 (patch)
tree8f4fd29be7dfe7c20a3d016599e07a35325a63d4 /vulkan/Utils.cs
parentfe6cb8a976b328b87ec66357c97614f67865e1d7 (diff)
Diffstat (limited to 'vulkan/Utils.cs')
-rw-r--r--vulkan/Utils.cs10
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));