private static void DeleteObject(int o, GLObjectType t)
        {
            switch (t)
            {
            case GLObjectType.Buffer:
                GL.DeleteBuffer(o);
                break;

            case GLObjectType.Fence:
                GL.DeleteSync((IntPtr)o);
                break;

            case GLObjectType.Framebuffer:
                GL.DeleteFramebuffer(o);
                break;

            case GLObjectType.Sampler:
                GL.DeleteSampler(o);
                break;

            case GLObjectType.Shader:
                GL.DeleteShader(o);
                break;

            case GLObjectType.ShaderProgram:
                GL.DeleteProgram(o);
                break;

            case GLObjectType.Texture:
                GL.DeleteTexture(o);
                break;

            case GLObjectType.VertexArray:
                GL.DeleteVertexArray(o);
                break;
            }
        }
 internal static void QueueForDeletion(int o, GLObjectType t)
 {
     DeletionQueue.Enqueue(new Tuple <int, GLObjectType>(o, t));
 }