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