Создание буфера данных
This commit is contained in:
parent
04676f3e70
commit
1095fc2006
|
@ -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
|
17
src/vk.cpp
17
src/vk.cpp
|
@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue