Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 18:22   #1
invector
 
Регистрация: 03.06.2011
Сообщений: 3
По умолчанию Проблема (Visual C++ 6, OpenGL, выделение объектов)

Здравствуйте. Есть следующая проблема: код, всегда без проблем работающий как в Debug, так и в Release-версиях программы при ее запуске из самого Visual C++ 6 по F5 (вне зависимости от наличия или отсутствия debug info) не работает при обычном запуске программы по Ctrl+F5 или из проводника. Ошибка должна быть как-то связана с OpenGL. Есть функция DoSelect(int in_iObjectTypes), которая проводит выделение тех или иных объектов в зависимости от переданного ей аргумента. Вот фрагмент кода из этой функции:

Код:
if ((in_iObjectTypes & SELECTION_OBJTYPE_OTHEROBJ) &&   m_bShowOtherObjects)
	{
		glPushName(SN_TYPE_OTHEROBJ);
		SetRenderPointParams(OTHEROBJ_RENDER_POINTSIZE);
		DrawAllMO();
		glPointSize(1);
		glLineWidth(1);
		glPopName();	
	}
Здесь функция DrawAllMO() рисует все объекты, которые, собственно, и подлежат выделению.

Затем сразу вызывается функция EndSelect():
Код:
void C3DDataRenderer::EndSelect()
{
	m_bRenderForSelect = false;
	m_nNumHitRecords = glRenderMode(GL_RENDER);
}
Как видите, все очень просто, m_nNumHitRecords возвращает нам число "хитов", а дальше уже идет работа с соответствующими структурами. Это исключительно функционал OpenGL, код программы тут вроде бы никак не замешан (конкретно этот код не мой, я лишь пытаюсь исправить ошибку).

При запуске в режиме отладки (вне зависимости от типа версии и наличия отладочной информации) m_nNumHitRecords благополучно возвращает число больше 0, при обычном запуске Debug-версии все также работает, а вот при обычном запуске Release-версии уже перестает, m_nNumHitRecords возвращает 0, т.е. OpenGL "не находит" объекты.

Хочу узнать, в каком направлении рыть, чтобы решить эту проблему. Ничего конкретного про разницу между запуском по F5 и по Ctrl+F5 (т.е. как вообще меняются параметры запуска и т.п.) я не нашел в Интернете.
invector вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение группы объектов на C# EagleNN C# (си шарп) 2 08.10.2010 23:35
Проблема при использовании прозрачности объектов в OpenGL Gwaeron Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 25.04.2010 14:33
Проблема при использовании прозрачности объектов в OpenGL Gwaeron Помощь студентам 0 22.04.2010 11:18
OpenGL. Проблема со скоростью передвижения объектов Blade Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 26.10.2009 13:40
Выделение объектов в Canvas... Roof Общие вопросы Delphi 4 10.08.2008 13:31