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