2012-03-13 90 views
3

我有一个程序,我开发一个问题(你可以看到它在www.energematrice6.com/gview2HTML5画布的drawImage问题,但仅在Firefox

银河浏览器借鉴了6个不同的层星。后面的图层可以正常工作(使用简单的笔画命令)。前3层使用drawImage()函数获取已保存的图像并将其绘制到画布上(使用函数starGradDraw和starGradDraw2)。

这些图像是在程序第一次执行并保存到一个对象变量(基本上只是一个缓冲区)时由另一个函数创建的。

在我的家用电脑,我的笔记本电脑,我妻子的电脑,以及我测试过的所有其他机器(或者让朋友测试过)上都能正常工作。

当我试图在我的工作计算机上使用Firefox 10.0.2打开它时(我在家使用的版本相同),前三层星星是空白的。唯一的其他区别我能想到的是,我的家用电脑没有使用64位操作系统或专门Windows 7。

其他一切似乎仍然在程序中正常工作,并且萤火虫不会弹出任何错误。它只是不画图像(或停止程序)。我真的不确定接下来要做什么。

任何想法?

(我可以粘贴一些代码,如果你喜欢,但程序是一千多线长,我不知道哪里出了问题能在未来将如何或者它可以在本机上唯一的错误。)

+0

尝试更新您的图形驱动程序在工作初学者。这听起来不像是一个编程问题,而是一个运行时环境(驱动程序,浏览器等)。 – Blindy 2012-03-13 15:50:21

+0

在Chrome上我的64位Win7上它的性价比很高。 – Blindy 2012-03-13 15:53:46

+0

可能是对的。我不完全是一位资深的程序员,所以我非常习惯一切都是我的错。 (是的,我在这台机器上安装了Chrome只是为了检查,在那里工作得很好。) 如果有人在Win7 64位可以在FF测试我,我会非常感激。 (并感谢Blindy) – Brightstar 2012-03-13 15:55:01

回答

5

经过大量的研究和寻找bug之后,我发现这个问题是Firefox自身的一个bug。

显然,在当前版本中,启用2D图形硬件加速时,Firefox直接绘制到缓冲区画布(仅限屏幕外)时,不会正确保存径向渐变。

关闭硬件加速可让浏览器正确处理命令。

已经提交了一个错误报告,希望问题得到解决。

+0

对于那些遇到类似Firefox问题的用户,我发现''drawImage'调用一个普通的旧'Image'不会在硬件加速的情况下渲染。在每一帧期间,它的渲染坐标相对于经过的时间而改变,可能与此有关。 关闭硬件加速并重新启动Firefox修复它。 – Grimeh 2014-09-15 03:35:29