Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.05.2013, 10:18   #1
Артём Волжанкин
Форумчанин
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Адрес: Владимир
Сообщений: 99
Репутация: 10
По умолчанию (OpenGL(glut), C++) Функция Времени

В OpenGL в Glut есть функция таймера. Пытаюсь создать класс времени TTimer и сделать функцию Timer (int) основной, но glutTimerFunc(33, TTimer::Timers, 0); не вызывается.

ЧТО ДЕЛАТЬ???

Код:

void Timer (int)
{

	Draw ();
	glutTimerFunc(33, Timer, 0); // 33 обновления в секунду
	glEnd();
}

void TTimer::Timers ()
{

	glutTimerFunc(33, TTimer::Timers, 0);
}

__________________
Человек
Артём Волжанкин вне форума   Ответить с цитированием
Старый 02.05.2013, 10:21   #2
Артём Волжанкин
Форумчанин
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Адрес: Владимир
Сообщений: 99
Репутация: 10
По умолчанию

Код:


class TTimer{
	public:
	int theCounter;
	static void Timers (int);
//	TTimer();
};

void TTimer::Timers (int)
{

	glutTimerFunc(33, &TTimer::Timers, 0);
}

не работает
__________________
Человек

Последний раз редактировалось Артём Волжанкин; 02.05.2013 в 11:20.
Артём Волжанкин вне форума   Ответить с цитированием
Старый 02.05.2013, 12:15   #3
GreenWizard
мальчик-помогай =)
Участник клуба
 
Регистрация: 16.09.2010
Сообщений: 521
Репутация: 172
По умолчанию

как-то так должно быть (с С++ не совсем лажу, может где-то ошибся)
Код:

class TTimer{
	public:
	int theCounter;
	static void Timers (int);
        void OnTimerTick();
//	TTimer();
};

void OnTimer(int Obj)
{
  (TTimer)Obj.OnTimerTick();
}

void TTimer::Timers (int)
{
	glutTimerFunc(33, &OnTimer, (int)this);
}

OnTimer - обычная ф-ия, которая получает ссылку на нужный объект и дёргает его за OnTimerTick(), а там уже вся логика отклика

Только TTimer::Timers тут не в тему, особенно статическая.... думаю, регистрацию нужно бы перенести в др. ф-ию
Кроме того, невозможно отменить созданный калбэк, поэтому я бы создавал массив объектов-таймеров, давал им уникальные id (тупо счётчик инкрементирующий), а в OnTimer() проводил поиск по id
__________________
Группа ВК - https://vk.com/gw_inc
Почта - forwork.anton@gmail.com

Последний раз редактировалось GreenWizard; 02.05.2013 в 12:22.
GreenWizard вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GLUT [ OpenGl ] Coco_Jamboo Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 02.11.2017 23:02
OpenGL библиотека glut Inv1s Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 11.02.2012 06:12
OpenGL (glut) GL_LIGHT Inv1s Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 28.01.2012 22:23
Свет в OpenGl (glut) Inv1s Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 25.01.2012 08:44
Функция времени i777 Microsoft Office Excel 4 09.11.2010 19:41


00:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru