![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| AntZ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.6.2007 Репутация: нет Всего: нет |
Вобщем уже давно пользуюсь библиотекой glut.h и для анимации использовал функцию IdleFunc + таймер делал используя библиотеку time.h, а позже нашел TimerFunc. Но проблема одна и та же! Всегда идет загрузка процессора на 100%...
Однако, если написать программку в Win32, то используя тамошний таймер загрузки процессора почти что нету!!! Я бы так и делал если бы у нас в университете не приходилось компилировать программы на Linux... В этом случае независимый ОС глют незаменим. Вот вобщем-то и вопрос: Как можно оптимизировать работу глютовских программ, чтобы они не грузили проц??? P.S. В архиве glut и программка, которая рисует шахматные фигуры линиями, б-сплайнами и безье и вертит их. Если даже выводить одну шахматную фигуру или даже ничего не рисовать (в функции myDisplay только очищать экранчик и свапать буффер), то все равно идет загрузка процессора на 100%!!! Что делать? Ума не приложу... P.P.S. Я программирую полностью на glut.h не используя операционно зависимые библиотеки. Потому-что компилирую дома под Виндовс, в универе под Линукс. Это сообщение отредактировал(а) AntZ - 22.1.2008, 21:49 Присоединённый файл ( Кол-во скачиваний: 17 )
figury.zip 75,06 Kb |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
а в библиотеке glut нет чего-нибудь вроде Sleep?
|
|||
|
||||
| AntZ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.6.2007 Репутация: нет Всего: нет |
||||
|
||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: нет Всего: 10 |
Программируй используя Wiggle.
И таймер можно не использовать. Просто в конце кода по обработке сообщения о необходимости перерисовки указываешь InvalidateRect(hWnd ,NULL, 0); то есть требуется повторная перерисовка, и Windows через некоторое время снова вызовет оконную функцию с сообщением о том что нужна перерисовка. -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
| AntZ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.6.2007 Репутация: нет Всего: нет |
Как я понял Wiggle это библиотека под Винду. Но мне нельзя использовать что-то от винды, т.к. в универе я сдаю прогу под Линуксом. А GLUT позволяет компилировать код и в Винде и в Линуксе ничего в нем не меняя. В Win32 приложении я и так могу понизить загрузку проца, даже устранить, но мне нужен универсальный код. P.S. В glut-программе нету обработчика событий все спрятано внутри GLUT'а. Пользватель лишь указывает какую функцию в каких случаях запускать. |
|||
|
||||
| antropod |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.5.2007 Репутация: нет Всего: нет |
Могу я как вариант кросс-платформенной библиотеки предложить SDL?
Вместо glutDisplayFunc обрабатываешь сообщение SDL_VIDEOEXPOSE, вместо glutReshapeFunc - SDL_VIDEORESIZE. Вместо glutPostRedisplay
Ну и так далее. Самое главное - есть функция SDL_Delay(..)
Это сообщение отредактировал(а) antropod - 23.1.2008, 10:34 |
||||||
|
|||||||
| AntZ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.6.2007 Репутация: нет Всего: нет |
2 antropod.
Спасибо за совет!!! Пожалуй посмотрю что можно сделать с ее помощью... Единственное но... Преподы знают тока ОпенГЛ, точнее лишь Глют... Поэтому SDL буду использовать только для себя Однако, может, я его еще не знаю... Вдруг это решение... Вопрос еще открыт... |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
AntZ, мой совет, не использовать glut. Я всегда его обхожу. Стандартная Xlib библиотека и прикручивай к ней OpenGL.
Не вижу необходимости в использовании glut. Поставь на машину vmware и разверни на ней линукс, там и кодь. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |