//-------------------------------------------------------------------------------------- // Handles the GUI events //-------------------------------------------------------------------------------------- void CALLBACK OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext ) { switch( nControlID ) { case IDC_TOGGLEFULLSCREEN: DXUTToggleFullScreen(); break; case IDC_TOGGLEREF: DXUTToggleREF(); break; case IDC_CHANGEDEVICE: g_SettingsDlg.SetActive( !g_SettingsDlg.IsActive() ); break; case IDC_ENABLE_PRESHADER: { g_bEnablePreshader = g_SampleUI.GetCheckBox( IDC_ENABLE_PRESHADER )->GetChecked(); if( DXUTGetD3D9Device() != NULL ) { OnLostDevice( NULL ); OnDestroyDevice( NULL ); OnCreateDevice( DXUTGetD3D9Device(), DXUTGetD3D9BackBufferSurfaceDesc(), NULL ); OnResetDevice( DXUTGetD3D9Device(), DXUTGetD3D9BackBufferSurfaceDesc(), NULL ); } break; } case IDC_ACTIVE_LIGHT: if( !g_LightControl[g_nActiveLight].IsBeingDragged() ) { g_nActiveLight++; g_nActiveLight %= g_nNumActiveLights; } break; case IDC_NUM_LIGHTS: if( !g_LightControl[g_nActiveLight].IsBeingDragged() ) { WCHAR sz[100]; swprintf_s( sz, 100, L"# Lights: %d", g_SampleUI.GetSlider( IDC_NUM_LIGHTS )->GetValue() ); g_SampleUI.GetStatic( IDC_NUM_LIGHTS_STATIC )->SetText( sz ); g_nNumActiveLights = g_SampleUI.GetSlider( IDC_NUM_LIGHTS )->GetValue(); g_nActiveLight %= g_nNumActiveLights; } break; case IDC_LIGHT_SCALE: g_fLightScale = ( float )( g_SampleUI.GetSlider( IDC_LIGHT_SCALE )->GetValue() * 0.10f ); WCHAR sz[100]; swprintf_s( sz, 100, L"Light scale: %0.2f", g_fLightScale ); g_SampleUI.GetStatic( IDC_LIGHT_SCALE_STATIC )->SetText( sz ); break; } }
void CD3DEffect::Release() { g_Windowing.Unregister(this); OnDestroyDevice(false); }