- 13 名前:親父PG [04/03/30 12:47 ID:nbxm21Tx.net]
- >>7
偉そうな事を言える立場ではないですが、書き込みの内容を拝見するに 基本的なプログラムの技術をお持ちだと思いますので、ますはSDKサンプルの ライブラリを見てDIRECTXの初期化とWINSOWSループあたりを見てみると良いのではないでしょうか? WINDOWSのサンプルは描画速度はマシン速度(環境)に依存しています。 このままでは定期的な処理ができないので、PeekMessage周りを調べて定期的タイマーで特定の処理を呼び出すようなものを作ってみてはどうでしょうか? while( WM_QUIT != msg.message ) { if( m_bActive && m_pd3dDevice != NULL ){ if ( tTake==FALSE ){ QueryPerformanceCounter( ( LARGE_INTEGER * )&sTIME );//時間計測開始 FSP60call();//同期して動かすものはここで } FSP60nonSYNCcall();//何か出来ることあればやってしまおう } th_GetandPeekMessage( NULL );//Peek Message func if( bGotMsg!=TRUE ){ if( m_bDeviceLost ){ // Yield some CPU time to other processes Sleep( 100 ); // 100 milliseconds } if( m_bActive && m_pd3dDevice != NULL ){ if( FAILED( Render3DEnvironment() ) )SendMessage( m_hWnd, WM_CLOSE, 0, 0 ); QueryPerformanceCounter( ( LARGE_INTEGER * )&eTIME );// 計測終了 DWORD wTIME; wTIME=( DWORD )16666; if ( ( eTIME.LowPart - sTIME.LowPart )>wTIME ){ tTake=FALSE; }else {tTake=TRUE;}//endof if } } 私が自作した部分ですが、サンプルのソースに試行錯誤を繰り返しこのような形になりました。
|

|