| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Инкапсуляции QGLShaderProgram и QGLBuffer [Qt, GL] |
| Автор: Jeka178RUS 24.1.2013, 13:19 | ||||||
| Добрый день! Ни как не могу разобраться c логикой использования QGLShaderProgram и QGLBuffer. Ситуация класс CModel инкапсулирует QGLBuffer в котором хранит вершины. Для рисования данных используется функция
Возникает противоречие: для mShader.setAttributeBuffer( ... ) необходимо знать параметры буфера, которые логично спрятаны в CModel. glDrawArraysInstanced( .. ) должен знать размер буфера (9), и порядок расположения вершин(GL_TRIANGLE_FAN). Возникает желание спрятать все в метод CModel::draw( ... ), но в таком случае этот метод должен знать имя атрибута( или его location ) в шейдере, что опять не совсем логично. Подскажите как лучше выйти из этого положения? Я придумал такое решение:
Вызов такой:
Насколько такое решение адекватно? |