Создание цепочки показа
This commit is contained in:
parent
83ab14804f
commit
013ac68c9e
|
@ -18,6 +18,7 @@ class Vulkan
|
||||||
VkDevice logicalDevice; // логическое устройство
|
VkDevice logicalDevice; // логическое устройство
|
||||||
VkQueue graphicalQueue; // очередь для работы с графикой
|
VkQueue graphicalQueue; // очередь для работы с графикой
|
||||||
Surface surface; // Поверхность окна
|
Surface surface; // Поверхность окна
|
||||||
|
VkSwapchainKHR swapChain; // Список показа
|
||||||
|
|
||||||
// Структура для хранения флагов
|
// Структура для хранения флагов
|
||||||
struct
|
struct
|
||||||
|
|
22
src/vk.cpp
22
src/vk.cpp
|
@ -372,5 +372,27 @@ void Vulkan::createSwapchain(GLFWwindow* window)
|
||||||
if (surface.capabilities.maxImageCount)
|
if (surface.capabilities.maxImageCount)
|
||||||
surface.imageCount %= 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