Создание графического конвейера
This commit is contained in:
parent
e20066344b
commit
4a4788a73d
|
@ -23,7 +23,8 @@ class Vulkan
|
|||
std::vector<VkImage> swapChainImages; // Изображения из списка показа
|
||||
std::vector<VkImageView> swapChainImageViews; // Информация об изображениях из списка показа
|
||||
VkRenderPass renderPass; // Проходы рендера
|
||||
VkPipelineLayout pipelineLayout;
|
||||
VkPipelineLayout pipelineLayout; // Раскладка конвейера
|
||||
VkPipeline graphicsPipeline; // Графический конвейер
|
||||
|
||||
// Структура для хранения флагов
|
||||
struct
|
||||
|
|
24
src/vk.cpp
24
src/vk.cpp
|
@ -24,6 +24,7 @@ void Vulkan::init(GLFWwindow* window)
|
|||
// завершение работы
|
||||
void Vulkan::destroy()
|
||||
{
|
||||
vkDestroyPipeline(logicalDevice, graphicsPipeline, nullptr);
|
||||
vkDestroyPipelineLayout(logicalDevice, pipelineLayout, nullptr);
|
||||
vkDestroyRenderPass(logicalDevice, renderPass, nullptr);
|
||||
|
||||
|
@ -689,7 +690,28 @@ void Vulkan::createGraphicPipeline()
|
|||
// Шейдерные стадии
|
||||
VkPipelineShaderStageCreateInfo shaderStages[] = {vertShaderStageInfo, fragShaderStageInfo};
|
||||
|
||||
// Тут создание графического конвейера
|
||||
|
||||
// Информация о создаваемом конвейере
|
||||
VkGraphicsPipelineCreateInfo pipelineInfo{};
|
||||
pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
|
||||
pipelineInfo.stageCount = 2;
|
||||
pipelineInfo.pStages = shaderStages;
|
||||
pipelineInfo.pVertexInputState = &vertexInputInfo;
|
||||
pipelineInfo.pInputAssemblyState = &inputAssembly;
|
||||
pipelineInfo.pViewportState = &viewportState;
|
||||
pipelineInfo.pRasterizationState = &rasterizer;
|
||||
pipelineInfo.pMultisampleState = &multisampling;
|
||||
pipelineInfo.pColorBlendState = &colorBlending;
|
||||
pipelineInfo.layout = pipelineLayout;
|
||||
pipelineInfo.renderPass = renderPass;
|
||||
pipelineInfo.subpass = 0;
|
||||
pipelineInfo.basePipelineHandle = VK_NULL_HANDLE;
|
||||
|
||||
// Создание графического конвейера
|
||||
if (vkCreateGraphicsPipelines(logicalDevice, VK_NULL_HANDLE, 1, &pipelineInfo, nullptr, &graphicsPipeline) != VK_SUCCESS)
|
||||
{
|
||||
throw std::runtime_error("Unable to create graphics pipeline");
|
||||
}
|
||||
|
||||
// Удаление шейдерных модулей
|
||||
vkDestroyShaderModule(logicalDevice, fragShaderModule, nullptr);
|
||||
|
|
Loading…
Reference in New Issue