Можно ли в коде шейдера определить, что версия OpenGL - OpenGL ES?

Есть ли способ определить в исходном коде шейдера, что шейдер компилируется для OpenGL ES? Я хочу иметь возможность определить версию с помощью директивы препроцессора #version как 100 для OpenGL ES (чтобы шейдер компилировался для OpenGL ES 2.0), но был версии 110 для OpenGL 2.1).

Лучший способ сделать это - поместить #version как отдельную строку, которая вводится на уровне приложения, или есть способ сделать это внутри шейдера?

Другая полезная, связанная с этим вещь, которую можно было бы сделать, это сказать что-то вроде #if version == 100 скомпилировать этот код, else скомпилировать этот код. Возможно ли это в GLSL?

Спасибо.

6
задан genpfault 1 December 2011 в 16:40
поделиться