Создание буфера данных

This commit is contained in:
parent 04676f3e70
commit 1095fc2006
2 changed files with 18 additions and 0 deletions

View File

@ -42,6 +42,7 @@ class Vulkan
void createRenderpass(); // Создание проходов рендера void createRenderpass(); // Создание проходов рендера
VkShaderModule createShaderModule(const char * filename); // Создание шейдерного модуля VkShaderModule createShaderModule(const char * filename); // Создание шейдерного модуля
void createGraphicPipeline(); // Создание графического конвеера void createGraphicPipeline(); // Создание графического конвеера
void createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory); // Создание произвольного буфера данных
}; };
#endif // VK_H #endif // VK_H

View File

@ -717,3 +717,20 @@ void Vulkan::createGraphicPipeline()
vkDestroyShaderModule(logicalDevice, fragShaderModule, nullptr); vkDestroyShaderModule(logicalDevice, fragShaderModule, nullptr);
vkDestroyShaderModule(logicalDevice, vertShaderModule, nullptr); vkDestroyShaderModule(logicalDevice, vertShaderModule, nullptr);
} }
// Создание произвольного буфера данных
void Vulkan::createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory)
{
// Информация о создаваемом буфере
VkBufferCreateInfo bufferInfo{};
bufferInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufferInfo.size = size;
bufferInfo.usage = usage;
bufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
// Создание буфера
if (vkCreateBuffer(logicalDevice, &bufferInfo, nullptr, &buffer) != VK_SUCCESS)
{
throw std::runtime_error("Unable to create buffer");
}
}