Budgeting & investing in features ...
Khaled Hosny
khaledhosny at eglug.org
Fri Dec 9 04:57:53 UTC 2016
On Wed, Dec 07, 2016 at 12:12:37PM +0000, Michael Meeks wrote:
> Is there some debilitating performance problem that slows us
> all down that could be improved with an investment of time ?
>
> Is there something that badly needs doing, but is too hard,
> dull, etc. to have got done yet, but which could be done with
> some money applied ?
Few things that come in mind:
* Our text layout performance is abysmal, all over the code base it is
assumed that shaping text is cheap and we can do it over and over
again. Want to measure the text? Shape it and discard the output
afterwards. Want to measure part of the same text? Shape again. Want
to find line breaks? Shape again. Want to finally draw it? Shape
again. This might have been cheap for Latin script in the olden days
when all we did is query font cmap table and put glyphs next to each
other, which is not the case anymore and never been the case for more
involved scripts. We need to work on this, and there are many
possibilities; retaining shaping results much longer, improving the
wasteful OutputDevice API, caching etc.
* Fixing the bad text spacing we have due to lack of subpixel
positioning. All graphics system we use (except GDI, but this is
dying) support subpixel positioning but we make no use of it as all
our glyphs positions are stored using integers (not to mention the
rounding errors all over the place). This results in very bad text
spacing and it gets worse on hidpi screens.
* Migrating to single modern 2D graphics library, be it Cairo or Skia,
and sorting out our graphics and text drawing inconsistencies.
Regards,
Khaled
More information about the LibreOffice
mailing list