| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > OpenGL и Compiz как правильно работать. |
| Автор: ller 21.6.2009, 17:36 |
| Пытаюсь выучить OpenGL. Сделал несколько примерчиков. Они компилируются, запускаются, но при включеном Compiz-е примитивы не отрисовываются, если их меньше какого то количества. Такое ощущение, что Compiz ,буферезирует вывод. Как его заставить отрисовавать содержимое окна? Использую freeGLUT из дистрибутива Fedore 10. |
| Автор: kemiisto 21.6.2009, 17:58 |
| ller, я когда на Linux писал, вырубал этот Compiz к чертям собачим. Просто невозможно было с OpenGL работать. P.S. Терь пишу на Mac OS X. |
| Автор: ller 21.6.2009, 19:46 |
| Скринсэйверы все отображают правильно Но там динамика, поэтому наверное и работает. Но эффекты интересные, самое главное это перемещение окна без "хвостов" и прозрачность Добавлено через 1 минуту и 39 секунд Хотя еще переключатели задач удобные, и затемнение "зависшего" окна. |
| Автор: Alexeis 21.6.2009, 22:20 |
| ller, один и тот же код перестает работать? Может ошибка есть в коде и компиз просто косвенно влияет на нее приводя к закономерным последствиям которые не были видны только по случайности. |
| Автор: ller 22.6.2009, 00:45 |
| в том то и дело что код простой из учебника, узор Серпинского, при 2900 точек, они в окне появляются, ставишь 2800 чистое окно, хотя при закрытии видно, что происходит их прорисовка, и окно тут же закрывается. При отключении Compiz-а все рисуется сразу. Ощущени, что все сохраняется в буфере и не выводится.... Вот я и спрашиваю, может есть функция аналог glFlush() которая буфер выводит.... Добавлено через 1 минуту Могу код привести, он не большой, там в основном инициализация OpenGL и прочее Добавлено через 4 минуты и 27 секунд Кстати при повторном вызове функции display(), которая зарегестрированна как glutDisplayFunc(display); картинка появляется... т.е. меняю размер окна, это приводит к вызову display() и все прорисовывается, но не сразу.... Добавлено через 5 минут и 7 секунд В смысле сразу окно пустое, при изменении размеров все прорисовавается... |
| Автор: ller 6.7.2009, 00:33 | ||||
| Разобрался... Оказывается я немного того... Был код....
После того как я исправил на
все заработало, а без Compiz-a первый пример работал... странно однако Добавлено через 5 минут и 50 секунд все |
| Автор: ller 6.7.2009, 19:54 |
| Хотя как показали опыты этого не достаточно. Еще необходимо glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE); И после прорисовки вызывать glutSwapBuffers(); Правда все равно, изменение размеров окна долгое... Передвинул мышку, через 1сек изменилось окно |