PMG

Форумы по созданию игр
Текущее время: 19 апр 2024 20:23

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с GLFW
СообщениеДобавлено: 30 дек 2007 02:32 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Никак немогу заставить этот фреймворк заработать под Visual C++. Под GCC на Code::Blocs пробовал все работает.
Вот полный текст программы (сделан как тестовый):
Код:
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glfwdll.lib")
#include <stdio.h>
//#include <windows.h>
#define GLFW_DLL
#include <gl/glfw.h>

int main()
{
   glfwInit();
   glfwOpenWindow(800,600,8,8,8,8,24,0,GLFW_WINDOW);
   glfwSetWindowTitle("Window");
   glfwSetWindowPos(100, 100);
   glfwSleep(3000);
   glfwTerminate();
   printf("111");
   return 0;
}

Вроде бы ничего сложного, но при запуске выдает исключение 0xC0150002, в сообщении пишет:
Цитата:
Ошибка при инициализации приложения ...

Помогите пожалуйста, что можно с этим сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 дек 2007 14:13 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Может библиотеки glfw не от Visual?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 дек 2007 14:47 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Точно для Visual. Там в архиве 5 папок:

>docs
>include
lib-cygwin
lib-mingw
>lib-msvc

Использую файлы из отмеченых выше.
В папке lib-msvc: дллка и 2 либовских фала: glfwdll.lib, glfw.lib
Пробовал и тот и другой, пробовал также убирать константу GLFW_DLL. Становиться еще хуже - при компиляции выдает несоответствие версий c2.dll и link.exe.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 дек 2007 17:29 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Нашел причину. Оказывается glfw.lib был бажным.
Скачал просто библиотеку в соурсах, скомпилил и все стало нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 11 мар 2008 01:22 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Возник еще вопрос по GLFW... Как можно приостановить работу цикла, так чтобы программа не грузила процессор на 90%? А этот цикл неизбежная вещь предложенная в GLFW заместо glutMainLoop() в GLUT.
Я даже пытался его замедлить вставляя в цикл glfwSleep(0.005)... Довольно глупо, так как нормально работало только на моем компе, на другом же пробовал - фпс падало до 2, а проц так и грузился... Идея сделать, чтобы работало как в ГЛУТе тоесть вызовом специальной функции, когда нужно для перерисовки окна, а не каждую итерацию цикла перерисовывать все... Цикл в любом случаее не избежен, но надо остановить выполнение потока до момента вызова функции перерисовки...

Буду благодарен за любые идеи)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 11 мар 2008 10:15 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Надо вызывать MsgWaitForMultipleObjects(0, NULL, false, (DWORD)1, QS_ALLINPUT), когда у у твоей проги есть лишнее время. Т.е. задаешь сколько надо FPS, из этого рассчитываешь сколько времени приходится на каждый такт, выполняешь отрисовку, и если есть возможность вызваешь в оставшиеся время MsgWaitForMultipleObjects.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 11 мар 2008 20:05 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Да вот в том то и проблема, что я не могу использовать вин апишные функции... Нужно полностью кроссплатформенное приложение, поэтому приходиться пользоваться средствами GLFW :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 12 мар 2008 09:31 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Раздели тогда код:

#ifdef _WIN32
void Sleep....
#endif

#ifdef LINUX
#endif

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 12 мар 2008 12:28 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Спасибо огромное все работает отлично... Только вот, есть ли гарантии того, что в линуксе будет подобная функция? В принцепи в GLFW есть похожая вещь glfwWaitEvents(), но она к сожалению всегда ждет ввода с мышки или клавиатуры, поэтому если ничего не трогать, то на экране картика не поменяется. :)

P.S. Если будет у кого информация, какая есть функция аналог MsgWaitForMultipleObjects для Линукса, пожалуйста напишите...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 13 мар 2008 09:49 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вообще-то может sleep есть, или delay.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с GLFW
СообщениеДобавлено: 13 мар 2008 14:03 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Но слипом я только ФПС сброшу, а нужно чтобы работало как винапишная: ничего не делаю фпс установившаяся, а как что-нибудь делаю (константа QS_ALLINPUT) то и ФПС от этого увеличивается... поэтому и получается, что программа вообще к процессору не требовательна, а работает быстро... А слипом у меня в программе из-за маленького ФПС будет тормозить все (особенно это все сказывается на GUI). Хотя можно в Линуксе вообще задержку убрать, а если что подвернется то поставлю))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB