1

NPAPI と D3D を使用してプラグインを作成しています。DXSDK と NPAPI からの D3D サンプルを単純にまとめただけです。プラグインの起動時に HWND を受け取り、それを D3D に渡して描画します。

しかし、それは機能します。テスト ページのコントロール (400 * 300 の四角形) は、私が期待したものを示しています。

ただし、FireFox ウィンドウのその他の領域は、メニュー バーを含めてすべて黒です。テスト ページの他のすべてのコンテンツは表示されません。

HWND で InitDevice(D3D) だけを試しましたが、レンダリングはまったく行われませんでした。しかし、それでも同じ問題が発生しました。

ここで誰か助けてくれませんか?

4

1 に答える 1

0

私はこれが数回前に起こるのを見ました。私がそれに遭遇した2つの異なる状況があります。1つ目は、D3Dの初期化で、Firefoxと明らかに競合する奇妙な問題が発生したときですが、それを機能させるために何を変更したのかはまだわかりません。

2つ目は、あなたが遭遇していることだと思いますが、D3Dを初期化して、メインスレッドを描画しようとしたときです。私の理論(証明されていない)は、Firefoxが実際にある種の独自のDXコンテキストを作成しているため、同じスレッドで別のDXコンテキストを作成すると競合するというものです。initと描画コードを別のスレッドに移動すると、すべてが機能し始めました。

これが、FireBreathにスレッドセーフにし、JavaScriptへのクロススレッド呼び出しを可能にするコードがたくさんある理由の1つです。OGLまたはDXを使用してメインスレッドで描画しようとするたびに、どこかで問題が発生しました。 。

お役に立てば幸いです。

于 2011-02-24T17:23:28.607 に答える