2008-08-18 16 views

cevap

4

comp.graphics.api.opengl'daki yayınlardan, çoğu yeni doğanın ilk OpenGL programında ellerini yakması gibi görünüyor. Çoğu durumda, hata, OpenGL işlevinin geçerli bir OpenGL içeriği oluşturulmadan önce çağrılmasından kaynaklanır. OpenGL bir durum makinesidir. Makinenin çalıştırılmasından ve hazır duruma getirilmesinden sonra çalışmaya başlanabilir. İşte

geçerli bir OpenGL içeriğini oluşturmak için bazı basit kod şudur:

#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; 
} 

Not:

  • ilgi çağrı burada glutCreateWindow() olduğunu. Sadece bir pencere oluşturmaz, aynı zamanda bir OpenGL bağlamı oluşturur.
  • glutCreateWindow() ile oluşturulan pencere, glutMainLoop() adı verilene kadar görünmez.