opengl glut

opengl es 2.0 reference



Contexto de OpenGL vĂ¡lido (1)

De las publicaciones en comp.graphics.api.opengl , parece que la mayoría de los novatos se queman en su primer programa OpenGL. En la mayoría de los casos, el error se debe a la invocación de funciones OpenGL incluso antes de que se cree un contexto de OpenGL válido. OpenGL es una máquina de estado. Solo después de que la máquina se haya encendido y zumbado en estado preparado, puede ponerse a trabajar.

Aquí hay un código simple para crear un contexto de OpenGL válido:

#include <stdlib.h> #include <GL/glut.h> // Window attributes static const unsigned int WIN_POS_X = 30; static const unsigned int WIN_POS_Y = WIN_POS_X; static const unsigned int WIN_WIDTH = 512; static const unsigned int WIN_HEIGHT = WIN_WIDTH; void glInit(int, char **); int main(int argc, char * argv[]) { // Initialize OpenGL glInit(argc, argv); // A valid OpenGL context has been created. // You can call OpenGL functions from here on. glutMainLoop(); return 0; } void glInit(int argc, char ** argv) { // Initialize GLUT glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE); glutInitWindowPosition(WIN_POS_X, WIN_POS_Y); glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT); glutCreateWindow("Hello OpenGL!"); return; }

Nota:

  • La llamada de interés aquí es glutCreateWindow() . No solo crea una ventana, sino que también crea un contexto OpenGL.
  • La ventana creada con glutCreateWindow() no está visible hasta que se glutMainLoop() .

¿Cómo y en qué etapa se crea un contexto de OpenGL válido en mi código? Recibo errores incluso en el código OpenGL simple.