///<summary>
        ///    Restore a viewport, the camera and the scene after a rendering operation
        ///</summary>
        protected void PostTargetOperation(CompositorTargetOperation op, Viewport vp, Camera cam)
        {
            SceneManager sm = cam.SceneManager;

            /// Unregister our listener
            sm.QueueStarted -= listener.OnRenderQueueStarted;
            sm.QueueEnded   -= listener.OnRenderQueueEnded;
            /// Flush remaing operations
            listener.FlushUpTo(RenderQueueGroupID.Count);
            /// Restore default scene and camera settings
            sm.VisibilityMask         = oldVisibilityMask;
            sm.FindVisibleObjectsBool = oldFindVisibleObjects;
            cam.LodBias       = oldLodBias;
            vp.MaterialScheme = oldMaterialScheme;
        }