Попробуйте нормальное назначение. Как это:
void main()
{
vec4 myOutputColor = gl_Color;
gl_FragColor = myOutputColor;
}
Edit:
Второй ответ на самом деле так же корректен, но нет необходимости использовать конструктор vec4 (), поскольку оба они одного типа. Если бы у вас был, скажем, кортеж (r, g, b, w), вы могли бы написать:
vec4 myOutputColor = vec4(r, g, b, w);
или
// assuming myRgbColor is a vec3
vec4 myOutputColor = vec4(myRgbColor, w);
и т.д.