#include
<
windows.h
>
#include
<
GL
/
glut.h
>
void
myDisplay(
void
)
{
static
GLubyte Mask[
128
]
=
{
0x00
,
0x00
,
0x00
,
0x00
,
//
这是最下面的一行
0x00
,
0x00
,
0x00
,
0x00
,
0x03
,
0x80
,
0x01
,
0xC0
,
//
麻
0x06
,
0xC0
,
0x03
,
0x60
,
//
烦
0x04
,
0x60
,
0x06
,
0x20
,
//
的
0x04
,
0x30
,
0x0C
,
0x20
,
//
初
0x04
,
0x18
,
0x18
,
0x20
,
//
始
0x04
,
0x0C
,
0x30
,
0x20
,
//
化
0x04
,
0x06
,
0x60
,
0x20
,
//
,
0x44
,
0x03
,
0xC0
,
0x22
,
//
不
0x44
,
0x01
,
0x80
,
0x22
,
//
建
0x44
,
0x01
,
0x80
,
0x22
,
//
议
0x44
,
0x01
,
0x80
,
0x22
,
//
使
0x44
,
0x01
,
0x80
,
0x22
,
//
用
0x44
,
0x01
,
0x80
,
0x22
,
0x44
,
0x01
,
0x80
,
0x22
,
0x66
,
0x01
,
0x80
,
0x66
,
0x33
,
0x01
,
0x80
,
0xCC
,
0x19
,
0x81
,
0x81
,
0x98
,
0x0C
,
0xC1
,
0x83
,
0x30
,
0x07
,
0xE1
,
0x87
,
0xE0
,
0x03
,
0x3F
,
0xFC
,
0xC0
,
0x03
,
0x31
,
0x8C
,
0xC0
,
0x03
,
0x3F
,
0xFC
,
0xC0
,
0x06
,
0x64
,
0x26
,
0x60
,
0x0C
,
0xCC
,
0x33
,
0x30
,
0x18
,
0xCC
,
0x33
,
0x18
,
0x10
,
0xC4
,
0x23
,
0x08
,
0x10
,
0x63
,
0xC6
,
0x08
,
0x10
,
0x30
,
0x0C
,
0x08
,
0x10
,
0x18
,
0x18
,
0x08
,
0x10
,
0x00
,
0x00
,
0x08
//
这是最上面的一行
};
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_POLYGON_STIPPLE);
glPolygonStipple(Mask);
glRectf(
-
0.5f
,
-
0.5f
,
0.0f
,
0.0f
);
//
在左下方绘制一个有镂空效果的正方形
glDisable(GL_POLYGON_STIPPLE);
glRectf(
0.0f
,
0.0f
,
0.5f
,
0.5f
);
//
在右上方绘制一个无镂空效果的正方形
glFlush();
}
int
main(
int
argc,
char
*
argv[])
{
glutInit(
&
argc, argv);
glutInitDisplayMode(GLUT_RGB
|
GLUT_SINGLE);
glutInitWindowPosition(
100
,
100
);
glutInitWindowSize(
400
,
400
);
glutCreateWindow(
"
画多边形(镂空)
"
);
glutDisplayFunc(
&
myDisplay);
glutMainLoop();
return
0
;
}