source: opengl-game/vulkan-game.hpp@ c1d9b2a

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

In vulkangame, create a Vulkan instance and enable the Vulkan debug extension, and move the code that clears the screen to black into the main loop.

  • Property mode set to 100644
File size: 1.2 KB
Line 
1#ifndef _VULKAN_GAME_H
2#define _VULKAN_GAME_H
3
4#include "game-gui-sdl.hpp"
5
6#ifdef NDEBUG
7 const bool ENABLE_VALIDATION_LAYERS = false;
8#else
9 const bool ENABLE_VALIDATION_LAYERS = true;
10#endif
11
12class VulkanGame {
13 public:
14 VulkanGame();
15 ~VulkanGame();
16
17 void run(int width, int height, unsigned char guiFlags);
18
19 private:
20 GameGui* gui;
21
22 SDL_version sdlVersion;
23 SDL_Window* window;
24 SDL_Renderer* renderer;
25
26 VkInstance instance;
27 VkDebugUtilsMessengerEXT debugMessenger;
28
29 bool initWindow(int width, int height, unsigned char guiFlags);
30 void initVulkan();
31 void mainLoop();
32 void cleanup();
33
34 void createVulkanInstance(const vector<const char*> &validationLayers);
35 void setupDebugMessenger();
36 void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo);
37
38 static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback(
39 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
40 VkDebugUtilsMessageTypeFlagsEXT messageType,
41 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
42 void* pUserData);
43};
44
45#endif // _VULKAN_GAME_H
Note: See TracBrowser for help on using the repository browser.