Следующий код не показывает круг на экране, почему он не работает? Я не вижу никакой ошибки.Круг не отображается на экране
void display(void){
glClear(GL_COLOR_BUFFER_BIT);
int circle_points=100;
int i;
double theta,cx=200, cy=300,r=100;
int MyCircle(){
glBegin(GL_LINE_LOOP);
glColor3f(1.0,1.0,1.0); //preto
for(i=0;i<circle_points;i++){
theta=(2*pi*i)/circle_points;
glVertex2f(cx+r*cos(theta),cy+r*sin(theta));
}
glEnd();
}
glFlush();
}
Вы не должны использовать единый буферном рисунок. В большинстве современных операционных систем с компоновщиками оконных менеджеров это приведет к тому, что на экране ничего не появится. Они только обновляют содержимое окна, когда вы меняете задний буфер на передний план, если вы рисуете непосредственно в переднем буфере, который вы просите о проблемах. Это не обязательно является причиной вашей проблемы, но это то, о чем вы должны знать. Двойная буферизация действительно дешева на современных настольных аппаратных средствах (фреймбуфер - это лишь небольшая часть всего VRAM в эти дни), нет никакой реальной пользы для ***, а не для использования ***. –
Является ли это функцией enfolded (наверняка, похоже)? Он даже звонит откуда угодно? Каковы матрицы проекций и моделей? – keltar