Создание цепочки показа
This commit is contained in:
parent
83ab14804f
commit
013ac68c9e
|
@ -18,6 +18,7 @@ class Vulkan
|
|||
VkDevice logicalDevice; // логическое устройство
|
||||
VkQueue graphicalQueue; // очередь для работы с графикой
|
||||
Surface surface; // Поверхность окна
|
||||
VkSwapchainKHR swapChain; // Список показа
|
||||
|
||||
// Структура для хранения флагов
|
||||
struct
|
||||
|
|
22
src/vk.cpp
22
src/vk.cpp
|
@ -372,5 +372,27 @@ void Vulkan::createSwapchain(GLFWwindow* window)
|
|||
if (surface.capabilities.maxImageCount)
|
||||
surface.imageCount %= surface.capabilities.maxImageCount;
|
||||
|
||||
// Заполнение данных о создаваемом списке показа
|
||||
VkSwapchainCreateInfoKHR createInfo{};
|
||||
createInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
||||
createInfo.surface = surface.surface;
|
||||
createInfo.minImageCount = surface.imageCount;
|
||||
createInfo.imageFormat = surface.selectedFormat.format;
|
||||
createInfo.imageColorSpace = surface.selectedFormat.colorSpace;
|
||||
createInfo.imageExtent = surface.selectedExtent;
|
||||
createInfo.imageArrayLayers = 1;
|
||||
createInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
|
||||
createInfo.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||
createInfo.preTransform = surface.capabilities.currentTransform;
|
||||
createInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
|
||||
createInfo.presentMode = surface.selectedPresentMode;
|
||||
createInfo.clipped = VK_TRUE;
|
||||
createInfo.oldSwapchain = VK_NULL_HANDLE;
|
||||
|
||||
// Создание списка показа
|
||||
if (vkCreateSwapchainKHR(logicalDevice, &createInfo, nullptr, &swapChain) != VK_SUCCESS)
|
||||
{
|
||||
throw std::runtime_error("Unable to create swap chain");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue