gwt canvas context.drawImage очень медленный
Я использую холст GWT, чтобы нарисовать 50 одинаковых 16x16 изображений в полноэкранном режиме (в Draw()) с requestAnimationFrame
, основной цикл ниже:
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
public void execute(double timestamp) {
mainLoop(deltaTimeInMs);
AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
}
}, canvasElem);
void mainLoop(double deltaTime) {
calcFPS(deltaTime);
clearContext();
update(deltaTime);
draw();
}
Я храню изображения, используя ClientBundle
как DataResources
, Они преобразуются в изображения и в ImageElement
чтобы иметь возможность вызывать context.draw.
Частота кадров перед отображением 50 изображений составляет около 60 кадров в секунду. Когда они отображаются, FPS составляет около 20FPS. (как в Chrome, так и в Mozilla) в режиме DEV.
Я думаю, что загрузка изображения может быть проблемой.
1 ответ
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
public void execute(double timestamp) {
mainLoop(deltaTimeInMs);
AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
}
}, canvasElem);
void mainLoop(double deltaTime) {
calcFPS(deltaTime);
clearContext();
update(deltaTime);