diff --git a/src/main.cpp b/src/main.cpp index 399368d..9839425 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -155,6 +155,36 @@ int main(void) // Активация шейдера glUseProgram(shaderProgram); + // Вершины треугольника + glm::vec3 verticies[] = { {-1.0f, -1.0f, 0.0f} + , { 1.0f, -1.0f, 0.0f} + , { 0.0f, 1.0f, 0.0f} + }; + + // VAO + GLuint VertexArrayID; + glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин + glBindVertexArray(VertexArrayID); // Привязка для использования + + // VBO + GLuint vertexbuffer; + glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин + glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO + + // Загрузка вершин в используемый буфер вершин + glBufferData(GL_ARRAY_BUFFER, sizeof(verticies), verticies, GL_STATIC_DRAW); + + // Определим спецификацию атрибута + glVertexAttribPointer( 0 // индекс атрибута, должен совпадать с Layout шейдера + , 3 // количество компонент одного элемента + , GL_FLOAT // тип + , GL_FALSE // необходимость нормировать значения + , 0 // шаг + , (void *)0 // отступ с начала массива + ); + // Включаем необходимый атрибут у выбранного VAO + glEnableVertexAttribArray(0); + // Установка цвета очистки буфера цвета glClearColor(0.0f, 0.0f, 0.0f, 1.0f); @@ -165,7 +195,9 @@ int main(void) glClear(GL_COLOR_BUFFER_BIT); // Тут производится рендер - // ... + glBindVertexArray(VertexArrayID); // Привязка VAO для использования + glDrawArrays(GL_TRIANGLES, 0, 3); // Обработка вершин начиная с 0 в колличестве 3 + glBindVertexArray(0); // Отключение VAO // Представление содержимого буфера цепочки показа на окно glfwSwapBuffers(window);