source:
opengl-game/vulkan-game.hpp@
c1c2021
Last change on this file since c1c2021 was c1c2021, checked in by , 6 years ago | |
---|---|
|
|
File size: 1.8 KB |
Rev | Line | |
---|---|---|
[99d44b2] | 1 | #ifndef _VULKAN_GAME_H |
2 | #define _VULKAN_GAME_H | |
[e8ebc76] | 3 | |
[0df3c9a] | 4 | #include "game-gui-sdl.hpp" |
5 | ||
[2e77b3f] | 6 | #ifdef NDEBUG |
7 | const bool ENABLE_VALIDATION_LAYERS = false; | |
8 | #else | |
9 | const bool ENABLE_VALIDATION_LAYERS = true; | |
10 | #endif | |
11 | ||
[99d44b2] | 12 | class VulkanGame { |
[e8ebc76] | 13 | public: |
[99d44b2] | 14 | VulkanGame(); |
15 | ~VulkanGame(); | |
[0df3c9a] | 16 | |
[b6e60b4] | 17 | void run(int width, int height, unsigned char guiFlags); |
[0df3c9a] | 18 | |
19 | private: | |
20 | GameGui* gui; | |
[c559904] | 21 | |
22 | SDL_version sdlVersion; | |
[0df3c9a] | 23 | SDL_Window* window; |
[c1d9b2a] | 24 | SDL_Renderer* renderer; |
25 | ||
26 | VkInstance instance; | |
27 | VkDebugUtilsMessengerEXT debugMessenger; | |
[fe5c3ba] | 28 | VkSurfaceKHR surface; // TODO: Change the variable name to vulkanSurface |
[90a424f] | 29 | VkPhysicalDevice physicalDevice = VK_NULL_HANDLE; |
[c1c2021] | 30 | VkDevice device; |
31 | ||
32 | VkQueue graphicsQueue; | |
33 | VkQueue presentQueue; | |
[0df3c9a] | 34 | |
[b6e60b4] | 35 | bool initWindow(int width, int height, unsigned char guiFlags); |
[0df3c9a] | 36 | void initVulkan(); |
37 | void mainLoop(); | |
[a0c5f28] | 38 | void renderUI(); |
39 | void renderScene(); | |
[0df3c9a] | 40 | void cleanup(); |
[c1d9b2a] | 41 | |
42 | void createVulkanInstance(const vector<const char*> &validationLayers); | |
43 | void setupDebugMessenger(); | |
44 | void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo); | |
[90a424f] | 45 | void createVulkanSurface(); |
[fe5c3ba] | 46 | void pickPhysicalDevice(const vector<const char*>& deviceExtensions); |
47 | bool isDeviceSuitable(VkPhysicalDevice device, const vector<const char*>& deviceExtensions); | |
[c1c2021] | 48 | void createLogicalDevice( |
49 | const vector<const char*> validationLayers, | |
50 | const vector<const char*>& deviceExtensions); | |
51 | void cleanupSwapChain(); | |
[c1d9b2a] | 52 | |
53 | static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback( | |
54 | VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, | |
55 | VkDebugUtilsMessageTypeFlagsEXT messageType, | |
56 | const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, | |
57 | void* pUserData); | |
[e8ebc76] | 58 | }; |
59 | ||
[99d44b2] | 60 | #endif // _VULKAN_GAME_H |
Note:
See TracBrowser
for help on using the repository browser.