Skip to content
  • John Ralls's avatar
    quartz: add CVDisplayLink based frame clock · 8182c978
    John Ralls authored
    This uses CVDisplayLink to drive the GdkFrameClock. A GdkWindow
    can register a frame callback to thaw their frame clock as necessary
    based on the next notification from CVDisplayLink.
    
    CVDisplayLink notifies us on a high-priority thread. We use the same
    NSEventas gdkeventloop-quartz.c to wakeup the main loop. This is done
    so that we don’t pathologically wake up the select thread to then
    continue notifying the main loop.
    
    We use an embedded GList node in the GdkWindowImplQuartz so that we
    can avoid allocating any lists or arrays for pending frame callbacks.
    Compare this to the same design in GdkWindow for children.
    8182c978