Zeux
Ну, на самом деле, _экономии за счет выделения общий частей_ это не даст. Так как в GLSL изначально была линковка, требовалось только _обьявить_ нужную функцию, и она бы слинковалась с _определенной_ функцией в другом shader object в том же program object.
#include же тупо на текстовом уровне будет, т.е. теперь аналогия с .c/.h полная
Sark7
Структура тоже бы слинковалась? :)
Впрочем, все фигня, все равно получилось неюзабельно.
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showfl… 87#Post229387
Все равно свой препроцессор писать.
Блин, почему они не могут хоть что-нибудь сделать нормально?..
Zeux
Не так уж неюзабельно. Грузим все наши .glsl.h в буфера, остальное сделает GL.
Хотя, это ведь такая мелочь по сравнению с остальным GL3 :)
Sark7
> Не так уж неюзабельно. Грузим все наши .glsl.h в буфера, остальное сделает GL.
Ты, эээ, офигел? :)
При компиляции каждого шейдера грузить все файлы из каталога shaders? :)
> Хотя, это ведь такая мелочь по сравнению с остальным GL3 :)
Там похоже еще гейства порядочно, судя по обрывкам информации с того топика.
Впрочем, подождем уж, пока выйдет.
Zeux
>При компиляции каждого шейдера грузить все файлы из каталога shaders? :)
Ну. не каждого... Можно один раз загрузить все, потом просто аттачить. Не верх совершенства конечно, но ведь никто и пользоваться не заставляет :)
Лучше-бы тогда callback дали.
Sark7
> Ну. не каждого... Можно один раз загрузить все, потом просто аттачить. Не верх совершенства конечно, но ведь никто и пользоваться не заставляет :)
Угу, про не заставляет это точно! Ты уже купил там Dx10 железку? ;-)
ЗлобныйШкольнег
Говорят, коллбек типа не про client-server. Отлично же? :)
Zeux
>При компиляции каждого шейдера грузить все файлы из каталога shaders? :)
Ты наверное неправильно понял. Для каждого #include "X" ты создаём отдельный TextBuffer, даёшь ему имя "X". Всё это можно делать перед загрузкой основных шейдеров, или менеджер писать, который будет динамически подгружать нужные включения. Потом для каждого шейдера нужно просто приаттачить эти TextBuffer.
Ещё glFX планируется для OpenGL 3, но наверное позже.
Джо
Но парзить (чтобы вытащить все инклюды) все равно придется руками.
ЗлобныйШкольнег
Не обязательно, например API может выдавать список именованных буферов, которые требуется подключить к шейдеру/программе.
Типа gl3GetProgramIncludes( ... );
Джо
Ну тогда это можно будет назвать вменяемым.
Не, если API будет отдавать список includes - то можно жить.
Проблема в том, что скажем рекурсивные инклуды так, гм, сложно хендлить.
Теме Ап!
Что нового слышно про ОГЛ3?
прошло 3 месяца... с передовой вестей нет....
Он накрылся !!! вот!
Тема в архиве.