]> git.tdb.fi Git - libs/gui.git/blob - source/graphics/vkxlib/vulkancontext_platform.h
Use nullptr in place of 0 or NULL
[libs/gui.git] / source / graphics / vkxlib / vulkancontext_platform.h
1 #ifndef MSP_GRAPHICS_VULKANCONTEXT_PLATFORM_H_
2 #define MSP_GRAPHICS_VULKANCONTEXT_PLATFORM_H_
3
4 #define VK_USE_PLATFORM_XLIB_KHR
5 #include <vulkan/vulkan.h>
6 #include "vulkancontext.h"
7
8 namespace Msp {
9 namespace Graphics {
10
11 struct VulkanFunctions
12 {
13         PFN_vkCreateInstance vkCreateInstance = nullptr;
14         PFN_vkDestroyInstance vkDestroyInstance = nullptr;
15         PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = nullptr;
16         PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = nullptr;
17         PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupport = nullptr;
18         PFN_vkCreateDevice vkCreateDevice = nullptr;
19         PFN_vkDestroyDevice vkDestroyDevice = nullptr;
20         PFN_vkGetDeviceQueue vkGetDeviceQueue = nullptr;
21         PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurface = nullptr;
22         PFN_vkDestroySurfaceKHR vkDestroySurface = nullptr;
23         PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallback = nullptr;
24         PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallback = nullptr;
25 };
26
27 struct VulkanContext::Private
28 {
29         VulkanFunctions functions;
30         VkInstance instance = nullptr;
31         VkPhysicalDevice physical_device = nullptr;
32         VkDevice device = nullptr;
33         unsigned graphics_queue_family = 0;
34         VkQueue graphics_queue = nullptr;
35         VkSurfaceKHR surface = nullptr;
36         VkDebugReportCallbackEXT debug_report_callback = nullptr;
37
38         static VkBool32 debug_report_func(VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *, void *);
39 };
40
41 } // namespace Graphics
42 } // namespace Msp
43
44 #endif