Как лучше всего найти версию GLSL, которую поддерживает OpenGL, таким образом, чтобы ее можно было надежно использовать программно?Поиск поддерживаемой версии GLSL
Это лучший способ получить строку GL_SHADING_LANGUAGE_VERSION
и попытаться ее разобрать? Можно ли полагаться на то, чтобы его возвращали в четко определенном формате? Мой драйвер Intel возвращает 1.20
, что достаточно просто для синтаксического анализа, но моя карточка nVidia возвращает 4.20 NVIDIA via Cg compiler
. Можно ли быть уверенным в том, что он соответствует регулярному выражению (\d+)\.(\d+)(.*)?
? This answer, как представляется, указывает обратное, возвращается OpenGL ES GLSL ES 1.0
.
Правильно ли это, и/или есть какой-то другой способ? В частности, я хочу проверить, что поддерживается как минимум GLSL 1.20.
Что касается соответствия между версиями OpenGL и версии GLSL, правда ли это не только то, что определенная OpenGL версия поддерживает соответствующую версию GLSL, но и то, что определенная Версия GLSL * * поддерживается только соответствующей версией OpenGL, а не предыдущей версией (как расширение)? – Dolda2000
А что касается формата строки 'GL_SHADING_LANGUAGE_VERSION', значит ли это, что ответ, который я связал в вопросе, либо неточно передается, либо что Apple является несоответствующим; или GLES отличается? – Dolda2000
@ Dolda2000: С момента создания ядра OpenGL-3.3 все разработки, касающиеся основных элементов (например, GLSL), приведут к новой версии OpenGL. Больше не будет расширений GLSL (за исключением, конечно, специфических для поставщика расширений). OpenGL-ES - это другой зверь с разными правилами, чем OpenGL. – datenwolf