示例#1
0
 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);
            }
        }