Класс модели с индексами
This commit is contained in:
@@ -18,12 +18,53 @@ Model_wo_indexes::~Model_wo_indexes()
|
||||
vulkan.destroyBuffer(vertexBuffer);
|
||||
}
|
||||
|
||||
// Рендер модели без индексов
|
||||
void Model_wo_indexes::render(VkCommandBuffer commandBuffer)
|
||||
// привзка используемых буферов данных
|
||||
void Model_wo_indexes::bindBuffers(VkCommandBuffer commandBuffer)
|
||||
{
|
||||
VkBuffer vertexBuffers[] = {vertexBuffer};
|
||||
VkDeviceSize offsets[] = {0};
|
||||
|
||||
vkCmdBindVertexBuffers(commandBuffer, 0, 1, vertexBuffers, offsets);
|
||||
}
|
||||
|
||||
// Рендер модели без индексов
|
||||
void Model_wo_indexes::render(VkCommandBuffer commandBuffer)
|
||||
{
|
||||
bindBuffers(commandBuffer);
|
||||
vkCmdDraw(commandBuffer, verteciesCount, 1, 0, 0);
|
||||
}
|
||||
|
||||
// Конструктор класса без индексов - принимает массив вершин
|
||||
Model_w_indexes::Model_w_indexes(Vertex* vertexArray, uint32_t vCount, uint32_t* indexArray, uint32_t iCount)
|
||||
: Model_wo_indexes(vertexArray, vCount), indeciesCount(iCount)
|
||||
{
|
||||
extern Vulkan vulkan;
|
||||
// Создание и инициализация буфера
|
||||
indexBuffer = vulkan.createDataBuffer(indexArray, indeciesCount * sizeof(uint32_t), VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
|
||||
}
|
||||
|
||||
// Деструктор класса без индексов
|
||||
Model_w_indexes::~Model_w_indexes()
|
||||
{
|
||||
extern Vulkan vulkan;
|
||||
|
||||
vulkan.destroyBuffer(indexBuffer);
|
||||
}
|
||||
|
||||
// привзка используемых буферов данных
|
||||
void Model_w_indexes::bindBuffers(VkCommandBuffer commandBuffer)
|
||||
{
|
||||
// Привязка родительских буферов
|
||||
Model_wo_indexes::bindBuffers(commandBuffer);
|
||||
|
||||
// Привязка индексного буфера
|
||||
vkCmdBindIndexBuffer(commandBuffer, indexBuffer, 0, VK_INDEX_TYPE_UINT32);
|
||||
}
|
||||
|
||||
// Рендер модели без индексов
|
||||
void Model_w_indexes::render(VkCommandBuffer commandBuffer)
|
||||
{
|
||||
bindBuffers(commandBuffer);
|
||||
|
||||
vkCmdDrawIndexed(commandBuffer, indeciesCount, 1, 0, 0, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user