gdk: Redo GL drawing
Reenable GL drawing, but do it without Cairo. Now, the context passed to gdk_window_begin_draw_frame() decides how drawing is going to happen. If it is NULL, Cairo is used like before. If a context is passed, Cairo may not be used for drawing and gdk_drawing_context_get_cairo_context() is going to return NULL. Instead, the GL renderer must draw to the GL backbuffer and end_draw_frame() is then swapping that to the front. The GskGLRenderer has lost the texture it used to render to and adapted to render directly to the backbuffer instead. The only thing missing is for GtkGLArea to gain back a performant way to render. But it didn't have one since the introduction of GSK, this patchset doesn't change anything about it. The new rendering avoids two indirections (the GSK renderer's texture and the GDK double buffering surface). It improves icon count in the fishbowl demo by 30%.
Showing with 51 additions and 63 deletions