summaryrefslogtreecommitdiff
path: root/lesson01/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lesson01/main.cpp')
-rw-r--r--lesson01/main.cpp63
1 files changed, 7 insertions, 56 deletions
diff --git a/lesson01/main.cpp b/lesson01/main.cpp
index 1c3804d..7c4b925 100644
--- a/lesson01/main.cpp
+++ b/lesson01/main.cpp
@@ -2,6 +2,7 @@
#include <iostream>
#include <GLFW/glfw3.h>
#include <cmath>
+#include "shader.h"
const char *vertexShaderSource = "#version 330 core\n"
"layout (location = 0) in vec3 aPos;\n"
@@ -69,50 +70,7 @@ int main()
// ШЕЙДЕРЫ
- unsigned int vertexShader;
- vertexShader = glCreateShader(GL_VERTEX_SHADER);
- glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
- glCompileShader(vertexShader);
-
- unsigned int fragmentShader;
- fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
- glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
- glCompileShader(fragmentShader);
-
- int success, success_vertex, success_fragment;
- char infoLog[512];
- glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success_vertex);
- glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success_fragment);
-
- // проверка компиляции шейдеров
- if (!success_vertex) {
- glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);
- std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n"
- << infoLog << std::endl;
- } else if (!success_fragment) {
- glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);
- std::cout << "ERROR::SHADER::FRAGMENT::COMPILATION_FAILED\n"
- << infoLog << std::endl;
- }
-
- // линкуем шейдеры к программному объекту
- unsigned int shaderProgram;
- shaderProgram = glCreateProgram();
-
- glAttachShader(shaderProgram, vertexShader);
- glAttachShader(shaderProgram, fragmentShader);
- glLinkProgram(shaderProgram);
-
- glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
- if (!success) {
- glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog);
- std::cout << "ERROR::PROGRAM::LINKING_FAILED\n" << infoLog
- << std::endl;
- }
-
- glDeleteShader(vertexShader);
- glDeleteShader(fragmentShader);
-
+ Shader ourShader("./shader.vs", "./shader.fs");
// ИНИЦИАЛИЗАЦИЯ VAO
unsigned int VBO, VAO, EBO;
@@ -156,27 +114,20 @@ int main()
);
glEnableVertexAttribArray(1);
-
- /* glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); */
+ #ifdef WIREFRAME
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ #endif
+
while (!glfwWindowShouldClose(window)) {
processInput(window);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
-
- // задаём uniform fragment-шейдера
- /* float timeValue = glfwGetTime(); */
- /* float greenValue = (sin(timeValue) / 2.0f) + 0.5f; */
- /* int vertexColorLocation = glGetUniformLocation(shaderProgram, */
- /* "ourColor"); */
- glUseProgram(shaderProgram);
- /* glUniform4f(vertexColorLocation, 0.0f, greenValue, 0.0f, 1.0f); */
+ ourShader.use();
glBindVertexArray(VAO);
- /* glDrawArrays(GL_TRIANGLES, 0, 3); */
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
- /* glBindVertexArray(0); */
glfwSwapBuffers(window);
glfwPollEvents();