#include #include #include #define GL_SILENCE_DEPRECATION 1 int main() { // Initialize GLFW if (!glfwInit()) { return -1; } // Set the required options for GLFW glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac // Create a windowed mode window and its OpenGL context GLFWwindow *window = glfwCreateWindow(800, 600, "Blue screen", NULL, NULL); if (!window) { glfwTerminate(); return -1; } glfwMakeContextCurrent(window); float vertices[6] = {-0.5f, -0.5f, 0.0f, 0.5f, 0.5f, -0.5f}; unsigned int VBO; glGenBuffers(1, &VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); const char *vertex_shader_src = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main()\n" "{\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" "}\0"; unsigned int vertex_shader; vertex_shader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertex_shader, 1, &vertex_shader_src, NULL); glCompileShader(vertex_shader); int success; char info_log[512]; glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &success); if (!success) { glGetShaderInfoLog(vertex_shader, 512, NULL, info_log); printf("ERROR::SHADER::VERTEX::COMPILATION_FAILED %s\n", info_log); } while (!glfwWindowShouldClose(window)) { glClearColor(0.1f, 0.1f, 0.25f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glfwSwapBuffers(window); glfwPollEvents(); } glfwTerminate(); return 0; }