protected void RenderSystem_EventOccurred(string eventName, Const_NameValuePairList parameters) { if (eventName.Equals("DeviceLost")) { window.WindowMovedOrResized(); } }
/************************************************************************/ /* handle device lost and device restored events */ /************************************************************************/ private void OnRenderSystemEventOccurred(string eventName, Const_NameValuePairList parameters) { EventHandler <OgreEventArgs> evt = null; OgreEventArgs args; // check which event occured switch (eventName) { // direct 3D device lost case "DeviceLost": // don't set mRenderingActive to false here, because ogre will try to restore the // device in the RenderOneFrame function and mRenderingActive needs to be set to true // for this function to be called // event to raise is device lost event evt = DeviceLost; // on device lost, create empty ogre event args args = new OgreEventArgs(); break; // direct 3D device restored case "DeviceRestored": uint width; uint height; uint depth; // event to raise is device restored event evt = DeviceRestored; // get metrics for the render window size mWindow.GetMetrics(out width, out height, out depth); // on device restored, create ogre event args with new render window size args = new OgreEventArgs((int)width, (int)height); break; default: return; } // raise event with provided event args if (evt != null) { evt(this, args); } }