Должен ли я использовать методы / константы EXT в OpenGL <2.0 - PullRequest
1 голос
/ 25 августа 2011

Я пишу 3D-игру для ПК с довольно низкими минимальными системными требованиями (все, что лучше, чем Pentium II 400 МГц и GeForce3, должно быть в порядке). В документации я прочитал, что та или иная функция начиналась как EXT и в конечном итоге была включена в ядро ​​OpenGL в версии 1.3 или 1.4.

В заголовках dglOpenGL есть методы glBindFramebuffer и glBindFramebufferEXT с константами GL_FRAMEBUFFER и GL_FRAMEBUFFER_EXT. У меня вопрос - какую версию мне использовать EXT или noEXT?

Возможно ли, что некоторые встроенные графические процессоры Intel, драйверы которых соответствуют только версии 1.3, примут glMethodExt и будут зависать при том же glMethod (без EXT в конце)?

1 Ответ

1 голос
/ 25 августа 2011

Вы должны использовать то, что доступно в этой реализации. Основная функция будет обозначена номером версии. Если вы ожидаете поддержки ядра FBO, вам потребуется версия 3.0 или выше.

Поддержка расширений обозначается строкой расширения. Вы должны проверить наличие доступных расширений при запуске и не должны использовать какие-либо расширения, которых там нет.

Теперь есть несколько расширений ARB, которые являются «базовыми расширениями». Это означает, что #defines и функции не имеют суффикса ARB. Таким образом, объект ARB_framebuffer является расширением, но он определяет glBindFramebuffer без суффикса. Это означает, что вы можете проверить версию 3.0 или расширение, и в любом случае вы используете те же функции и # определения.

Расширения ядра почти всегда означают то же самое, что и эквивалент ядра. Неосновные расширения могут иметь изменения. Например, ARB_geometry_shader4 не является расширением ядра, а функциональность шейдера геометрии ядра из 3.2 сильно отличается с точки зрения спецификации и API.

Как правило, вы должны иметь какую-то минимальную версию OpenGL, которую вы принимаете, а затем запускать разные пути кода в зависимости от наличия более высоких версий и / или расширений GL.

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