public virtual void CopyTo(RenderToTextureBuffer to)
        {
            BlitFramebufferBits mask = BlitFramebufferBits.ColorBufferBit;

            if (to.m_RenderBuffer != null)
            {
                mask |= BlitFramebufferBits.DepthBufferBit;
            }
            CopyTo(to, mask);
        }
        public virtual void CopyTo(RenderToTextureBuffer to, BlitFramebufferBits mask)
        {
            GL.BindFramebuffer(FramebufferTarget.ReadFramebuffer, m_Id);
            GL.BindFramebuffer(FramebufferTarget.DrawFramebuffer, to.m_Id);

            GL.BlitFramebuffer(
                0, 0, m_Texture.Width, m_Texture.Height,
                0, 0, to.m_Texture.Width, to.m_Texture.Height,
                mask,
                TextureMagFilter.Linear
                );

            GL.BindFramebuffer(FramebufferTarget.ReadFramebuffer, 0);
            GL.BindFramebuffer(FramebufferTarget.DrawFramebuffer, 0);
        }