阅读背景:

opengl的一个简单的双缓冲程序!

来源:互联网 
//============================================================================
// Name        : opengl.cpp
// Author      : OpenGL Programming Guide. The Offical Guide to Learning OpenGL,Version 2.1
//============================================================================

#include<GL/glut.h>
void init();
void display();
void spinDisplay();
void reshape(int w,int h);
void mouse(int button,int state,int x,int y);

static GLfloat spin = 0.0;


void createWindow(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
    glutInitWindowPosition(400, 400);
    glutInitWindowSize(300, 300);
    glutCreateWindow("OpenGL 3D view");
}

int main(int argc,char *argv[]) {
    createWindow(argc, argv);
	init();
	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
	glutMouseFunc(mouse);
	glutMainLoop();
	return 0;
}

void init(){

	glClearColor(0.0,0.0,0.0,0.0);//用rgba模式将清除颜色设置为黑色。
	glClear(GL_COLOR_BUFFER_BIT);// 将整个窗口清除为当前清除颜色。
	glShadeModel(GL_FLAT);
}

void display(){
	glClear(GL_COLOR_BUFFER_BIT);
	glPushMatrix();
	glRotatef(spin,0.0,0.0,1.0);
	glColor3f(1.0,1.0,1.0);

	//glRectf(-25.0,-25.0,25.0,25.0);
	glBegin(GL_POLYGON);
		glVertex2f(0.0,0.0);
		glVertex2f(0.0,3.0);
		glVertex2f(4.0,3.0);
		glVertex2f(6.0,1.5);
		glVertex2f(4.0,0.0);
	glEnd();
	glPopMatrix();
	glutSwapBuffers();
}

void spinDisplay(){
	spin = spin +2.0;
	if(spin > 360)spin = spin -360.0;
	glutPostRedisplay();

}

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

void mouse(int button,int state,int x,int y){
    switch(button){
    case GLUT_LEFT_BUTTON:
        if(state == GLUT_DOWN)glutIdleFunc(spinDisplay);
        break;
    case GLUT_RIGHT_BUTTON:
        if(state == GLUT_DOWN)glutIdleFunc(NULL);
        break;
    default:break;
    }
}//=============================================



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: