public override void Draw(RenderContext rstate)
 {
     Mpv.mpv_event *ev = Mpv.mpv_wait_event(mpvhandle, 0);
     while (ev->event_id != Mpv.mpv_event_id.MPV_EVENT_NONE)
     {
         if (ev->event_id == Mpv.mpv_event_id.MPV_EVENT_END_FILE)
         {
             Playing = false;
         }
         ev = Mpv.mpv_wait_event(mpvhandle, 0);
     }
     if (disposed)
     {
         return;
     }
     game.UnbindAll();
     rstate.RenderTarget = null;
     game.TrashGLState();
     if (firstDraw)
     {
         firstDraw           = false;
         rstate.RenderTarget = framebuffer;
         rstate.ClearColor   = Color4.Black;
         rstate.ClearAll();
         rstate.RenderTarget = null;
         rstate.Apply();
     }
     if (doDraw)
     {
         rstate.Cull = false;
         rstate.Apply();
         Mpv.mpv_opengl_cb_draw(mpvgl, (int)framebuffer.FBO, game.Width, game.Height);
         doDraw      = false;
         rstate.Cull = true;
     }
 }