On OS X, drawing units differ from pixel units for high DPI displays (so-called retina) whereas they coincide for classical density displays.
On a retina display there are 2 pixels behind one drawing unit (and 4 in a 1x1 rectangle).
Thus, most drawing code is unchanged. For example, the system draws high resolution text on retina displays, without the calling program
having to change the font size. For FLTK, it is enough to detect when a window is moved between displays of distinct resolutions,
and to trigger window redraws when it happens.
Most, but not all.
As far as FLTK is concerned, drawing of converging horizontal and vertical lines must be done differently on retina and other displays:
lines are one pixel (or half drawing unit) too short on retina if the standard drawing code is used. Thus FLTK draws those lines
slightly differently on retina vs non-retina displays.
Also, image drawing is done better when the image drawing size is considered differently from the image pixel size:
a larger number of pixels can fit in a given drawing area if it's on a retina display.
That's why Fl_Shared_Image::scale() is interesting under OS X also for display drawing, not only for printing.
FLTK draws images using a system call that maps part of an image, in pixel units, to part of the drawing scene, in drawing units.
On retina, the image pixels can fill the drawing scene at high resolution if they are numerous enough.