Вы забыли перевод строки после объявления out_color
в вашей строке шейдера. Таким образом, он находится на той же строке, что и void main()
(в которой у вас также есть символ новой строки, но это не может быть проблемой).
Для ясности я бы предложил вам всегда использовать одну подстроку для одной строки и всегда включать символ новой строки в конце каждой подстроки, если вы действительно хотите использовать кодировочный код в шейдере в любом случае.
И вы также должны всегда проверять, правильно ли скомпилированы ваши шейдеры и правильно ли связана программа, и запрашивать информационный журнал, если они этого не сделали. Это, очевидно, сообщило бы вам об ошибке (или, по крайней мере, подсказало бы вам).