Почему Android Canvas медленнее OpenGL ES?

251
19 февраля 2017, 09:08

Почему OpenGL дает большую производительность при создании графических приложений? Как работает Canvas и чем его способ отрисовки графики отличается от OpenGL-го? Т.е. за счет чего меньшая производительность?

Answer 1

Так всегда было, что в виндовс что в андроид. OpenGL общается напрямую с видеодрайвером и использует буфер вывода. Т.е. ты в начале рисуешь картинку по кусочкам, но на экране ничего не изменяется, это все происходит в памяти видеокарты(очень быстро). Потом когда твой кадр готов, ты даешь команду отобразить буфер, и в видеопамяти проходит замена буферов(swap - буфер отображаемый заменяется отрисованным)и ты сразу видишь готовую отрисованную картинку. Canvas же использует системные инструменты и на экран выводится каждый пиксел(а это затраты по времени). В основном прирост производительности это использование буферов.

READ ALSO
смена iframe по клику

смена iframe по клику

есть 7 кнопок и 1 iframe, кликая по каждой должен меняться src в iframe

298
Галерея для сайта

Галерея для сайта

Как сделать так чтобы изображения разного размера в галереи отображались с одинаковой высотой и ширинойТо есть чтобы они автоматически...

246