トップ回答者
Direct2D の CreateHwndRenderTarget のデバッグ時の実行時間について

質問
-
タイトルの通りなのですが、CreateHwndRenderTarget をデバッグ開始(F5)で実行すると約18秒くらい必ずかかります。デバッグなしで開始(Ctrl+F5)の場合は、計測していませんが1秒もかかっていません。Direct2D を使おうとしたときにデバッグ毎にこれだけ時間がかかるとなると困ってしまいます。この現象は、Direct2D のどのサンプルをビルド&デバッグしても再現します。同じことを経験した方、対処法など知りませんか?よろしくお願いします。環境Windows 7 Home Premiun 64bitMicrosoft Visual C++ 2008 Express EditionVisual Studio 2008
回答
すべての返信
-
自分のパソコン特有の問題でしょうか?以下のコードを実行したときに、時間がかかってるんです。DWORD t1 = ::GetTickCount();HRESULT hr = m_pFactory->CreateHwndRenderTarget(D2D1::RenderTargetProperties(),D2D1::HwndRenderTargetProperties(*this, sz),&m_pHwndRT);TRACE("#CreateHwndRenderTarget... %d msec\n", ::GetTickCount() - t1);*** 出力 ***#CreateHwndRenderTarget... 20717 msec
-
環境が違いますが、以下環境では同じ現象は発生していません。
[環境]
OS:Vista SP2(32bit)
Graphic Card:nVidia GeForce系
Build:Debug Build
[処理]
RECT rc;
GetClientRect(hwnd, &rc);DWORD t1 = ::GetTickCount();
lpFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties(),
D2D1::HwndRenderTargetProperties(hwnd,D2D1::SizeU(rc.right - rc.left,rc.bottom - rc.top)),
&wndTarget);
DWORD t2 = ::GetTickCount();
DWORD t3 = t2 - t1;
[結果]
437 ms
Graphic Cardが異なるPCで試してみてはいかがでしょうか。
Debugだけで発生する現象なら、Visual Studio 2010 Beta2で試してみる価値もありそうですね。