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);
Другие вопросы по тегам