GLSL имеет полный препроцессор C-стиля. Единственное, что не работает, - #include. Одна из замечательных особенностей заключается в том, что вы можете использовать #ifdef для комментирования функций и, таким образом, создать один шейдер, который может быть разрежен, если некоторые функции не используются.
Мой вопрос:
Есть ли способ определить макрос из кода C?
Кажется, нет никакого способа сделать это с интерфейсом openGL. Быстрый взлом - это добавить несколько строк С#define FOO до загрузки файла формы. Но это похоже на обратную сторону.