/* 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;
CreateXlibSurfaceKHRFunc								createXlibSurfaceKHR;
GetPhysicalDeviceXlibPresentationSupportKHRFunc			getPhysicalDeviceXlibPresentationSupportKHR;
CreateXcbSurfaceKHRFunc									createXcbSurfaceKHR;
GetPhysicalDeviceXcbPresentationSupportKHRFunc			getPhysicalDeviceXcbPresentationSupportKHR;
CreateWaylandSurfaceKHRFunc								createWaylandSurfaceKHR;
GetPhysicalDeviceWaylandPresentationSupportKHRFunc		getPhysicalDeviceWaylandPresentationSupportKHR;
CreateMirSurfaceKHRFunc									createMirSurfaceKHR;
GetPhysicalDeviceMirPresentationSupportKHRFunc			getPhysicalDeviceMirPresentationSupportKHR;
CreateAndroidSurfaceKHRFunc								createAndroidSurfaceKHR;
CreateWin32SurfaceKHRFunc								createWin32SurfaceKHR;
GetPhysicalDeviceWin32PresentationSupportKHRFunc		getPhysicalDeviceWin32PresentationSupportKHR;
GetPhysicalDeviceFeatures2KHRFunc						getPhysicalDeviceFeatures2KHR;
GetPhysicalDeviceFormatProperties2KHRFunc				getPhysicalDeviceFormatProperties2KHR;
GetPhysicalDeviceImageFormatProperties2KHRFunc			getPhysicalDeviceImageFormatProperties2KHR;
GetPhysicalDeviceMemoryProperties2KHRFunc				getPhysicalDeviceMemoryProperties2KHR;
GetPhysicalDeviceProperties2KHRFunc						getPhysicalDeviceProperties2KHR;
GetPhysicalDeviceQueueFamilyProperties2KHRFunc			getPhysicalDeviceQueueFamilyProperties2KHR;
GetPhysicalDeviceSparseImageFormatProperties2KHRFunc	getPhysicalDeviceSparseImageFormatProperties2KHR;
GetPhysicalDeviceExternalBufferPropertiesKHRFunc		getPhysicalDeviceExternalBufferPropertiesKHR;
GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc		getPhysicalDeviceExternalSemaphorePropertiesKHR;
GetPhysicalDeviceExternalFencePropertiesKHRFunc			getPhysicalDeviceExternalFencePropertiesKHR;
GetPhysicalDeviceSurfaceCapabilities2KHRFunc			getPhysicalDeviceSurfaceCapabilities2KHR;
GetPhysicalDeviceSurfaceFormats2KHRFunc					getPhysicalDeviceSurfaceFormats2KHR;
GetPhysicalDeviceDisplayProperties2KHRFunc				getPhysicalDeviceDisplayProperties2KHR;
GetPhysicalDeviceDisplayPlaneProperties2KHRFunc			getPhysicalDeviceDisplayPlaneProperties2KHR;
GetDisplayModeProperties2KHRFunc						getDisplayModeProperties2KHR;
GetDisplayPlaneCapabilities2KHRFunc						getDisplayPlaneCapabilities2KHR;
CreateDebugReportCallbackEXTFunc						createDebugReportCallbackEXT;
DestroyDebugReportCallbackEXTFunc						destroyDebugReportCallbackEXT;
DebugReportMessageEXTFunc								debugReportMessageEXT;
GetPhysicalDeviceExternalImageFormatPropertiesNVFunc	getPhysicalDeviceExternalImageFormatPropertiesNV;
CreateViSurfaceNNFunc									createViSurfaceNN;
GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc		getPhysicalDeviceGeneratedCommandsPropertiesNVX;
ReleaseDisplayEXTFunc									releaseDisplayEXT;
AcquireXlibDisplayEXTFunc								acquireXlibDisplayEXT;
GetRandROutputDisplayEXTFunc							getRandROutputDisplayEXT;
GetPhysicalDeviceSurfaceCapabilities2EXTFunc			getPhysicalDeviceSurfaceCapabilities2EXT;
CreateIOSSurfaceMVKFunc									createIOSSurfaceMVK;
CreateMacOSSurfaceMVKFunc								createMacOSSurfaceMVK;
GetPhysicalDeviceMultisamplePropertiesEXTFunc			getPhysicalDeviceMultisamplePropertiesEXT;
