Класс модели без индексов
This commit is contained in:
parent
7fd9bbd4d9
commit
688d404c6a
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef MODEL_H
|
||||||
|
#define MODEL_H
|
||||||
|
|
||||||
|
#include "I_Model.h"
|
||||||
|
#include "Vertex.h"
|
||||||
|
|
||||||
|
// Класс модели без индексов
|
||||||
|
class Model_wo_indexes : public I_Model
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Model_wo_indexes(Vertex* vertexArray, uint32_t verteciesCount);
|
||||||
|
~Model_wo_indexes();
|
||||||
|
virtual void render(VkCommandBuffer commandBuffer);
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32_t verteciesCount; // Количество вершин
|
||||||
|
VkBuffer vertexBuffer; // Буфер вершин
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MODEL_H
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include "Model.h"
|
||||||
|
|
||||||
|
#include "vk.h"
|
||||||
|
|
||||||
|
// Конструктор класса без индексов - принимает массив вершин
|
||||||
|
Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : verteciesCount(count)
|
||||||
|
{
|
||||||
|
extern Vulkan vulkan;
|
||||||
|
// Создание и инициализация буфера
|
||||||
|
vertexBuffer = vulkan.createDataBuffer(vertexArray, verteciesCount * sizeof(Vertex), VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Деструктор класса без индексов
|
||||||
|
Model_wo_indexes::~Model_wo_indexes()
|
||||||
|
{
|
||||||
|
extern Vulkan vulkan;
|
||||||
|
|
||||||
|
vulkan.destroyBuffer(vertexBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Рендер модели без индексов
|
||||||
|
void Model_wo_indexes::render(VkCommandBuffer commandBuffer)
|
||||||
|
{
|
||||||
|
VkBuffer vertexBuffers[] = {vertexBuffer};
|
||||||
|
VkDeviceSize offsets[] = {0};
|
||||||
|
|
||||||
|
vkCmdBindVertexBuffers(commandBuffer, 0, 1, vertexBuffers, offsets);
|
||||||
|
vkCmdDraw(commandBuffer, verteciesCount, 1, 0, 0);
|
||||||
|
}
|
Loading…
Reference in New Issue