Как в gles 2.0 сместить прошлый кадр влево на некоторую величину?

Добрый день. Имеется задача, рисовать на андроиде в рантайме график изменений некоторой величины, поступающей по блютус. График не совсем тривиальный, рисование на обычном канвасе не подойдет, а нужен именно gles. Связанно это с тем, что каждое значение интересуемой величины не просто обычное значение, а набор разных величин + разные интересные градиенты.

Идея такая - при поступлении нового значения в провом крае экрана с помощью gles рисуется столбец, шириной 1/200 ширины экрана. При этом кадр, отрисованный в прошлый раз, нужно сместить влево на ширину столбца.

Я реализовал это следующим образом. Стобцы графика рендерятся не на GlSurfaceView, а на битмап. Перед этим, с помощью канваса, битмап рисуется поверх себя со смещением на ширину столбца.

Хотелось бы избавиться от магии с канвасами и битмапами, и сделать на чистом gles.

Если совсем просто, то задача отрисовать произвольный кусок прошлого кадра поверх него самого, в произвольном месте экрана.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Я думаю, надо рендерить кадр в текстуру, затем отрисовывать её. Понадобятся две текстуры размером с экран. Это можно сделать на чистом gl. Тут у меня есть пример на С++, говнокод, мне за него стыдно, но идею посмотреть можно, по-моему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы