2010.01.18 19:24
#includevoid RenderScene(void) { //현재 색상 사용 화면 클리어 glClear(GL_COLOR_BUFFER_BIT); //색상선택 Red glColor3f(1.0f,0.0f,0.0f); //사각형 그리기 LeftTop,RightBottom 좌표 glRectf(-25.0f,25.0f,25.0f,-25.f); //드로잉 glFlush(); } void SetupRC(void) { //void glClearColor(GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha); //Black(0.0, 0.0, 0.0) White(1.0, 1.0, 1.0); glClearColor(0.0f,0.0f,1.0f,1.0f); } void ChangeSize(GLsizei w, GLsizei h) { GLfloat aspectRatio; if(h==0) h=1; // void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); // x,y는 LeftBottom 좌표 //클리핑 영역이 이 공간에 맵핑. glViewport(0,0,w,h); //투영위한 행렬 변환 glMatrixMode(GL_PROJECTION); //행렬 처리 전 좌표계 초기화 glLoadIdentity(); aspectRatio=(GLfloat)w/(GLfloat)h; //클리핑 영역 설정 직교 투영 void glOrtho( GLdouble left, GLdouble right, // GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); //left,right=x의 min,max bottom,top=y의 min,max zNear,zFar=z의 min,max if(w<=h) glOrtho(-100.0,100.0,-100/aspectRatio,100.0/aspectRatio,1.0,-1.0); else glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(void) { //GLUT_SINGLE 싱글 버퍼 창 사용 //GLUT_RGB RGBA 색상 모드 사용 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //창의 타이틀 Simple glutCreateWindow("Simple"); //창이 그려질 때 RenderScene 호출. 콜백함수 등록. glutDisplayFunc(RenderScene); //창의 크기가 변할때 불려질 콜백 함수등록 glutReshapeFunc(ChangeSize); SetupRC(); glutMainLoop(); return 0; }
'OpenGL' 카테고리의 다른 글
OpenGL Simple Code (0) | 2010.01.18 |
---|---|
OpenGL VisualStudio 2008 설정 (0) | 2010.01.15 |
TAG OpenGL