OpenGL прекратил рендеринг - PullRequest
0 голосов
/ 03 февраля 2012

Перво-наперво: платформа - 64-разрядная версия Windows 7, язык VC ++, IDE - VS2010.Видеокарта nVidia GTX 460, драйверы версии 290.53.

Итак, вот ситуация.В настоящее время я работаю в OpenGL, используя Glew 1.7 и Glut.Я все настроил несколько дней назад и сумел успешно написать код и выполнить задание для своих занятий.Задание выполнялось красиво, показывалось и делало все, что должно было.Это было прекрасно.Поэтому я отправил свое задание и больше не трогал его до вечера.

Теперь, сегодня вечером, я снова попытался запустить код, и вместо моих красиво мозаичных многоугольников я получаю простое белое окно.Насколько я знаю, ничего, что связано с OpenGL, не изменилось в моей системе с тех пор, как я последний раз запускал код.Я вообще не менял код, я не менял графические драйверы, я не менял ничего, что мне известно.Казалось, я не могу найти ничего, связанного с такой проблемой, и я в растерянности, что может быть причиной проблемы.Я даже пытался перекомпилировать Glew, но это ничего не изменило.Я знаю, что это не проблема кода, так как он работал нормально несколько дней назад, и ничего не изменилось, так что это должна быть проблема конфигурации.

Может ли кто-нибудь указать мне правильное направление?

Изменить
Еще одна вещь, чтобы добавить к этому.Когда я первоначально делал проект, о котором идет речь, попытка запустить его вызвала сообщение об ошибке «невозможно найти glew32d.dll», пока я не поместил glew32d.dll и glut32.dll в исходную папку моего проекта.

Теперь я не помню, чтобы удалял их из папки моего проекта, но когда я попытался отладить его вчера вечером, я заметил, что они оба исчезли из папки моего проекта.Тем не менее, я не получаю никаких ошибок .dll пропавших без вести.Замена их в папке не решила проблему, но мне интересно, связано ли их исчезновение с этим.Они также находятся в каталоге VC / bin / пути установки VS2010, и удаление их из обоих расположений приводит к появлению сообщения об ошибке, но их наличие в любом месте теперь достаточно для сборки и запуска, когда ранее они мне нужны были в обоих.

1 Ответ

0 голосов
/ 04 февраля 2012

Одна из возможностей - масштабирование на бесконечное значение (1. # INF) или что-то в этом роде.Я столкнулся с очень похожей ситуацией, и это оказалось проблемой.Однако, если вы не изменили код, вы можете исключить это.Вы пытались добавить какой-нибудь код для отображения на экране простого четырехугольника или треугольника?

Что касается DLL-файлов, я рекомендую поместить их в ваши папки C: / Windows / SysWOW64 и C: / Windows / System32,SysWOW64 специально хранит все 32-битные .dll, но их можно безопасно разместить в обоих местах.Visual Studio будет искать в вашей папке проекта и этих системных папках необходимые динамические библиотеки.Преимущество размещения их в системных папках заключается в том, что они доступны для всех приложений OpenGL, которые вы можете написать.

И последнее, что может помочь в обнаружении проблемы, - это использование отчетов об ошибках OpenGL.Вы можете использовать такую ​​функцию, как:

void HandleGLError()
{
    GLenum error;
    int i = 0;
    while ((error = glGetError()) != GL_NO_ERROR) {
        printf("GL ERROR(%d) %s\n",i,gluErrorString(error));
        i++;
    }
}

Попробуйте вызывать ее в начале и в конце вашей функции рендеринга, а также в любых других местах, которые, по вашему мнению, могут вызывать проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...