diff --git a/include/Model.h b/include/Model.h index d5529e5..d5ad488 100644 --- a/include/Model.h +++ b/include/Model.h @@ -41,6 +41,7 @@ class Model : public Movable Model(); // Конструктор без параметров Model(const Model& copy); // Конструктор копирования ~Model(); + void render(); // Вызов отрисовки без uniform-даных void render(const GLuint &model_uniform, UBO &material_buffer); // Вызов отрисовки void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер diff --git a/src/Model.cpp b/src/Model.cpp index 0de8d32..beb5d5f 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -28,6 +28,22 @@ Model::~Model() } +// Вызов отрисовки без uniform-даных +void Model::render() +{ + // Подключаем VAO + vao.use(); + // Если есть индексы - рисуем с их использованием + if (indices_count) + { + index_vbo.use(); + glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint))); + } + // Если есть вершины - рисуем на основании массива вершин + else if (verteces_count) + glDrawArrays(GL_TRIANGLES, 0, verteces_count); +} + // Вызов отрисовки void Model::render(const GLuint &model_uniform, UBO &material_buffer) { @@ -44,17 +60,7 @@ void Model::render(const GLuint &model_uniform, UBO &material_buffer) // Загружаем данные о материале material_buffer.load(&material, sizeof(material)); - // Подключаем VAO - vao.use(); - // Если есть индексы - рисуем с их использованием - if (indices_count) - { - index_vbo.use(); - glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint))); - } - // Если есть вершины - рисуем на основании массива вершин - else if (verteces_count) - glDrawArrays(GL_TRIANGLES, 0, verteces_count); + render(); } // Функция для конфигурации атрибута вершинного буфера