As they linked to the LibreOffice bug that we hit,[1] it might be worthwhile explaining how the cross platform architecture works in LibreOffice.<p>The widgeting/graphics library is actually run by something called VCL (the Visual Component Library). It's a bit of a mess to be honest, but the simplified version is that there is a class called OutputDevice that the rest of the app uses, which basically acts as a fascade over a platform specific class called SalGraphics (there are a number of other platform specific classes, SalGraphics is what I focus on here).<p>Basically it is a class that implements a bunch of primitive drawing functions which call on abstract functions. We then implement these functions in a platform specific class.<p>To see the guts of the Mac class, see AquaSalGraphics [2] - and no, none of know why it was named "Aqua"... our codebase is <i>old</i>.<p>FWIW, OutputDevice has serious issues. I have detailed them in a mailing list post. [3]<p>1. <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=138122" rel="nofollow">https://bugs.documentfoundation.org/show_bug.cgi?id=138122</a><p>2. <a href="https://opengrok.libreoffice.org/xref/core/vcl/inc/quartz/salgdi.h?r=e7ace1d0#133" rel="nofollow">https://opengrok.libreoffice.org/xref/core/vcl/inc/quartz/sa...</a><p>3. <a href="https://lists.freedesktop.org/archives/libreoffice/2020-December/086546.html" rel="nofollow">https://lists.freedesktop.org/archives/libreoffice/2020-Dece...</a>