#include <gl/glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
void myDisplay(void);
void myReshape(int x, int y);
void myMouse(int button, int state , int x ,int y);
void myKeyboard(unsigned char key,int x, int y );
void myInit(void);
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //单缓冲
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow("my first attempt");
//只有注册回调函数才显示窗口,奇怪
glutDisplayFunc(myDisplay);
glutReshapeFunc(myReshape);
glutMouseFunc(myMouse);
glutKeyboardFunc(myKeyboard);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
glVertex2i(289,190);
glVertex2i(320,128);
glVertex2i(239,67);
glVertex2i(194,101);
glVertex2i(129,83);
glVertex2i(75,73);
glVertex2i(74,74);
glVertex2i(20,10);
glEnd();
glFlush();
}
void myReshape(int x, int y){
std::cout<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myMouse(int button, int state , int x ,int y){
std::cout<<"state:"<<state<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myKeyboard(unsigned char key,int x, int y ){
std::cout<<key<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myInit(void){
std::cout<<"Init Begin..."<<endl;
glClearColor(1.0,1.0,1.0,1.0); //设定清除颜色,这条指令只是为后面的使用设置状态变量 白色
glColor3f(0.0f,0.0f,0.0f); //笔触黑色
glPointSize(4.0); //笔触大小4x4像素
glMatrixMode(GL_PROJECTION); //设置合适的矩阵
glLoadIdentity();
gluOrtho2D(0.0,640,0.0,480); //设定屏幕窗口的变换
}