Создание и инициализация произвольного буфера данных

This commit is contained in:
2022-04-07 09:01:43 +03:00
parent 167e46a506
commit 74c0872df9
2 changed files with 61 additions and 68 deletions

View File

@@ -8,6 +8,8 @@
#include "Surface.h"
#include "Queue.h"
#include <map>
class Vulkan
{
public:
@@ -30,13 +32,13 @@ class Vulkan
VkCommandPool commandPool; // Пул команд
std::vector<VkCommandBuffer> commandBuffers; // Буферы команд
VkBuffer vertexBuffer; // Буфер вершин
VkDeviceMemory vertexBufferMemory; // Память буфера вершин
VkBuffer indexBuffer; // Буфер индексов
VkDeviceMemory indexBufferMemory; // Память буфера индексов
std::vector<VkSemaphore> imageAvailableSemaphores; // семафор доступности изображения
std::vector<VkSemaphore> renderFinishedSemaphores; // семафор окончания рендера
std::vector<VkFence> inWorkFences; // барьер кадра в работе
uint32_t currentFrame = 0; // Текущий кадр рендера
std::map<VkBuffer, std::pair<VkDevice, VkDeviceMemory>> databuffers; // Словарь для сопоставления дескриптору буфера дескрипторов лог. устройства и памяти
// Структура для хранения флагов
struct
@@ -54,11 +56,11 @@ class Vulkan
void createRenderpass(); // Создание проходов рендера
VkShaderModule createShaderModule(const char * filename); // Создание шейдерного модуля
void createGraphicPipeline(); // Создание графического конвеера
void createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory); // Создание произвольного буфера данных
void createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer); // Создание произвольного буфера данных
void destroyBuffer(VkBuffer buffer); // Уничтожение буфера и освобождение его памяти
void createCommandPool(); // Создание пула команд
void copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size); // Копирование между буферами данных
void createVertexBuffer(); // Создание буфера вершин
void createIndexBuffer(); // Создание буфера индексов
VkBuffer createDataBuffer(void* data, VkDeviceSize size, VkBufferUsageFlags usage); // Создание буфера данных
void createSyncObjects(); // Создание объектов синхронизации
void createFramebuffers(); // Создание буферов кадра
};