From ab9ca847f79d45154358ff90a09d45151aee5e2c Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Mon, 18 Jul 2022 15:27:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=B5=D1=80=D1=88=D0=B8=D0=BD=20=D0=B8=20=D1=80?= =?UTF-8?q?=D0=B8=D1=81=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D1=83=D0=B3=D0=BE=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.cpp | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) 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);