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

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

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

Имеет ли это смысл делать? В поисках этого я нахожу несколько человек, которые рекомендуют звонитьglGetError после каждого не-розыгрыша gl-вызова, который в основном является тем же, что я описываю.

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

Ответы на вопрос(2)

Ваш ответ на вопрос