03/include/vk.h

36 lines
1.4 KiB
C
Raw Normal View History

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