GLSL (до #version 120) не допускает неявных преобразований между целым числом и плавающей запятой. 1
- это целое число, а gl_Color.x
- это число с плавающей точкой, поэтому вы получаете сообщение об ошибке. Вам нужно
float x = 1.0 - gl_Color.x;
вместо