Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL и Compiz как правильно работать. Как правильно инициализировать OpenGL 
V
    Опции темы
ller
Дата 21.6.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Пытаюсь выучить OpenGL. Сделал несколько примерчиков. Они компилируются, запускаются, но при включеном Compiz-е примитивы не отрисовываются, если их меньше какого то количества. Такое ощущение, что Compiz ,буферезирует вывод. Как его заставить отрисовавать содержимое окна? Использую freeGLUT из дистрибутива Fedore 10.
PM MAIL   Вверх
kemiisto
Дата 21.6.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 1
Всего: 160



ller, я когда на Linux писал, вырубал этот Compiz к чертям собачим. Просто невозможно было с OpenGL работать. smile

P.S. Терь пишу на Mac OS X. smile Вот она счастье. Никакие эффекты отрубать не надо.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
ller
Дата 21.6.2009, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Скринсэйверы все отображают правильно smile
Но там динамика, поэтому наверное и работает.
Но эффекты интересные, самое главное это перемещение окна без "хвостов" и прозрачность

Добавлено через 1 минуту и 39 секунд
Хотя еще переключатели задач удобные, и затемнение "зависшего" окна. 
PM MAIL   Вверх
Alexeis
Дата 21.6.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



ller, один и тот  же код перестает работать? Может ошибка есть в коде и компиз просто косвенно влияет на нее приводя к закономерным последствиям которые не были видны только по случайности.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ller
Дата 22.6.2009, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



в том то и дело что код простой из учебника, узор Серпинского, при 2900 точек, они в окне появляются, ставишь 2800 чистое окно, хотя при закрытии видно, что происходит их прорисовка, и окно тут же закрывается. При отключении Compiz-а все рисуется сразу. Ощущени, что все сохраняется в буфере и не выводится....
Вот я и спрашиваю, может есть функция аналог glFlush() которая буфер выводит....

Добавлено через 1 минуту
Могу код привести, он не большой, там в основном инициализация OpenGL и прочее

Добавлено через 4 минуты и 27 секунд
Кстати при повторном вызове функции display(), которая зарегестрированна как glutDisplayFunc(display); картинка появляется...
т.е. меняю размер окна, это приводит к вызову display() и все прорисовывается, но не сразу.... smile

Добавлено через 5 минут и 7 секунд
В смысле сразу окно пустое, при изменении размеров все прорисовавается...
PM MAIL   Вверх
ller
Дата 6.7.2009, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Разобрался... Оказывается я немного того...
Был код....
Код

    glutCreateWindow("GL2");
    glutInitWindowPosition(50,50);
    glutInitWindowSize(500,500);



После того как я исправил на 
Код

    glutInitWindowPosition(50,50);
    glutInitWindowSize(500,500);
    glutCreateWindow("GL2");


все заработало, а без Compiz-a первый пример работал...  smile 
странно однако

Добавлено через 5 минут и 50 секунд
все
PM MAIL   Вверх
ller
Дата 6.7.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Хотя как показали опыты этого не достаточно.
Еще необходимо
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);

И после прорисовки вызывать
glutSwapBuffers();

Правда все равно, изменение размеров окна долгое... Передвинул мышку, через 1сек изменилось окно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.