2

VS.Net 10 と SlimDX を使用して、D3DImage で 3D コンテンツをレンダリングするコードを書いています。32 ビット Windows XP で完全に動作します。ただし、64 ビット Windows 7 (クアッド コアおよび 4 GB RAM) に移行すると、同じコードが機能しなくなります。症状は、約 10 回または 20 回レンダリングした後、D3DImage の IsFrontBufferAvailableChanged イベントが発生し、IsFrontBufferAvailable のプロパティの値が false になることです。

RenderCapability.Tier の呼び出し、SetBackBuffer の呼び出し、フロント バッファーが失われた後のデバイスのチェック (実際には DeviceEx タイプ)、ビデオ カード ドライバーの更新 (nvidia 9500 GT 1G RAM) など、考えられるすべてのことをチェックしました。 なしそれらの仕事。

この問題の原因の 1 つは、D3DImage をソースとして使用するイメージ コントロールが GUI スレッドで作成されていないことです。アプリケーションの応答性を高めるために、GUI スレッドの作業負荷を軽減するために行っています。もちろん、スレッド化の問題を回避するために Dispatcher.Invoke を使用しています。繰り返しますが、XP では完全に動作します。

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

Slimdx.dll の x64 バージョンがあると思います。x32 バージョンを使用している場合、それが問題になる可能性があります。

于 2011-03-22T19:34:26.033 に答える