Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graph/include/renderer.h

49 lines
1 KiB
C
Raw Normal View History

#pragma once
#include <vulkan/vulkan.h>
2018-09-29 21:03:06 -04:00
struct RenderTarget {
VkSurfaceKHR surface = nullptr;
VkSwapchainKHR swapchain = nullptr;
};
class Renderer {
public:
Renderer();
~Renderer();
2018-09-29 21:03:06 -04:00
RenderTarget* createSurfaceRenderTarget(VkSurfaceKHR surface);
void destroyRenderTarget(RenderTarget* target);
VkInstance getInstance() const {
return instance_;
}
private:
2018-09-27 20:33:45 -04:00
void createInstance();
#ifdef DEBUG
void createDebugMessenger();
#endif
2018-09-27 20:33:45 -04:00
void createLogicalDevice();
VkInstance instance_ = nullptr;
2018-09-27 20:33:45 -04:00
#ifdef DEBUG
bool enableDebug = false;
PFN_vkCreateDebugUtilsMessengerEXT createMessenger_ = nullptr;
2018-09-28 20:41:48 -04:00
PFN_vkDestroyDebugUtilsMessengerEXT destroyMessenger_ = nullptr;
VkDebugUtilsMessengerEXT messenger_ = nullptr;
#endif
2018-09-29 21:03:06 -04:00
VkPhysicalDevice physicalDevice_ = nullptr;
2018-09-27 20:33:45 -04:00
VkDevice device_ = nullptr;
2018-09-29 21:03:06 -04:00
struct {
uint32_t graphics = 0, presentation = 0;
} queueIndices;
2018-09-27 22:47:56 -04:00
VkQueue graphicsQueue_ = nullptr;
};