Отладочная или подробная информация OpenGL для консоли - PullRequest
5 голосов
/ 23 июля 2011

Существует ли какой-либо режим отладки, в котором можно запустить OpenGL, когда он выводит информацию на консоль?У меня есть приложение, которое отлично работает на многих машинах, но оно с треском проваливается на одной машине, которая действительно имеет значение.У меня нет прямого доступа к этой машине, поэтому я пытаюсь выяснить, как она выходит из строя.В настоящее время я не вижу вывода в консоли.Обратите внимание, что изначально это было приложение Windows без консоли, и я переключил его на консоль через свойства проекта.Также, если это имеет значение, некоторые объекты не отображаются, а другие застряли и не анимируются - что не имеет для меня никакого смысла.

1 Ответ

7 голосов
/ 23 июля 2011

Нет, не совсем.Вы должны написать хук для OpenGL и записать все вызовы, которые он делает (что и делают инструменты, подобные gDEBugger), если вы действительно хотите получить подробный вывод, но это требует немало работы (вы можете использовать что-то вроде GLIntercept для этого.) Из личного опыта: возможно, проще всего будет получить доступ к рассматриваемому компьютеру и запустить там gDEBugger ... или получить эквивалентный компьютер, чтобы вы могли воспроизвести ошибку с подключенным графическим отладчиком.

В качестве альтернативы, вы можете попробовать использовать расширение ARB_debug_output, которое - в теории - должно дать вам еще немного вывода.На практике все, что вы получаете - это вызов glGetError после каждого вызова API OpenGL, что может быть достаточно для вашего случая использования (т.е. вы просто делаете что-то, что нарушает состояние GL). Чтобы использовать выходное расширение отладки, вынеобходимо изменить приложение для создания контекста отладки.

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