|
void myDisplay(void)
{
static GLubyte Mask[128];
FILE *fp;
fp=fopen("E:\\mask1.bmp","rb");
if(!fp)
{
printf("1");
exit(0);
}
if(!fseek(fp,-(int)sizeof(Mask),SEEK_END))
{
printf("2");
exit(0);
}
if(!fread(Mask,sizeof(Mask),1,fp))
{
printf("3");
exit(0);
}
fclose(fp);
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_POLYGON_STIPPLE);
glPolygonStipple(Mask);
glRectf(0.0f,0.5f,0.0f,0.5f);
glDisable(GL_POLYGON_STIPPLE);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400,400);
glutCreateWindow("OpenGL学习");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
上面是代码,每次到fseek(fp,-(int)sizeof(Mask),SEEK_END)就返回了,图片是32*32的,单色位图,大家帮忙看看问题出在哪了,谢谢了。 |
|