| 258 | } |
| 259 | |
| 260 | void VulkanProgramPool::Destroy(ref_ptr<dp::GraphicsContext> context) |
| 261 | { |
| 262 | ref_ptr<dp::vulkan::VulkanBaseContext> vulkanContext = context; |
| 263 | VkDevice device = vulkanContext->GetDevice(); |
| 264 | |
| 265 | for (auto & d : m_programData) |
| 266 | { |
| 267 | vkDestroyPipelineLayout(device, d.m_pipelineLayout, nullptr); |
| 268 | vkDestroyDescriptorSetLayout(device, d.m_descriptorSetLayout, nullptr); |
| 269 | vkDestroyShaderModule(device, d.m_vertexShader, nullptr); |
| 270 | vkDestroyShaderModule(device, d.m_fragmentShader, nullptr); |
| 271 | } |
| 272 | } |
| 273 | |
| 274 | drape_ptr<dp::GpuProgram> VulkanProgramPool::Get(Program program) |
| 275 | { |