public void Dispose()
        {
            if (disposed)
            {
                return;
            }
            disposed = true;
            texture.Dispose();

            OpenGL.glDeleteFramebuffers(1, ref framebuffer);
            OpenGL.CheckGLError();
            OpenGL.glDeleteRenderbuffers(1, ref depth);
            OpenGL.CheckGLError();
        }
        void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }
            disposed = true;
            if (disposing)
            {
                foreach (Texture t in texture)
                {
                    t.Dispose();
                }
            }

            OpenGL.glDeleteFramebuffers(1, ref framebuffer);
            OpenGL.CheckGLError();
            OpenGL.glDeleteRenderbuffers(1, ref depth);
            OpenGL.CheckGLError();
        }