From 1095fc20069f1e4b4c7f6b4cbc114d7f72d74ea4 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Thu, 3 Mar 2022 15:51:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B1=D1=83=D1=84=D0=B5=D1=80=D0=B0=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/vk.h | 1 + src/vk.cpp | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/vk.h b/include/vk.h index 55544d9..bb0d4a3 100644 --- a/include/vk.h +++ b/include/vk.h @@ -42,6 +42,7 @@ class Vulkan void createRenderpass(); // Создание проходов рендера VkShaderModule createShaderModule(const char * filename); // Создание шейдерного модуля void createGraphicPipeline(); // Создание графического конвеера + void createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory); // Создание произвольного буфера данных }; #endif // VK_H \ No newline at end of file diff --git a/src/vk.cpp b/src/vk.cpp index 4b3b4a0..b183dd8 100644 --- a/src/vk.cpp +++ b/src/vk.cpp @@ -717,3 +717,20 @@ void Vulkan::createGraphicPipeline() vkDestroyShaderModule(logicalDevice, fragShaderModule, 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"); + } +}