gwt canvas context.drawImage非常慢

时间:2013-07-23 07:39:18

标签: gwt canvas image-loading requestanimationframe

我正在使用GWT画布用requestAnimationFrame全屏绘制50个相同的16x16图像(在draw()中),主循环如下:

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张图像之前的FPS约为60FPS。当它们被渲染时,FPS大约是20FPS。 (在chrome和mozilla中)在DEV模式下。

我认为图片加载可能有问题。

1 个答案:

答案 0 :(得分:-3)

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);