Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On Fri, 2012-03-30 at 11:39 +0200, Steve White wrote:
Basic features
==============
(Background reading: search for "typographic features", "font feature
registry", "layout tag registry".)

Some features that really ought to be activated most of the time, in
most scripts
* ligatures for Latin and most alphabetic scripts
* localized replacement (based on text language, region)
* pair kerning
* mark positioning

So, I asked Steve to post to the list, so I could dump some experimental
code to a wider audience with its context

Lets put graphite aside for a moment, its something of a red herring
really for a lot of these things. 

If we look at 
https://bugs.freedesktop.org/show_bug.cgi?id=31821
I've a patch there that shows that a lot of our woes with otf fonts is
probably a simple bug/lack of implementation in out ServerFont::GetTable
that it doesn't handle OpenType. freetype does it fine, but we're not
using freetype to get the tables, but parsing them outselves.

Patch at fdo#31821 
a) hacks in using freetype to get the tables (does anyone know if there
a freetype api to just get the offset of a table and not a full copy of
it ?, we've already mmapped the file so we don't need to copy them)
b) hacks in using the icu layout engine for all text, and not just for
CTL text. I wonder if its just a performance reason that we have out own
"simple" font engine for the non-CTL case ?
c) overrides IcuFontFromServerFont::mapCharToGlyph to not filter out the
zero width joiner glyphs before applying the gsub table. The icu Indic
layout engine doesn't filter it, not sure why the non-Indic ones *do*
filter it.

So, I reckon we should continue to refactor out font handling code to
remove various custom ttf/otf parsing and try and use more of the
freetype apis so that LibreOffice gets to know about GSUB etc tables in
opentype fonts, and maybe look into removing the simple font layout
engine and just use the icu one for all fonts. 

C.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.