diff --git a/include/Model.h b/include/Model.h index f2bc1ec..6a7c0ab 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, const glm::mat4& global_tranform = glm::mat4(1)); // Вызов отрисовки 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 0b3c5ce..94cfd7a 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -28,6 +28,19 @@ Model::~Model() } +// Вызов отрисовки без uniform-даных +void Model::render() +{ + // Подключаем VAO + vao.use(); + // Если есть индексы - рисуем с их использованием + if (indices_count) + 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, const glm::mat4& global_tranform) { @@ -44,14 +57,7 @@ void Model::render(const GLuint &model_uniform, UBO &material_buffer, const glm: // Загружаем данные о материале material_buffer.load(&material, sizeof(material)); - // Подключаем VAO - vao.use(); - // Если есть индексы - рисуем с их использованием - if (indices_count) - glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint))); - // Если есть вершины - рисуем на основании массива вершин - else if (verteces_count) - glDrawArrays(GL_TRIANGLES, 0, verteces_count); + render(); } // Функция для конфигурации атрибута вершинного буфера