freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Turning off stem darkening by default until all drivers s


From: Jan Alexander Steffens
Subject: Re: [ft-devel] Turning off stem darkening by default until all drivers support it?
Date: Thu, 14 Jan 2016 14:03:53 +0100

On Thu, Jan 14, 2016 at 12:29 PM, Werner LEMBERG <address@hidden> wrote:
>> To you and your model of the world, these might "act globally on
>> many faces".  To a fontconfig-using-, or cairo, or Chrome, or
>> Firefox, or Skia, or Android, or Qt, or any other large-enough
>> platform, there's no global setting, there's just per-face
>> configuration that needs to be enabled.  If you push that to
>> FT_Library, that makes FT_Library thread-unsafe and bound to one
>> face at a time.
>
> I don't understand your reasoning.  FontConfig, for example, doesn't
> provide an `FT_Library' object to a client that queries font
> information, AFAIK.  An application has to call `FT_Init_FreeType' by
> itself, then deriving all `FT_Face' objects from the just created
> `FT_Library' object.  Ditto for Qt (where a call to `FT_Init_FreeType'
> is hidden by an application's Qt initialization).  How can this be
> thread-unsafe?  What am I missing?  Please provide a real-world
> example that helps me understand your concerns.

I'm not sure, too. Maybe applications mutex-protect FT_{New,Done}_Face
rather than use one FT_Library per thread, as the documentation
recommends?

Altering any settings on FT_Library while other threads use FT_Faces
created from it causes data races, unless you protect all the calls on
the Library *and* the Faces with the mutex.

Even then, while you might not get any corruption, you still have a
shared rendering state that might get changed unexpectedly.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]