2015-11-10 5 views
0

OpenGL имеет GL_ARB_ES2_compatibility, но я не совсем уверен, как его использовать. Это только то, что он был обновлен, чтобы включить функции OpenGL ES 2.0 или можно убедиться, что вы используете только функции OpenGL ES 2.0. Например, шейдер, какой #version я использовал бы в этом случае для glsl-шейдера?OpenGL ES 2.0 на рабочем столе Windows

+1

Существует также [ANGLE] (https://en.wikipedia.org/wiki/ANGLE_%28software%29), если у вас нет 'ARB_ES2_compatibility'. Также включает реализацию EGL! – genpfault

ответ

1

Вы можете найти спецификацию на https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt

Это расширение добавляет функции, которые присутствуют в ES2, но отсутствует в GL3. Поскольку для этого расширения нет разрешения/запрета, он не должен влиять на GLSL и не ограничивает использование только функций ES2.

Вместо этого вы можете создать контекст GLES2 (но не каждый драйвер поддерживает его) и использовать, например, #ifdef GL_ES в шейдерах. Тем не менее, не было бы никаких гарантий поддержки только GLES2 и ничего более. Поскольку этот путь редко используется и, следовательно, плохо тестируется, вероятно, было бы не очень полезно это делать.

Если вам нужно быть абсолютно уверенным, что вы используете только функциональность ES2, вы, вероятно, должны сбрасывать каждый вызов функции, например. профайлер и проверить его снова gles2.h (может быть автоматизирован). Однако вы не будете тестировать шейдеры таким образом.