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: Behdad Esfahbod
Subject: Re: [ft-devel] Turning off stem darkening by default until all drivers support it?
Date: Thu, 31 Dec 2015 18:53:01 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 15-12-15 05:08 PM, Werner LEMBERG wrote:
> 
>>> A new function operating on FT_Library, as Jan suggests, is the way
>>> to go, I think, cf. `FT_Library_SetLcdFilter'.
>>
>> I recommend against that, as it makes the FT_Library non-threadsafe.
>> I hvae plans to replace SetLcdFilter with bits in the load_flags to
>> make FT_Library fully threadsafe eventually.
> 
> Hmm.  It's not clear to me what you want.  Where should metadata be
> stored?  With `metadata' I mean stuff that acts globally on many
> faces.

How is that different from, say, other hinting settings?  I don't see any
distinction.  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.


>  Or do you want to get rid of metadata altogether, this is,
> moving the global properties in FT_Library to private data in FT_Face?
> This would be a major change in FreeType

It's not.  To you, there might be a lot of things in FT_Library.  To the user
of FreeType, none of them are relevant.  A user of FreeType only cares about
FT_Face objects.  The only piece of FT_Library, so far, used by major clients,
is the SetLcdFilter API.

All the module, and service, and property API, those are things the user
doesn't care about.  They don't render fonts.  FT_Face does.


>, and I'm not sure that this
> would be a wise decision, since it would make FT_Face larger.  We
> would also need a new API for handling FT_Face properties.

This goes back to the original discussion around whether we need runtime
properties at all :).


> Note that load_flags is the wrong place for setting the LCD filter
> IMHO.

Why?  How is that different from other load flags that control aspects of
rasterization?

>  Additionally, we are slowly running out of available bits in
> load_flags...

Sure, that's a tangible problem we can discuss.

Cheers,
behdad

> 
>     Werner
> 

-- 
behdad
http://behdad.org/



reply via email to

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