Создание графического конвейера
This commit is contained in:
		
							parent
							
								
									e20066344b
								
							
						
					
					
						commit
						4a4788a73d
					
				@ -23,7 +23,8 @@ class Vulkan
 | 
				
			|||||||
        std::vector<VkImage> swapChainImages; // Изображения из списка показа
 | 
					        std::vector<VkImage> swapChainImages; // Изображения из списка показа
 | 
				
			||||||
        std::vector<VkImageView> swapChainImageViews; // Информация об изображениях из списка показа
 | 
					        std::vector<VkImageView> swapChainImageViews; // Информация об изображениях из списка показа
 | 
				
			||||||
        VkRenderPass renderPass; // Проходы рендера
 | 
					        VkRenderPass renderPass; // Проходы рендера
 | 
				
			||||||
        VkPipelineLayout pipelineLayout;
 | 
					        VkPipelineLayout pipelineLayout; // Раскладка конвейера
 | 
				
			||||||
 | 
					        VkPipeline graphicsPipeline; // Графический конвейер
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Структура для хранения флагов
 | 
					        // Структура для хранения флагов
 | 
				
			||||||
        struct 
 | 
					        struct 
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										24
									
								
								src/vk.cpp
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/vk.cpp
									
									
									
									
									
								
							@ -24,6 +24,7 @@ void Vulkan::init(GLFWwindow* window)
 | 
				
			|||||||
// завершение работы
 | 
					// завершение работы
 | 
				
			||||||
void Vulkan::destroy()
 | 
					void Vulkan::destroy()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    vkDestroyPipeline(logicalDevice, graphicsPipeline, nullptr);
 | 
				
			||||||
    vkDestroyPipelineLayout(logicalDevice, pipelineLayout, nullptr);
 | 
					    vkDestroyPipelineLayout(logicalDevice, pipelineLayout, nullptr);
 | 
				
			||||||
    vkDestroyRenderPass(logicalDevice, renderPass, nullptr);
 | 
					    vkDestroyRenderPass(logicalDevice, renderPass, nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -689,7 +690,28 @@ void Vulkan::createGraphicPipeline()
 | 
				
			|||||||
    // Шейдерные стадии
 | 
					    // Шейдерные стадии
 | 
				
			||||||
    VkPipelineShaderStageCreateInfo shaderStages[] = {vertShaderStageInfo, fragShaderStageInfo};
 | 
					    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);
 | 
					    vkDestroyShaderModule(logicalDevice, fragShaderModule, nullptr);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user