Respecto a eso, es raro. Yo he compilado el código, y compila correctamente. Sin embargo, se me olvidó añadir la función glfwMakeContextCurrent, que hace que la ventana actual sea la que se use para dibujar:
#include <stdio.h>
#include <glfw\glfw3.h>
int main() {
GLFWwindow *window = NULL; // Con esta variable nos referiremos a la ventana
// Inicializamos la librería GLFW
if(GL_TRUE != glfwInit()) {
fprintf(stdout
, "Error inicializando GLFW\n"); return -1;
}
// Creamos ventana de dimensiones 800x600
window = glfwCreateWindow(800, 600, "Titulo de ventana", NULL, NULL);
if(NULL == window) {
fprintf(stdout
, "Error creando ventana de GLFW\n"); return -1;
}
glfwMakeContextCurrent(window);
// Color de fondo: blanco
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
// Bucle del juego/programa
while(GL_FALSE == glfwWindowShouldClose(window)) {
// Actualizamos eventos (ratón, teclado, maximizar ventana, cerrar ventana...)
glfwPollEvents();
// Limpiamos búfer
glClear(GL_COLOR_BUFFER_BIT);
// Dibujamos triángulo
glColor3f(1.0f, 0.0f, 0.0f); // Color del triángulo: rojo
glBegin(GL_TRIANGLES);
glVertex2f(-1.0f, -1.0f);
glVertex2f( 1.0f, -1.0f);
glVertex2f( 0.0f, 1.0f);
glEnd();
// Actualizamos el búfer de pantalla
glfwSwapBuffers(window);
}
// Cerramos programa liberando memoria
glfwTerminate();
return 0;
}