Visual C 용으로 OpenGL 용 소스를 작성할 떼는 헤더 파일 gl.h 와 glu.h 는 사용하지 않아도 된다. glut.h 하나만 사용하면 된다. 컴파일할 때는 헤더 파일을 위한 경로나 라이브러리 파일을 위한 경로를 별도로 지정하지 않아도 된다. 즉, 명령

 

    cl  소스파일명

으로 소스파일이 컴파일되어 실행파일이 생성된다. 아래 예제는 OpenGL Redebook 에 소개되어 있는 cube 예제 소스이다.

 

// Filename: cube.c
//
// See: http://www.glprogramming.com/red/chapter03.html

// #include <GL/gl.h>    // Commented out for Visual C
// #include <GL/glu.h>   // Commented out for Visual C
#include <GL/glut.h>

void init(void)
{
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glShadeModel (GL_FLAT);
}

void display(void)
{
   glClear (GL_COLOR_BUFFER_BIT);
   glColor3f (1.0, 1.0, 1.0);
   glLoadIdentity ();             /* clear the matrix */
           /* viewing transformation  */
   gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
   glScalef (1.0, 2.0, 1.0);      /* modeling transformation */
   glutWireCube (1.0);
   glFlush ();
}

void reshape (int w, int h)
{
   glViewport (0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode (GL_PROJECTION);
   glLoadIdentity ();
   glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
   glMatrixMode (GL_MODELVIEW);
}

int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (500, 500);
   glutInitWindowPosition (100, 100);
   glutCreateWindow (argv[0]);
   init ();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutMainLoop();
   return 0;
}

 

컴파일하기: cl cube.c

실행하기: cube

실행 결과:

 

 

 

Posted by Scripter
,