6#ifndef INCLUDE_VULKANENGINE_VULKANMANAGER_H_
7#define INCLUDE_VULKANENGINE_VULKANMANAGER_H_
9#include <VulkanEngine/Camera.h>
10#include <VulkanEngine/Device.h>
11#include <VulkanEngine/IndexAttribute.h>
12#include <VulkanEngine/MeshBase.h>
13#include <VulkanEngine/Shader.h>
14#include <VulkanEngine/UniformBuffer.h>
15#include <VulkanEngine/VertexAttribute.h>
16#include <VulkanEngine/Window.h>
19#ifndef VK_API_VERSION_MAJOR
20#define VK_API_VERSION_MAJOR(version) VK_VERSION_MAJOR(version)
23#ifndef VK_API_VERSION_MINOR
24#define VK_API_VERSION_MINOR(version) VK_VERSION_MINOR(version)
27#ifndef VK_API_VERSION_PATCH
28#define VK_API_VERSION_PATCH(version) VK_VERSION_PATCH(version)
30#include <vk_mem_alloc.h>
39template <vk::Format format, vk::ImageType image_type, vk::ImageTiling tiling,
40 vk::SampleCountFlagBits
56 static std::shared_ptr<VulkanManager>& getInstanceInternal();
81 bool initialize(
const std::shared_ptr<Window> _window);
83 vk::CommandBuffer getCurrentCommandBuffer();
87 vk::Framebuffer getCurrentSwapchainFramebuffer();
92 std::shared_ptr<Device> getDevice() {
return device; }
94 vk::Instance getVkInstance()
const {
return vk_instance; }
96 const std::shared_ptr<RenderPass> getDefaultRenderPass()
const {
97 return default_render_pass;
100 const size_t getCurrentFrame()
const {
return current_frame; }
102 const size_t getFramesInFlight()
const {
return frames_in_flight; }
108 vk::Instance vk_instance;
111 std::shared_ptr<Window> window;
113 std::shared_ptr<Device> device;
114 std::shared_ptr<Swapchain> swapchain;
115 std::shared_ptr<RenderPass> default_render_pass;
117 size_t frames_in_flight;
118 size_t current_frame;
Definition: VulkanManager.h:49
~VulkanManager()
Destructor.
Definition: VulkanManager.cpp:49
static VulkanManager & getInstance()
Definition: VulkanManager.cpp:60
VulkanManager(const VulkanManager &)=delete
Delete copy constructor to disallow duplicates.
static void resetInstance()
Reset the singleton instance.
Definition: VulkanManager.cpp:64
void operator=(const VulkanManager &)=delete
Delete assignment operator to disallow duplicates.
bool initialize(const std::shared_ptr< Window > _window)
Definition: VulkanManager.cpp:69
void drawImage()
Executes all command buffers and swaps buffers.
Definition: VulkanManager.cpp:152
static void destroyInstance()
Destroy the singleton instance of the VulkanManager.
TODO development of this class is in progress.
Definition: Attribute.h:13