Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: OpenGL. Вместо изображения видно заднее окно  (Прочитано 660 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AntXXX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Всем привет!
После компиляции вместо изображения видно заднее окно.

Код: (C) [Выделить]
#include <GL/glut.h>

void myinit()
{
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()
{
typedef GLfloat point2[2];
point2 verticles[3] = {{0.0, 0.0}, {250.0, 500.0}, {500.0, 0.0}};
static point2 p= {75.0, 50.0};
int j, k;
int rand();
for(k=0; k<5000;k++)
{
j=rand()%3;
p[0]=(p[0]+verticles[j][0])/2;
p[1]=(p[1]+verticles[j][1])/2;
glBegin(GL_POINTS);
glVertex2fv(p);
glEnd();

}
}

int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0,0);
glutCreateWindow("123");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

Скрин:
(Нажмите, чтобы показать/скрыть)

Всем заранее спасибо!
« Последнее редактирование: 25 Апреля 2014, 13:17:15 от AntXXX »

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Re: OpenGL. Вместо изображения видно заднее окно
« Ответ #1 : 25 Апреля 2014, 13:14:48 »
Не прячь тег [code=C] под спойлер, он и так будет небольшим и с прокруткой.

Пользователь решил продолжить мысль 25 Апреля 2014, 14:39:15:
В начало метода display() добавь
Код: (C) [Выделить]
glClear(GL_COLOR_BUFFER_BIT);

А после вызова метода glEnd() добавь
Код: (C) [Выделить]
glFlush();
« Последнее редактирование: 25 Апреля 2014, 14:39:30 от aSmile »

Оффлайн AntXXX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: OpenGL. Вместо изображения видно заднее окно
« Ответ #2 : 25 Апреля 2014, 22:00:19 »
Не прячь тег [code=C] под спойлер, он и так будет небольшим и с прокруткой.

Пользователь решил продолжить мысль 25 Апреля 2014, 14:39:15:
В начало метода display() добавь
Код: (C) [Выделить]
glClear(GL_COLOR_BUFFER_BIT);

А после вызова метода glEnd() добавь
Код: (C) [Выделить]
glFlush();

Не помогло. Я так понял не срабатывает glFlush(). Вместо glFlush() я юзнул glutSwapBuffers(). Спасибо за помощь!

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.