/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 */
DestroyInstanceFunc													destroyInstance;
EnumeratePhysicalDevicesFunc										enumeratePhysicalDevices;
GetPhysicalDeviceFeaturesFunc										getPhysicalDeviceFeatures;
GetPhysicalDeviceFormatPropertiesFunc								getPhysicalDeviceFormatProperties;
GetPhysicalDeviceImageFormatPropertiesFunc							getPhysicalDeviceImageFormatProperties;
GetPhysicalDevicePropertiesFunc										getPhysicalDeviceProperties;
GetPhysicalDeviceQueueFamilyPropertiesFunc							getPhysicalDeviceQueueFamilyProperties;
GetPhysicalDeviceMemoryPropertiesFunc								getPhysicalDeviceMemoryProperties;
CreateDeviceFunc													createDevice;
EnumerateDeviceExtensionPropertiesFunc								enumerateDeviceExtensionProperties;
EnumerateDeviceLayerPropertiesFunc									enumerateDeviceLayerProperties;
GetPhysicalDeviceSparseImageFormatPropertiesFunc					getPhysicalDeviceSparseImageFormatProperties;
EnumeratePhysicalDeviceGroupsFunc									enumeratePhysicalDeviceGroups;
GetPhysicalDeviceFeatures2Func										getPhysicalDeviceFeatures2;
GetPhysicalDeviceProperties2Func									getPhysicalDeviceProperties2;
GetPhysicalDeviceFormatProperties2Func								getPhysicalDeviceFormatProperties2;
GetPhysicalDeviceImageFormatProperties2Func							getPhysicalDeviceImageFormatProperties2;
GetPhysicalDeviceQueueFamilyProperties2Func							getPhysicalDeviceQueueFamilyProperties2;
GetPhysicalDeviceMemoryProperties2Func								getPhysicalDeviceMemoryProperties2;
GetPhysicalDeviceSparseImageFormatProperties2Func					getPhysicalDeviceSparseImageFormatProperties2;
GetPhysicalDeviceExternalBufferPropertiesFunc						getPhysicalDeviceExternalBufferProperties;
GetPhysicalDeviceExternalFencePropertiesFunc						getPhysicalDeviceExternalFenceProperties;
GetPhysicalDeviceExternalSemaphorePropertiesFunc					getPhysicalDeviceExternalSemaphoreProperties;
DestroySurfaceKHRFunc												destroySurfaceKHR;
GetPhysicalDeviceSurfaceSupportKHRFunc								getPhysicalDeviceSurfaceSupportKHR;
GetPhysicalDeviceSurfaceCapabilitiesKHRFunc							getPhysicalDeviceSurfaceCapabilitiesKHR;
GetPhysicalDeviceSurfaceFormatsKHRFunc								getPhysicalDeviceSurfaceFormatsKHR;
GetPhysicalDeviceSurfacePresentModesKHRFunc							getPhysicalDeviceSurfacePresentModesKHR;
GetPhysicalDevicePresentRectanglesKHRFunc							getPhysicalDevicePresentRectanglesKHR;
GetPhysicalDeviceDisplayPropertiesKHRFunc							getPhysicalDeviceDisplayPropertiesKHR;
GetPhysicalDeviceDisplayPlanePropertiesKHRFunc						getPhysicalDeviceDisplayPlanePropertiesKHR;
GetDisplayPlaneSupportedDisplaysKHRFunc								getDisplayPlaneSupportedDisplaysKHR;
GetDisplayModePropertiesKHRFunc										getDisplayModePropertiesKHR;
CreateDisplayModeKHRFunc											createDisplayModeKHR;
GetDisplayPlaneCapabilitiesKHRFunc									getDisplayPlaneCapabilitiesKHR;
CreateDisplayPlaneSurfaceKHRFunc									createDisplayPlaneSurfaceKHR;
GetPhysicalDeviceFeatures2KHRFunc									getPhysicalDeviceFeatures2KHR;
GetPhysicalDeviceProperties2KHRFunc									getPhysicalDeviceProperties2KHR;
GetPhysicalDeviceFormatProperties2KHRFunc							getPhysicalDeviceFormatProperties2KHR;
GetPhysicalDeviceImageFormatProperties2KHRFunc						getPhysicalDeviceImageFormatProperties2KHR;
GetPhysicalDeviceQueueFamilyProperties2KHRFunc						getPhysicalDeviceQueueFamilyProperties2KHR;
GetPhysicalDeviceMemoryProperties2KHRFunc							getPhysicalDeviceMemoryProperties2KHR;
GetPhysicalDeviceSparseImageFormatProperties2KHRFunc				getPhysicalDeviceSparseImageFormatProperties2KHR;
GetPhysicalDeviceExternalBufferPropertiesKHRFunc					getPhysicalDeviceExternalBufferPropertiesKHR;
GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc					getPhysicalDeviceExternalSemaphorePropertiesKHR;
GetPhysicalDeviceExternalFencePropertiesKHRFunc						getPhysicalDeviceExternalFencePropertiesKHR;
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc	enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc			getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
GetPhysicalDeviceSurfaceCapabilities2KHRFunc						getPhysicalDeviceSurfaceCapabilities2KHR;
GetPhysicalDeviceSurfaceFormats2KHRFunc								getPhysicalDeviceSurfaceFormats2KHR;
GetPhysicalDeviceDisplayProperties2KHRFunc							getPhysicalDeviceDisplayProperties2KHR;
GetPhysicalDeviceDisplayPlaneProperties2KHRFunc						getPhysicalDeviceDisplayPlaneProperties2KHR;
GetDisplayModeProperties2KHRFunc									getDisplayModeProperties2KHR;
GetDisplayPlaneCapabilities2KHRFunc									getDisplayPlaneCapabilities2KHR;
CreateDebugReportCallbackEXTFunc									createDebugReportCallbackEXT;
DestroyDebugReportCallbackEXTFunc									destroyDebugReportCallbackEXT;
DebugReportMessageEXTFunc											debugReportMessageEXT;
GetPhysicalDeviceExternalImageFormatPropertiesNVFunc				getPhysicalDeviceExternalImageFormatPropertiesNV;
ReleaseDisplayEXTFunc												releaseDisplayEXT;
GetPhysicalDeviceSurfaceCapabilities2EXTFunc						getPhysicalDeviceSurfaceCapabilities2EXT;
CreateDebugUtilsMessengerEXTFunc									createDebugUtilsMessengerEXT;
DestroyDebugUtilsMessengerEXTFunc									destroyDebugUtilsMessengerEXT;
SubmitDebugUtilsMessageEXTFunc										submitDebugUtilsMessageEXT;
GetPhysicalDeviceMultisamplePropertiesEXTFunc						getPhysicalDeviceMultisamplePropertiesEXT;
GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc					getPhysicalDeviceCalibrateableTimeDomainsEXT;
GetPhysicalDeviceToolPropertiesEXTFunc								getPhysicalDeviceToolPropertiesEXT;
GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc					getPhysicalDeviceCooperativeMatrixPropertiesNV;
GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc	getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
CreateHeadlessSurfaceEXTFunc										createHeadlessSurfaceEXT;
CreateAndroidSurfaceKHRFunc											createAndroidSurfaceKHR;
CreateImagePipeSurfaceFUCHSIAFunc									createImagePipeSurfaceFUCHSIA;
CreateStreamDescriptorSurfaceGGPFunc								createStreamDescriptorSurfaceGGP;
CreateIOSSurfaceMVKFunc												createIOSSurfaceMVK;
CreateMacOSSurfaceMVKFunc											createMacOSSurfaceMVK;
CreateMetalSurfaceEXTFunc											createMetalSurfaceEXT;
CreateViSurfaceNNFunc												createViSurfaceNN;
CreateWaylandSurfaceKHRFunc											createWaylandSurfaceKHR;
GetPhysicalDeviceWaylandPresentationSupportKHRFunc					getPhysicalDeviceWaylandPresentationSupportKHR;
CreateWin32SurfaceKHRFunc											createWin32SurfaceKHR;
GetPhysicalDeviceWin32PresentationSupportKHRFunc					getPhysicalDeviceWin32PresentationSupportKHR;
GetPhysicalDeviceSurfacePresentModes2EXTFunc						getPhysicalDeviceSurfacePresentModes2EXT;
CreateXcbSurfaceKHRFunc												createXcbSurfaceKHR;
GetPhysicalDeviceXcbPresentationSupportKHRFunc						getPhysicalDeviceXcbPresentationSupportKHR;
CreateXlibSurfaceKHRFunc											createXlibSurfaceKHR;
GetPhysicalDeviceXlibPresentationSupportKHRFunc						getPhysicalDeviceXlibPresentationSupportKHR;
AcquireXlibDisplayEXTFunc											acquireXlibDisplayEXT;
GetRandROutputDisplayEXTFunc										getRandROutputDisplayEXT;
