#ifndef VK_H #define VK_H #include #include #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 swapChainImages; // Изображения из списка показа std::vector swapChainImageViews; // Информация об изображениях из списка показа VkRenderPass renderPass; // Проходы рендера // Структура для хранения флагов struct { const bool VALIDATION = true; // Использование слоев проверки } states; void createInstance(); // Создание экземпяра Vulkan void selectPhysicalDevice(std::vector &deviceExtensions); // Выбор физического устройства void pickQueues(); // Выбор очередей void createLogicalDevice(std::vector &deviceExtensions); // Создание логического устройства void createWindowSurface(GLFWwindow* window); // Создание поверхности окна void createSwapchain(GLFWwindow* window); // Создание цепочки показа void createRenderpass(); // Создание проходов рендера }; #endif // VK_H