サイズが約320x200ピクセルの16個のDirect3Dデバイスを作成しました。私はIDirect3DDevice9 :: Presentを別のスレッドで各デバイスに40 msごとに呼び出す。 Windows XPおよび統合されたIntel GMA945グラフィックスのラップトップでは、システムツールチップまたはスタートメニューが表示されている場合、デバイスの一部が更新されません。 IDirect3DDevice9 :: Presentはその時点でエラーコードを返しません。すべてのプログラムで問題はないようですが、ユーザーは複数のデバイスの動きが凍っているのを見ることができます。その理由は何でしょうか?いくつかのDirect3DデバイスとIntel GMA945
これは、同じハードウェアのWindows 7とさまざまなハードウェアのWindows XPで正常に動作するため、この組み合わせでのみ問題が発生します。私は顧客がハードウェアとOSのこの組み合わせを使用しているので、これをサポートする必要があります。 MSDNでは、少なくとも1つのD3Dデバイス(少なくとも私はそれを見つけることはできません)を作成しなければならないということについて何も言及していないので、問題は他の場所にあるはずです。
私が見つけようとしていることは、おそらく、私の問題を解決する可能性のあるフラグの組み合わせがあるということです。現在のところ、私は次のものを使用しています:
D3DPRESENT_PARAMETERS param = {};
param.Windowed = TRUE;
param.SwapEffect = D3DSWAPEFFECT_DISCARD;
param.hDeviceWindow = GetSafeHwnd();
param.BackBufferCount = 1;
param.BackBufferFormat = D3DFMT_UNKNOWN;
param.BackBufferWidth = m_szDevice.Width;
param.BackBufferHeight = m_szDevice.Height;
param.MultiSampleType = D3DMULTISAMPLE_NONMASKABLE;
param.Flags = D3DPRESENTFLAG_VIDEO;
param.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
param.MultiSampleType = D3DMULTISAMPLE_NONE;
param.MultiSampleQuality = 0;
ウィンドウハンドルをチェックするとどういう意味ですか? –
デバイスまたは現在のパラメータで使用される 'HWND '。言及した他のものと同様に、16個のデバイスは素晴らしいアイデアではありません。 – ssube