Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As they linked to the LibreOffice bug that we hit,[1] it might be worthwhile explaining how the cross platform architecture works in LibreOffice.

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).

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.

To see the guts of the Mac class, see AquaSalGraphics [2] - and no, none of know why it was named "Aqua"... our codebase is old.

FWIW, OutputDevice has serious issues. I have detailed them in a mailing list post. [3]

1. https://bugs.documentfoundation.org/show_bug.cgi?id=138122

2. https://opengrok.libreoffice.org/xref/core/vcl/inc/quartz/sa...

3. https://lists.freedesktop.org/archives/libreoffice/2020-Dece...



> and no, none of know why it was named "Aqua"... our codebase is old.

The macOS UI is called Aqua, and has been for quite a while!

https://en.wikipedia.org/wiki/Aqua_(user_interface)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: