#include
<
windows.h
>
#include
<
GL
/
glut.h
>
#include
<
math.h
>
#include
<
stdlib.h
>
void
InitGL(GLvoid)
{
glClearColor(
1.0
,
1.0
,
1.0
,
1.0
);
}
void
triangle(
void
)
{
glBegin(GL_TRIANGLES);
glColor3f(
1.0
,
1.0
,
0.0
);
glVertex2f(
10.0
,
10.0
);
glColor3f(
0.0
,
0.3
,
1.0
);
glVertex2f(
20.0
,
30.0
);
glColor3f(
1.0
,
0.0
,
0.0
);
glVertex2f(
30.0
,
10.0
);
glEnd();
}
void
DrawScene()
{
int
i;
glClear(GL_COLOR_BUFFER_BIT
|
GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(
10.0
,
100.0
,
0.0
);
triangle();
glPopMatrix();
for
(i
=
0
;i
<
5
;i
++
)
{
glRasterPos2i(
20
+
i
*
30
,
10
+
i
*
5
);
glCopyPixels(
50
,
200
,
500
,
500
,GL_COLOR);
}
glPopMatrix();
glFlush();
}
void
ReShape(
int
w,
int
h)
{
glViewport(
0
,
0
,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if
(w
<=
h)
gluOrtho2D(
0.0
,
150
,
0.0
,
150.0
*
(GLfloat)h
/
(GLfloat)w);
else
gluOrtho2D(
0.0
,
150.0
*
(GLfloat)w
/
(GLfloat)h,
0.0
,
150.0
);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int
main(
int
argc,
char
**
argv)
{
glutInit(
&
argc,argv);
glutInitDisplayMode(GLUT_SINGLE
|
GLUT_RGB
|
GLUT_DEPTH);
glutInitWindowSize(
500
,
400
);
glutInitWindowPosition(
100
,
100
);
glutCreateWindow(
"
OpenGL
"
);
InitGL();
glutReshapeFunc(ReShape);
glutDisplayFunc(DrawScene);
glutMainLoop();
return
0
;
}