Я хочу реализовать вертикальную прокрутку содержимого элемента HTML5 canvas. Я не хочу рендерить весь контент снова. Вместо этого я хотел бы переместить весь контент вниз / вверх и отображать только ту область, которая была прокручена.
Я экспериментировал с функциями getImageData
и putImageData
, но в моих тестах они почти такие же медленные, как перерисовка всей сцены.
// scroll 20px down
var data = ctx.getImageData(0, 0, width, height-20);
ctx.putImageData(0, 20);
Какой самый быстрый способ скопировать прямоугольные области пикселей внутри элемента canvas?