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: Werner LEMBERG
Subject: Re: [ft-devel] Turning off stem darkening by default until all drivers support it?
Date: Thu, 12 Nov 2015 23:14:01 +0100 (CET)

> I suppose we still have time to add the suggested LOAD flag before
> the 2.7 release?

Well, I would like to do a release very soon, perhaps 2.6.2,
preferably within a week.  There are zillions of bugfixes due to
fuzzing, and some people urgently need a new version.

> IMO it should:
> 
> 1) Switch on stem darkening

This is non-trivial.  I've always considered properties of a driver as
global – consequently, they reside directly in the driver module,
being part of an `FT_Library' object, and *not* being part of
`FT_Face'.  In other words, if you want to modify a property, you have
to close all faces, do the change, then reload everything.

Actually, I still think this assumption is valid: A display engine
either does does linear blending, or it doesn't.  Consequently, it
should initialize FreeType accordingly before starting to load any
faces.

> 2) Change the default LCD filter weights as recommended on
>    http://www.freetype.org/freetype2/docs/reference/ft2-lcd_filtering.html

Similarly, the display engine should initialize this – the LCD filter
weights also reside in the `FT_Library' object and are thus global to
all `FT_Face' objects.

> - FT_LOAD_LINEAR (probably too vague)

What exactly should this flag do, besides the above two things (which
I consider inappropriate for `FT_Load_Glyph')?

> On another note, what happens if FT_LCD_FILTER_LEGACY is requested
> but not compiled in?

This is rather unlikely since you have to directly modify the
`USE_LEGACY' macro in `base/ftlcdfil.c', since there isn't a
configuration option to disable the legacy filter.

> Does it fall back to NONE or DEFAULT?

`FT_Library_Set_LcdFilter' would fail in that case, returning
`FT_Err_Invalid_Argument' and not changing the previous value of the
filter.  If no valid call was done before, it would fall back to NONE.


    Werner

reply via email to

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