source: opengl-game/vulkan-utils.hpp@ a0c5f28

feature/imgui-sdl points-test
Last change on this file since a0c5f28 was fe5c3ba, checked in by Dmitry Portnoy <dmp1488@…>, 5 years ago

In vulkangame, change the pickPhysicalDevice() and isDeviceSuitable() functions to take the deviceExtensions list as a parameter

  • Property mode set to 100644
File size: 1.4 KB
Line 
1#ifndef _VULKAN_UTILS_H
2#define _VULKAN_UTILS_H
3
4#include <optional>
5#include <vector>
6
7#include <vulkan/vulkan.h>
8
9using namespace std;
10
11struct QueueFamilyIndices {
12 optional<uint32_t> graphicsFamily;
13 optional<uint32_t> presentFamily;
14
15 bool isComplete() {
16 return graphicsFamily.has_value() && presentFamily.has_value();
17 }
18};
19
20struct SwapChainSupportDetails {
21 VkSurfaceCapabilitiesKHR capabilities;
22 vector<VkSurfaceFormatKHR> formats;
23 vector<VkPresentModeKHR> presentModes;
24};
25
26class VulkanUtils {
27 public:
28 static bool checkValidationLayerSupport(const vector<const char*> &validationLayers);
29
30 static VkResult createDebugUtilsMessengerEXT(VkInstance instance,
31 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
32 const VkAllocationCallbacks* pAllocator,
33 VkDebugUtilsMessengerEXT* pDebugMessenger);
34
35 static void destroyDebugUtilsMessengerEXT(VkInstance instance,
36 VkDebugUtilsMessengerEXT debugMessenger,
37 const VkAllocationCallbacks* pAllocator);
38
39 static QueueFamilyIndices findQueueFamilies(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface);
40 static bool checkDeviceExtensionSupport(VkPhysicalDevice physicalDevice, const vector<const char*>& deviceExtensions);
41 static SwapChainSupportDetails querySwapChainSupport(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface);
42};
43
44#endif // _VULKAN_UTILS_H
Note: See TracBrowser for help on using the repository browser.