Какой самый быстрый способ рисовать на холсте HTML 5?

Я исследую возможность создания игры, используя только холст HTML в качестве средства отображения. Чтобы взять пример задачи, которую мне нужно выполнить, мне нужно построить игровую среду из ряда изометрических плиток. Конечно, работа в 2D означает, что они по необходимости поставляются в прямоугольных упаковках, поэтому между плитками есть большое перекрытие.

Я достаточно взрослый, чтобы естественное решение этой проблемы - вызвать BitBltMasked. Ой, подождите, нет, на холсте HTML нет чего-то столь же простого и приятного, как BitBlt.Кажется, что единственный способ сбросить данные пикселей на холст - это либо с помощью drawImage (), у которого нет полезных режимов рисования, игнорирующих альфа-канал, либо использование объектов ImageData, которые имеют данные изображения в массиве ... к которому каждый. доступ. является. границы. проверил. а также. следовательно. собака. медленный.

Хорошо, это скорее напыщенная речь, чем вопрос (вещи, которые нравятся W3C, как правило, вызывают это у меня), но что я действительно хочу знать, так это как быстро рисовать на холсте? Мне очень трудно избавиться от ощущения, что выполнение сотен вызовов drawImages () в секунду, когда каждая отрисовка учитывает альфа-канал, по своей сути греховно и, вероятно, заставит мое приложение работать как задница во многих браузерах. С другой стороны, единственный способ правильно реализовать BitBlt в значительной степени зависит от браузера, использующего технику выполнения, подобную хот-споту, чтобы заставить его работать быстро.

Есть ли способ быстро проработать каждую возможную реализацию, или мне просто нужно забыть о производительности?

13
задан Chris Davies 18 January 2012 в 21:03
поделиться