diff --git a/include/I_Model.h b/include/I_Model.h index 33c5ea1..2ad7084 100644 --- a/include/I_Model.h +++ b/include/I_Model.h @@ -6,6 +6,7 @@ class I_Model { public: + virtual ~I_Model() {}; // Виртуальный деструктор для корректной работы деструкторов в полиморфизме virtual void render(VkCommandBuffer commandBuffer) = 0; protected: virtual void bindBuffers(VkCommandBuffer commandBuffer) = 0; diff --git a/include/Model.h b/include/Model.h index 36d5ab7..70d9368 100644 --- a/include/Model.h +++ b/include/Model.h @@ -9,7 +9,7 @@ class Model_wo_indexes : public I_Model { public: Model_wo_indexes(Vertex* vertexArray, uint32_t verteciesCount); - ~Model_wo_indexes(); + virtual ~Model_wo_indexes(); virtual void render(VkCommandBuffer commandBuffer); protected: void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных @@ -23,7 +23,7 @@ class Model_w_indexes : public Model_wo_indexes { public: Model_w_indexes(Vertex* vertexArray, uint32_t verteciesCount, uint32_t* indexArray, uint32_t indeciesCount); - ~Model_w_indexes(); + virtual ~Model_w_indexes(); virtual void render(VkCommandBuffer commandBuffer); protected: void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных diff --git a/src/Model.cpp b/src/Model.cpp index ff052b0..7825fb6 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -2,6 +2,8 @@ #include "vk.h" +#include + // Конструктор класса без индексов - принимает массив вершин Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : verteciesCount(count) { @@ -14,7 +16,6 @@ Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : vertec Model_wo_indexes::~Model_wo_indexes() { extern Vulkan vulkan; - vulkan.destroyBuffer(vertexBuffer); } @@ -47,7 +48,6 @@ Model_w_indexes::Model_w_indexes(Vertex* vertexArray, uint32_t vCount, uint32_t* Model_w_indexes::~Model_w_indexes() { extern Vulkan vulkan; - vulkan.destroyBuffer(indexBuffer); }