HiDPI scaling not working with quartz cairo_surface_create_similar() implementation
@alexl
Submitted by Alexander Larsson Assigned to Andrea Canciani @ranma42
Description
Gtk+ 3.10 uses a back-buffer surface for doing scrolling, rather than clipping and self-surface copying. This causes problems on the Quartz backend, because the back buffer (created by cairo_surface_create_similar()) does not inherit the NSWindow.backingScaleFactor of the window surface passed to create_similar().
This means that the offscreen buffer will be a lower resolution than the actual window resolution and when we draw it to the window it will be upscaled and blurry.
In the cairo master cairo_surface_create_similar() already inherits the device-scale from the other surface, and the quartz backend need to do this similarly, by allocating a larger CGBitmap, and either setting the cairo device scale, or pushing the device scale to a lower quartz level (CGContext?).