2012-03-13 88 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