2012-03-13 12 views
3

に私が開発していたプログラムに問題を抱えている(あなたがwww.energematrice6.com/gview2でそれを見ることができる)HTML5キャンバスのdrawImageの問題だけのFirefox

銀河ビューアは6つの異なる層の上に星を描きます。後ろのレイヤーはうまく動作します(単純なストロークコマンドを使用します)。上の3つのレイヤーはdrawImage()機能を使用して保存された画像を取り出し、キャンバスに描画します(関数starGradDrawおよびstarGradDraw2を使用)。

これらの画像は、プログラムが最初に実行され、オブジェクト変数(基本的にバッファのみ)に保存されたときに別の関数によって作成されたものです。

すべては私の家庭用コンピュータ、ノートパソコン、妻のコンピュータ、およびこれをテストした(または友人がテストした)他のすべてのマシンで正しく動作します。

私の仕事用コンピュータ(自宅で使用しているのと同じバージョン)でFirefox 10.0.2で開こうとしたとき、星の最初の3つのレイヤーは空白です。唯一の相違点は、家庭内のコンピュータで64ビットのオペレーティングシステム、特にWindows 7を使用していないことです。

他のすべてはまだプログラムでうまく動作しているようで、Firebugはエラーをポップしません。画像を描画しない(またはプログラムを停止する)だけです。私は本当に次に何をしようとよく分かりません。

アイデア?

は(あなたが好きなら、私はいくつかのコードを貼り付けることができますが、プログラムは数千行以上の長さで、私は、問題がでてくることができたどこか、それはこのマシンでのみエラーことができるかわからない。)

+0

初心者の方には、グラフィックドライバをアップデートしてみてください。これはプログラミングの問題のようには聞こえませんが、ランタイム環境(ドライバ、ブラウザなど)とは異なります。 – Blindy

+0

Chrome上の64ビットWin7でうまくいきましょう。 – Blindy

+0

正しいかもしれません。私は確かにベテランのプログラマーではないので、私はすべてが自分の責任であることに慣れています。 (そして確かにこのマシンにクロムをインストールして確認しましたが、うまく働いていました) Win7 64ビット版の誰かがFFで私をテストできる人なら大変感謝しています。 (そしてBlindyに感謝します) – Brightstar

答えて

5

膨大な量の研究とバグ狩りの後、私はこの問題がFirefox自身のバグであることを発見しました。

現在のバージョンでは、2-Dグラフィックスハードウェアアクセラレーションが有効になっているように見えますが、Firefoxキャンバスに直接描画するとき(オフスクリーンのみ)は放射状のグラデーションが正しく保存されません。

ハードウェアアクセラレーションをオフにすると、ブラウザはコマンドを正しく処理できます。

バグレポートが提出されました。うまくいけば、問題は修正される予定です。

+0

Firefoxで同様の問題が発生した人には、通常の古い 'Image'を使用した' drawImage'呼び出しが、ハードウェアアクセラレーションでレンダリングされないことがわかりました。各フレームの間に、レンダリングされる座標が経過時間に関連して変更されると、それに関係するかもしれません。 ハードウェアアクセラレーションをオフにしてFirefoxを再起動してください。 – Grimeh