// Define a simple fragment shader const char* fragmentShaderSource = R"glsl( #version 330 core out vec4 FragColor; void main() { FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); } )glsl";

// Clean up glDeleteProgram(program); glDeleteShader(fragmentShader); glDeleteShader(vertexShader); glfwTerminate();

// Define a simple vertex shader const char* vertexShaderSource = R"glsl( #version 330 core layout (location = 0) in vec3 aPos; void main() { gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); } )glsl";

// Create and link the program GLuint program = glCreateProgram(); glAttachShader(program, vertexShader); glAttachShader(program, fragmentShader); glLinkProgram(program);

// Use the program and draw a triangle while (!glfwWindowShouldClose(window)) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT);

// Import necessary libraries #include <GL/glew.h> #include <GLFW/glfw3.h>

glUseProgram(program); glDrawArrays(GL_TRIANGLES, 0, 3);