Skip to content
  • Benjamin Otte's avatar
    gdk: Redo GL drawing · e38bd27d
    Benjamin Otte authored
    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%.
    e38bd27d