gwt canvas context.drawImage速度非常慢
我正在使用GWT画布使用gwt canvas context.drawImage速度非常慢,gwt,canvas,image-loading,requestanimationframe,Gwt,Canvas,Image Loading,Requestanimationframe,我正在使用GWT画布使用requestAnimationFrame全屏(在draw()中)绘制50幅相同的16x16图像,主循环如下: AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() { public void execute(double timestamp) { mainLoop(deltaTimeInMs);
requestAnimationFrame
全屏(在draw()中)绘制50幅相同的16x16图像,主循环如下:
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中)处于开发模式
我认为图像加载可能有问题。您是否愿意为您的解决方案添加一些解释?为什么它比原来的问题快?速度快吗?这是一个巨魔的回答。。。他刚刚删除了draw()调用。请向下投票。它运行如此缓慢的原因是开发模式。在GWT2.5+版本中,它在SDM上运行良好(superdev模式)。
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);