(Определить макрос для) облегчения отладки команд OpenGL?

Иногда требуется долгое время вставки условных отпечатков и проверок в glGetError()для сужения с использованием формы двоичного поиска, где первый вызов функции заключается в том, что OpenGL впервые сообщает об ошибке.

Я думаю, было бы здорово, если бы был способ создать макрос, который я мог бы обернуть вокруг всех вызовов GL, которые могут завершиться ошибкой, которые будут вызывать glGetErrorсразу после этого. При компиляции для специальной цели я могу проверить glGetErrorс очень высокой степенью детализации, в то время как при компиляции для типичного выпуска или отладки это не будет включено (я проверял бы это только один раз за кадр).

Есть ли смысл это делать? Немного поискав это, я обнаружил, что несколько человек рекомендуют вызывать glGetErrorпосле каждого вызова gl без отрисовки, что в основном то же самое, что я описываю.

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

6
задан Steven Lu 29 June 2012 в 05:48
поделиться