我嘗試編寫一個簡單的過量程序,但在調整窗口大小時發現顯示錯誤(如圖所示)。我用kde使用Arch Linux。 我該如何解決它?在Linux中使用過量格式調整窗口大小時顯示錯誤
調整大小前:
調整大小後:
#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h>
void myinit(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 500.0, 0.0, 500.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
typedef GLfloat point2[2];
point2 vertices[3]={{0.0,0.0},{250.0,500.0},{500.0,0.0}};
int i, j, k;
int rand();
point2 p ={75.0,50.0};
glClear(GL_COLOR_BUFFER_BIT);
for(k=0; k<5000; k++)
{
j=rand()%3;
p[0] = (p[0]+vertices[j][0])/2.0;
p[1] = (p[1]+vertices[j][1])/2.0;
glBegin(GL_POINTS);
glVertex2fv(p);
glEnd();
}
glFlush();
printf ("display invokved....\n");
}
void main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("Sierpinski Gasket");
glutDisplayFunc(display);
myinit();
glutMainLoop();
}
試在繪製每一幀之前調用帶有當前窗口寬度和高度的'glViewport()'作爲參數。 – Bartvbl