Конфликт версий GLSL

Есть шейдер в котором используется встроенная переменная gl_PointCoord. На десктопе компилятор говорит, что для того чтобы использовать эту переменную, необходимо указать версию шейдера 120+. Хорошо, указываю: #version 120 Но на андроиде (OpenGL ES 2.0) компилятор говорит, что не знает 120 версию языка. При этом поддержка gl_PointCoord в ES 2.0 и так есть. По идее для десктопа я должен указывать версию языка, а для андроид нет. Но как это сделать?

#ifdef GL_ES
precision highp float;
#else
#version 120
#endif

Такой вариант отказывается компилироваться по причине error C0204: version directive must be first statement

Вот такая дилемма. Шейдер работает либо не десктопе, либо на андроид, в зависимости от того, укажу я версию или нет.


Ответы (0 шт):