До GLSL 1.1, lowp
не упоминается в спецификации GLSL.В GLSL 1.2 (который идет с OpenGL 2.1) lowp
зарезервировано для реализации.В GLSL 1.3 (который идет с OpenGL lowp
начал разрешаться (но бессмысленно).
Таким образом, кажется, что все, что вы используете на своем рабочем столе, распознает только более старую версию GLSL.очевидное решение - просто удалить его, или для рабочего стола, добавить макрос вроде:
#ifdef DESKTOP
#define lowp
#endif
с заменой DESKTOP
на некоторый идентификатор, который определен в любой среде, которую вы используете на своем рабочем столе, но ненезависимо от того, какую среду вы используете для iPhone.
Редактировать: Получение этого в исходном коде может быть нетривиальным само по себе. Один из способов таков:
char const *shader =
#ifdef DESKTOP
"#define lowp\n"
#endif
"varying lowp vec4 colorVarying;\n"
/* ... */
;
Таким образом,"lowp" в шейдере определяется ничем, если и только если в среде хоста был установлен DESKTOP.