Android drawBitmapMe sh метод очень медленный - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь деформировать растровое изображение в соответствии с формой, мне удается добиться этого, используя метод drawBitmapMe sh и просто меняя массив с помощью verts . Все работает, как и ожидалось, и единственная проблема, с которой я сталкиваюсь, это низкая производительность на реальном устройстве android, но на моем эмуляторе android он работает плавно.

enter image description here

Я попытался уменьшить размер растрового изображения до 128x128 пикселей, но все же при рисовании нескольких растровых изображений с помощью метода drawBitmapMe sh у меня наблюдается отставание. Я использую TextureView , поскольку он поддерживает аппаратное ускорение, я уменьшил допустимую fps для потока рисования до 30 кадров в секунду. Как только я удаляю методы drawBitmapMe sh, приложение работает плавно на любом устройстве android, поэтому проблема, очевидно, заключается в методе, который я установил meshWidth и meshHeight на 4, поэтому всего (4 + 1) * (4 + 1) = 25 точек деформации, поэтому я не использую большое количество точек, которые снижают производительность.

Телефоны, на которых я тестировал:
1 Huawei Y6 II
2. Huawei P30 Lite
3. Lenovo k9

Не лучшие телефоны с выдающимися характеристиками, но два телефона имеют 4 ГБ ОЗУ.

Мой вопрос: есть ли альтернатива drawBitmapMe sh, с лучшей производительностью при использовании TexturView или чего-то с OpenGL . Я знаю еще один метод setPolyToPoly , для матрицы преобразования, но он допускает максимум 4 точки.

...