Я работаю над заголовком-презентацией (субтитрами), где возможна прокрутка заголовка.
Например,
Some caption, line - 1
Some caption, line - 2
Some caption, line - 3
После прокрутки это будет выглядеть: (Обратите внимание, строка 1 удаляется и добавляется строка 4.)
Some caption, line - 2
Some caption, line - 3
Some caption, line - 4
Я реализовал прокрутку путем рендеринга непосредственно в кадровый буфер по умолчанию. Тем не менее, я отображаю все шрифты на новой позиции каждый раз, когда поступает запрос прокрутки. Но я считаю, что это накладные расходы. Теперь я перешел в FBO и могу отображать не прокручивающиеся заголовки.
Для обработки прокрутки в FBO : (я думал об этом для простоты обработки в заголовке строки)
- Я планирую иметь одну текстуру на линию. Всякий раз, когда запрашивается прокрутка, я нахожу новую позицию текстур (на строку) на дисплее и рендеринг.
- Текстура, которая пересекает область заголовка (например, строка № 1), будет отброшена / отброшена .
- В последней текстуре (например, строка № 4) я буду обновлять новые тексты до тех пор, пока не будет запрошена новая строка.
У меня также может быть одна текстура (для целых данных) в FBO и дополнительно для построчных текстур. или просто иметь текстуру для каждой строки и рендерить на фреймбуфер дисплея. Хотя реализация того, что удобно, я бы go за это.
Это хорошая стратегия? Пожалуйста, предложите любые лучшие решения, если это возможно.