diff options
author | iurii plugatarov <[email protected]> | 2024-08-10 13:19:36 +0200 |
---|---|---|
committer | iurii plugatarov <[email protected]> | 2024-08-10 13:19:36 +0200 |
commit | 02eda0b2aa8c91caa4116c04f411aafa0ab10676 (patch) | |
tree | 2528f3626e294918d5006f5ca638f8200761a966 /src/main.c | |
parent | 54e77f56abb2cbb1651bc1b12a94893d1edcd626 (diff) | |
download | ogl-02eda0b2aa8c91caa4116c04f411aafa0ab10676.tar.gz |
upd
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c index 8c77270..77ed9d5 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,6 @@ #include <GL/glew.h> #include <GLFW/glfw3.h> +#include <math.h> #include <stdio.h> #include <stdlib.h> @@ -7,6 +8,11 @@ void on_resize(GLFWwindow *win, int width, int height) { glViewport(0, 0, width, height); } +void get_max_attrib_count(int *attrib_count) { + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, attrib_count); + printf("Max vertex attribs %d\n", *attrib_count); +} + int main() { // Initialize GLFW if (!glfwInit()) { @@ -25,7 +31,6 @@ int main() { } glfwSetFramebufferSizeCallback(window, (void *)on_resize); - glfwMakeContextCurrent(window); // Initialize GLEW @@ -35,6 +40,9 @@ int main() { return -1; } + int attrib_count; + get_max_attrib_count(&attrib_count); + float vertices[] = { 0.5f, 0.5f, 0.0f, // top right 0.5f, -0.5f, 0.0f, // bottom right @@ -55,9 +63,11 @@ int main() { const char *vertex_shader_src = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" + "out vec4 vertexColor;\n" "void main()\n" "{\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" + " vertexColor = vec4(0.5, 0.0, 0.0, 1.0);\n" "}\0"; unsigned int vertex_shader = glCreateShader(GL_VERTEX_SHADER); @@ -73,13 +83,13 @@ int main() { printf("ERROR::SHADER::VERTEX::COMPILATION_FAILED\n%s\n", info_log); } - const char *fragment_shader_src = - "#version 330 core\n" - "out vec4 FragColor;\n" - "void main()\n" - "{\n" - " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" - "}\0"; + const char *fragment_shader_src = "#version 330 core\n" + "out vec4 FragColor;\n" + "uniform vec4 ourColor;\n" + "void main()\n" + "{\n" + " FragColor = ourColor;\n" + "}\0"; unsigned int fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(fragment_shader, 1, &fragment_shader_src, NULL); @@ -124,6 +134,13 @@ int main() { glClear(GL_COLOR_BUFFER_BIT); glUseProgram(shader_program); + float time_value = glfwGetTime(); + float green_value = (sin(time_value) / 2.0f) + 0.5f; + int vertex_color_location = + glGetUniformLocation(shader_program, "ourColor"); + + glUniform4f(vertex_color_location, 0.0f, green_value, 0.0f, 1.0f); + glBindVertexArray(VAO); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); glBindVertexArray(0); |