/* 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;
GetDeviceProcAddrFunc								getDeviceProcAddr;
CreateDeviceFunc									createDevice;
EnumerateDeviceExtensionPropertiesFunc				enumerateDeviceExtensionProperties;
EnumerateDeviceLayerPropertiesFunc					enumerateDeviceLayerProperties;
GetPhysicalDeviceSparseImageFormatPropertiesFunc	getPhysicalDeviceSparseImageFormatProperties;
DestroySurfaceKHRFunc								destroySurfaceKHR;
GetPhysicalDeviceSurfaceSupportKHRFunc				getPhysicalDeviceSurfaceSupportKHR;
GetPhysicalDeviceSurfaceCapabilitiesKHRFunc			getPhysicalDeviceSurfaceCapabilitiesKHR;
GetPhysicalDeviceSurfaceFormatsKHRFunc				getPhysicalDeviceSurfaceFormatsKHR;
GetPhysicalDeviceSurfacePresentModesKHRFunc			getPhysicalDeviceSurfacePresentModesKHR;
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;
CreateDebugReportCallbackEXTFunc					createDebugReportCallbackEXT;
DestroyDebugReportCallbackEXTFunc					destroyDebugReportCallbackEXT;
DebugReportMessageEXTFunc							debugReportMessageEXT;
