PMG

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

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 06 окт 2005 15:59 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Не помню, где на сайте есть glut? Попробуй взять здесь:
http://www.opengl.org/resources/libraries/glut.html

А ты указал линковщику, что надо подключить glut32.lib?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 окт 2005 19:27 
Не в сети
Постоянный
Аватара пользователя

Зарегистрирован: 02 сен 2005 22:34
Сообщения: 98
Откуда: Питер
а куда имено ты пихаеш либ и х файлы???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 янв 2006 11:33 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Вот еще один вопросик по установке Glut в VC++.
А вопрос такой:
После того как установил NVIDIA OpenGL SDK скопировал:
glut32.dll -> ...Windows\system32;
glut32.lib -> ...vc7\PlatformSDK\lib;
glut.h -> ...vc7\PlatformSDK\include\gl;
Начинаю писать прогу, а подсказок на функции (Ctrl+j или Ctrl+Space) не появляется, их там нет. В этом списке можно найти только константы из glut.h. Возможно вопрос ламерский, но без этой хорошей фишки VC++ мне не обойтись.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 янв 2006 12:40 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Я редко пользуюсь glut, по этому ничего не могу сказать вразумительного. Если glut.h находиться и компилируется все нормально, то тогда наверное проблема в определениях функций в glut.h. Может они заданы макросами?!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 янв 2006 13:34 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
MagicWolf, Вот вырезанный код из Glut.h для обьявления функций:

Код:
GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
GLUTAPI void APIENTRY glutInitDisplayString(const char *string);
#endif
GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
GLUTAPI void APIENTRY glutMainLoop(void);

/* GLUT window sub-API. */
GLUTAPI int APIENTRY glutCreateWindow(const char *title);


Дело в том что точно такая же проблема с OpenAL SDK. Все работает, а подсказок нет. Очень тяжело программировать и особенно не удобно изучать библиотеку методом тыка. Постоянно списывать с книжек - это геморой.


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

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Нет там определения через #define:
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK

Так что все проблемы из-за этого.
Попробуй включить glut.h в свой проект в Header files.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 янв 2006 15:56 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
MagicWolf,
Цитата:
Нет там определения через #define:
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK

Да такое определение есть. Я попробовал включить файл glut.h в проект, но это не многим помогло. Появились только те функции, которые также определены.
Например: #define glutInit glutInit_ATEXIT_HACK
А остальных нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 янв 2006 13:27 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Мне тут сказали чтоб я сам прописал заголовки, но как это сделать я не знаю. Может кто поможет. Все что я не пробовал не работает, кроме переполнения функций:
Код:
void APIENTRY glutInit(int *argcp, char **argv){}
int APIENTRY glutCreateWindow(const char *title){return 1;}
void APIENTRY glutInitDisplayMode(unsigned int mode){}

Это работает, но не всегда. Подсказки конечно появляются, только иногда VC++ выдает странные ошибки (причем после компиляции).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 янв 2006 17:10 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Естественно. int APIENTRY glutCreateWindow(const char *title){return 1;} - ничего не делает и потом #define glutCreateWindow glutCreateWindow_ATEXIT_HACK, т.е. реально должна вызываться функция glutCreateWindow_ATEXIT_HACK. Если бы сделал так:
int APIENTRY glutCreateWindow(const char *title){ return glutCreateWindow_ATEXIT_HACK(title);}

То скорее всего это прокатило бы.

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


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

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
А что делать с функциями которые вызываются с таким же именем.
GLUTAPI int APIENTRY glutGetWindow(void);
Получается так:
int APIENTRY glutGetWindow(void){glutGetWindow();}
Но тогда получется рекурсивный вызов функции.
Можно конечно добавить букву например "A"
int APIENTRY glutGetWindowA(void)

Если получится переписать все функции, это не как не не повлеяет на производительность программы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 янв 2006 11:35 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
На производительность повлияет, но не значительно.
int APIENTRY glutGetWindow(void){glutGetWindow();} - посмотри как задана функция glutGetWindow, скорее всего через glutGetWindow_ATEXIT_HACK. Иначе конечно будет не понятно что.

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


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

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Наверно это единственный способ. Огромное спасибо что помог.


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

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
MagicWolf, Сейчас попробовал как первый раз предумал, но немного по другому. Этот способ без потерь в производительности:
Код:
//#define GLUT_OK_A 1
#if GLUT_OK_A

/* GLUT initialization sub-API. */
extern void APIENTRY glutInit(int *argcp, char **argv){}
extern void APIENTRY glutInitDisplayMode(unsigned int mode){}
extern void APIENTRY glutInitDisplayString(const char *string){}
#endif

Компилятор не видит, так как GLUT_OK_A не объявлена, но VC++ показывает их в справке.
Ошибок связанных с этим не замечено.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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