04/include/vk.h

41 lines
1.8 KiB
C
Raw Normal View History

#ifndef VK_H
#define VK_H
#include <vulkan/vulkan.h>
#include <GLFW/glfw3.h>
#include "PhysicalDevice.h"
#include "Surface.h"
#include "Queue.h"
class Vulkan
{
public:
void init(GLFWwindow* window); // инициализация
void destroy(); // завершение работы
private:
VkInstance instance; // Экземпляр Vulkan
PhysicalDevice physicalDevice; // Физическое устройство
VkDevice logicalDevice; // логическое устройство
Queue queue; // очередь
Surface surface; // Поверхность окна
VkSwapchainKHR swapChain; // Список показа
std::vector<VkImage> swapChainImages; // Изображения из списка показа
std::vector<VkImageView> swapChainImageViews; // Информация об изображениях из списка показа
// Структура для хранения флагов
struct
{
const bool VALIDATION = true; // Использование слоев проверки
} states;
void createInstance(); // Создание экземпяра Vulkan
void selectPhysicalDevice(std::vector<const char*> &deviceExtensions); // Выбор физического устройства
void pickQueues(); // Выбор очередей
void createLogicalDevice(std::vector<const char*> &deviceExtensions); // Создание логического устройства
void createWindowSurface(GLFWwindow* window); // Создание поверхности окна
void createSwapchain(GLFWwindow* window); // Создание цепочки показа
};
#endif // VK_H