void CGraphsWindow::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default BOOL bAxisYChanged = FALSE; CDialog::OnTimer(nIDEvent); double x=(double)time(0); double y0=(double)GET_RANDOM(0,100); double y1=(double)GET_RANDOM(0,100); if(y0<m_plot.GetAxisY().m_dMinValue) { m_plot.GetAxisY().m_dMinValue=y0*0.95; bAxisYChanged = TRUE; }else if(y0>m_plot.GetAxisY().m_dMaxValue) { m_plot.GetAxisY().m_dMaxValue=y0*1.05; bAxisYChanged = TRUE; } if(y1<m_plot.GetAxisY().m_dMinValue) { m_plot.GetAxisY().m_dMinValue=y1*0.95; bAxisYChanged = TRUE; }else if(y1>m_plot.GetAxisY().m_dMaxValue) { m_plot.GetAxisY().m_dMaxValue=y1*1.05; bAxisYChanged = TRUE; } if(bAxisYChanged) { m_plot.CalcLayout(); } m_plot.GetLine(0).AddPoint(x,y0); m_plot.GetLine(1).AddPoint(x,y1); }
void TContactShotMark(CDB::TRI* T,dContactGeom* c) { dBodyID b=dGeomGetBody(c->g1); dxGeomUserData* data; bool b_invert_normal=false; if(!b) { b=dGeomGetBody(c->g2); data=dGeomGetUserData(c->g2); b_invert_normal=true; } else { data=dGeomGetUserData(c->g1); } if(!b) return; dVector3 vel; dMass m; dBodyGetMass(b,&m); dBodyGetPointVel(b,c->pos[0],c->pos[1],c->pos[2],vel); dReal vel_cret=dFabs(dDOT(vel,c->normal))* _sqrt(m.mass); Fvector to_camera;to_camera.sub(cast_fv(c->pos),Device.vCameraPosition); float square_cam_dist=to_camera.square_magnitude(); if(data) { SGameMtlPair* mtl_pair = GMLib.GetMaterialPair(T->material,data->material); if(mtl_pair) { //if(vel_cret>Pars.vel_cret_wallmark && !mtl_pair->CollideMarks.empty()) if(vel_cret>Pars::vel_cret_wallmark && !mtl_pair->m_pCollideMarks->empty()) { //ref_shader pWallmarkShader = mtl_pair->CollideMarks[::Random.randI(0,mtl_pair->CollideMarks.size())]; wm_shader WallmarkShader = mtl_pair->m_pCollideMarks->GenerateWallmark(); //ref_shader pWallmarkShader = mtl_pair->CollideMarks[::Random.randI(0,mtl_pair->CollideMarks.size())]; Level().ph_commander().add_call(new CPHOnesCondition(),new CPHWallMarksCall( *((Fvector*)c->pos),T,WallmarkShader)); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(square_cam_dist<SQUARE_SOUND_EFFECT_DIST) { SGameMtl* static_mtl = GMLib.GetMaterialByIdx(T->material); if(!static_mtl->Flags.test(SGameMtl::flPassable)) { if(vel_cret>Pars::vel_cret_sound) { if(!mtl_pair->CollideSounds.empty()) { float volume=collide_volume_min+vel_cret*(collide_volume_max-collide_volume_min)/(_sqrt(mass_limit)*default_l_limit-Pars::vel_cret_sound); GET_RANDOM(mtl_pair->CollideSounds).play_no_feedback(0,0,0,((Fvector*)c->pos),&volume); } } } else { if(data->ph_ref_object&&!mtl_pair->CollideSounds.empty()) { CPHSoundPlayer* sp=NULL; sp=data->ph_ref_object->ph_sound_player(); if(sp) sp->Play(mtl_pair,*(Fvector*)c->pos); } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(square_cam_dist<SQUARE_PARTICLE_EFFECT_DIST) { if(vel_cret>Pars::vel_cret_particles && !mtl_pair->CollideParticles.empty()) { LPCSTR ps_name = *mtl_pair->CollideParticles[::Random.randI(0,mtl_pair->CollideParticles.size())]; //отыграть партиклы столкновения материалов Level().ph_commander().add_call(new CPHOnesCondition(),new CPHParticlesPlayCall(*c,b_invert_normal,ps_name)); } } } } }
TESTPROCAPI t_MultiInstanceTest(UINT uMsg, TPPARAM tpParam, LPFUNCTION_TABLE_ENTRY lpFTE) { // This test randomly calls all the other functions contained in this dll. This // function will be called on multiple threads and each thread has its own voice // Object. // Message check if (uMsg == TPM_QUERY_THREAD_COUNT) { CleanupVoiceAndEngine(); ((LPTPS_QUERY_THREAD_COUNT)tpParam)->dwThreadCount = 4; return TPR_HANDLED; } // Message check if (uMsg != TPM_EXECUTE) { return TPR_NOT_HANDLED; } else { srand(reinterpret_cast<LPTPS_EXECUTE>(tpParam)->dwRandomSeed); } HRESULT hr = S_OK; int tpr = TPR_PASS; int iRand, i; CComPtr<ISpVoice> cpLocalVoice; //create a SAPI voice, each thread has its own voice hr = cpLocalVoice.CoCreateInstance( CLSID_SpVoice ); CHECKHRGOTOId( hr, tpr, IDS_STRING85 ); for( i=0; i<NUM_STRESS_RUNS;i++ ) { iRand = GET_RANDOM( 0, 18); switch( iRand ) { case 0: g_pKato->Comment(5, TEXT("Test #0 - Enter t_ISpTTSEngine_Speak - Thread Id: %x"), GetCurrentThreadId()); tpr = t_ISpTTSEngine_Speak_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #0 - Exit t_ISpTTSEngine_Speak - Thread Id: %x"), GetCurrentThreadId()); break; case 1: g_pKato->Comment(5, TEXT("Test #1 - Enter t_ISpTTSEngine_Skip - Thread Id: %x"), GetCurrentThreadId()); tpr = t_ISpTTSEngine_Skip_Test ( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #1 - Exit t_ISpTTSEngine_Skip - Thread Id: %x"), GetCurrentThreadId()); break; case 2: g_pKato->Comment(5, TEXT("Test #2 - Enter t_ISpTTSEngine_GetOutputFormat - Thread Id: %x"), GetCurrentThreadId()); tpr = t_ISpTTSEngine_GetOutputFormat_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #2 - Exit t_ISpTTSEngine_GetOutputFormat - Thread Id: %x"), GetCurrentThreadId()); break; case 3: g_pKato->Comment(5, TEXT("Test #3 - Enter t_ISpTTSEngine_SetRate - Thread Id: %x"), GetCurrentThreadId()); tpr = t_ISpTTSEngine_SetRate_Test( uMsg, tpParam, NULL , cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #3 - Exit t_ISpTTSEngine_SetRate - Thread Id: %x"), GetCurrentThreadId()); break; case 4: g_pKato->Comment(5, TEXT("Test #4 - Enter t_ISpTTSEngine_SetVolume - Thread Id: %x"), GetCurrentThreadId()); tpr = t_ISpTTSEngine_SetVolume_Test( uMsg, tpParam, NULL , cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #4 - Exit t_ISpTTSEngine_SetVolume - Thread Id: %x"), GetCurrentThreadId()); break; case 5: g_pKato->Comment(5, TEXT("Test #5 - Enter t_CheckEventsSAPI - Thread Id: %x"), GetCurrentThreadId()); tpr = t_CheckEventsSAPI_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #5 - Exit t_CheckEventsSAPI - Thread Id: %x"), GetCurrentThreadId()); break; case 6: g_pKato->Comment(5, TEXT("Test #6 - Enter t_XMLBookmarkTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLBookmark_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #6 - Exit t_XMLBookmarkTest - Thread Id: %x"), GetCurrentThreadId()); break; case 7: g_pKato->Comment(5, TEXT("Test #7 - Enter t_XMLSilenceTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLSilence_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #7 - Exit t_XMLSilenceTest - Thread Id: %x"), GetCurrentThreadId()); break; case 8: g_pKato->Comment(5, TEXT("Test #8 - Enter t_XMLSpellTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLSpell_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #8 - Exit t_XMLSpellTest - Thread Id: %x"), GetCurrentThreadId()); break; case 9: g_pKato->Comment(5, TEXT("Test #9 - Enter t_XMLPronounceTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLPronounce_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #9 - Exit t_XMLPronounceTest - Thread Id: %x"), GetCurrentThreadId()); break; case 10: g_pKato->Comment(5, TEXT("Test #10 - Enter t_XMLRateTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLRate_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #10 - Exit t_XMLRateTest - Thread Id: %x"), GetCurrentThreadId()); break; case 11: g_pKato->Comment(5, TEXT("Test #11 - Enter t_XMLVolumeTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLVolume_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #11 - Exit t_XMLVolumeTest - Thread Id: %x"), GetCurrentThreadId()); break; case 12: g_pKato->Comment(5, TEXT("Test #12 - Enter t_XMLPitchTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLPitch_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #12 - Exit t_XMLPitchTest - Thread Id: %x"), GetCurrentThreadId()); break; case 13: g_pKato->Comment(5, TEXT("Test #13 - Enter t_RealTimeRateChangeTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_RealTimeRateChange_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #13 - Exit t_RealTimeRateChangeTest - Thread Id: %x"), GetCurrentThreadId()); break; case 14: g_pKato->Comment(5, TEXT("Test #14 - Enter t_RealTimeVolumeChangeTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_RealTimeVolumeChange_Test( uMsg, tpParam, NULL , cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #14 - Exit t_RealTimeVolumeChangeTest - Thread Id: %x"), GetCurrentThreadId()); break; case 15: g_pKato->Comment(5, TEXT("Test #15 - Enter t_SpeakStop_Test - Thread Id: %x"), GetCurrentThreadId()); tpr = t_SpeakStop_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #15 - Exit t_SpeakStop_Test - Thread Id: %x"), GetCurrentThreadId()); break; case 16: g_pKato->Comment(5, TEXT("Test #16 - Enter t_LexiconMultiTest Test - Thread Id: %x"), GetCurrentThreadId()); tpr = t_LexiconMulti_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #16 - Exit t_LexiconMultiTest Test - Thread Id: %x"), GetCurrentThreadId()); break; case 17: g_pKato->Comment(5, TEXT("Test #17 - Enter t_XMLSAPIMarkupTest - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLSAPIMarkup_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #17 - Exit t_XMLSAPIMarkupTest - Thread Id: %x"), GetCurrentThreadId()); break; case 18: g_pKato->Comment(5, TEXT("Test #18 - Enter t_XMLContext_Test - Thread Id: %x"), GetCurrentThreadId()); tpr = t_XMLContext_Test( uMsg, tpParam, NULL, cpLocalVoice, true ); g_pKato->Comment(5, TEXT("Test #18 - Exit t_XMLContext_Test - Thread Id: %x"), GetCurrentThreadId()); break; } if( tpr != TPR_PASS ) { return tpr; } } EXIT: return tpr; }