struct VulkanFunctions
{
- PFN_vkCreateInstance vkCreateInstance;
- PFN_vkDestroyInstance vkDestroyInstance;
- PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
- PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupport;
- PFN_vkCreateDevice vkCreateDevice;
- PFN_vkDestroyDevice vkDestroyDevice;
- PFN_vkGetDeviceQueue vkGetDeviceQueue;
- PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurface;
- PFN_vkDestroySurfaceKHR vkDestroySurface;
- PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallback;
- PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallback;
+ PFN_vkCreateInstance vkCreateInstance = 0;
+ PFN_vkDestroyInstance vkDestroyInstance = 0;
+ PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
+ PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupport = 0;
+ PFN_vkCreateDevice vkCreateDevice = 0;
+ PFN_vkDestroyDevice vkDestroyDevice = 0;
+ PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
+ PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurface = 0;
+ PFN_vkDestroySurfaceKHR vkDestroySurface = 0;
+ PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallback = 0;
+ PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallback = 0;
};
struct VulkanContext::Private
{
VulkanFunctions functions;
- VkInstance instance;
- VkPhysicalDevice physical_device;
- VkDevice device;
- unsigned graphics_queue_family;
- VkQueue graphics_queue;
- VkSurfaceKHR surface;
- VkDebugReportCallbackEXT debug_report_callback;
-
- Private();
+ VkInstance instance = 0;
+ VkPhysicalDevice physical_device = 0;
+ VkDevice device = 0;
+ unsigned graphics_queue_family = 0;
+ VkQueue graphics_queue = 0;
+ VkSurfaceKHR surface = 0;
+ VkDebugReportCallbackEXT debug_report_callback = 0;
static VkBool32 debug_report_func(VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *, void *);
};