Привет еще раз и добро пожаловать к другому 'не было бы замечательно, если бы мы объединили две вещи, о которых я действительно ничего не понимаю' вопрос;)
Эпизод: Униформа OpenGL и шаблоны c ++
Идея: не было бы замечательно, если бы вы могли написать одну шаблонную функцию для установки униформы в шейдере OpenGL?
Проблема: Униформа в шейдерах устанавливается с использованием ряда функций glUniform *. Они отличаются:
Тип : есть несколько типов, которые может принимать униформа. Это приводит к тому, что имена различных функций в OpenGL выглядят так: glUniform1f, glUniform1i, glUniform1fv и т. Д.
Их можно легко объединить с помощью перегрузки функций. Но это приводит к огромному количеству похожих функций.
Первый вопрос: можно ли использовать шаблоны в этом месте? Насколько я понимаю шаблоны, вы должны были бы специализироваться для каждой новой функции. И, в конце концов, вы получите то же количество функций, что и при простой перегрузке.
Счетчик параметров : Число в функциях glUniform относится к числу заданных параметров. Существует от одного до 4 параметров, которые относятся к простым значениям вплоть до векторов с 4 элементами.
Второй вопрос: возможно ли реализовать динамический подсчет параметров с помощью шаблонов?
Матрицы : Чтобы усложнить задачу, существует еще один класс унифицированных функций, которые отправляют матрицы, но поскольку я на самом деле их не использую, они меня не особо интересуют.
Возможно, нет никакого реального способа упростить унифицированные методы ... но, возможно, кто-то может придумать отличное решение, используя мощные шаблоны?
С уважением,
Florian