API-интерфейсы самоанализа программы OpenGL были разработаны не очень хорошо.Они выросли полуорганически из оригинального предложения 3DLabs GLSL.Но исходный дизайн был основан на запросе только атрибутов / единообразных расположений и единообразных ресурсов.
По мере роста GLSL добавлялось много других видов ресурсов: UBO, подпрограммы шейдеров, SSBO идругие.Кроме того, люди поняли, что запрос выходных переменных фрагментного шейдера также был полезен.
То, к чему это привело, было API Франкенштейна.Каждый раз, когда они добавляли новый ресурс для самоанализа, им приходилось добавлять еще пару точек входа API.В OpenGL 4.3 они, наконец, решили просто пересмотреть всю систему.
общая система самоанализа программы *1012* может запрашивать все, что старые запросы могли делать .И спецификация переопределяет старые запросы в терминах новой общей системы.Но теперь, когда вы добавляете новый ресурс в OpenGL, вам нужно только добавить несколько новых перечислителей к существующим общим запросам, а не целые функции API.
Пока вы используете последние версии OpenGL,Вы должны использовать более новый механизм запросов.Если только для того, чтобы ваш код выглядел более единообразно.