Итак, я пишу игровой движок для Linux, используя OpenGL, SDL2 и Lua (до сих пор). Я планирую включить OpenAL, возможно, для аудио, но это не имеет значения.
Мне было трудно понять, как лучше всего это настроить. Может быть, я не понимаю идею, стоящую за этим. В моем проекте у меня есть объект Shader, а также объект ShaderVariable (который в основном является настраиваемым классом вариантов) и объект ShaderProgram. Шейдерная программа содержит до 6 шейдеров (для каждой части пайплайна). Мой объект Shader загружает шейдер в gluint и имеет логические переменные isCompiled и isLinked. Среди них также есть вектор объектов ShaderVariable. Когда код GLSL загружается, std::vector *m_attributes замещается новым объектом shaperVariable (состоящим из имени и типа). Как настроить рендеринг, если спецификации еще не созданных шейдеров могут различаться? (те, которые конечный пользователь будет писать)
У меня есть еще один вопрос: состоят ли они из переменных в спецификации вершин?